Work / AskCal / Wiki / Entities
plus-subscription
Entitycanonicalverified 2026-10-01
PLAN.PLUSSummary
AskCal Plus, the one paid tier, and the free allowance it upgrades from.
Canonical values
| Key | Value | Last changed |
|---|---|---|
| ENTITLEMENT.ID | plus |
2026-09-19 |
| PRODUCT.ANNUAL | askcal_plus_annual · $39.99 / year |
2026-09-19 |
| PRODUCT.MONTHLY | askcal_plus_monthly · $5.99 / month |
2026-09-19 |
| PLAY.BASE-PLANS | annual (P1Y), monthly (P1M), 173 regions via convertRegionPrices |
2026-09-19 |
| APPLE.GROUP | AskCal Plus (22384154) — annual level 1, monthly level 2 |
2026-09-19 |
| SCANS.FREE | 10, lifetime (FREE_TRIAL_SCANS) |
2026-09-19 |
| SCANS.PLUS | 100 / month (PLUS_MONTHLY_SCANS) |
2026-09-19 |
| FREE.UNMETERED | barcode, food search, manual logging | 2026-09-19 |
Product ids are identical on both stores, so one RevenueCat entitlement covers
both. The app never hardcodes a price: the paywall reads priceString from
RevenueCat at runtime. The monthly price is an anchor that makes the annual
look better; the annual is from the original plan.
Related
- metering — what a scan is, and what is free
- billing-transparency — how the price is shown
- scan-cost — what a scan costs to serve
Sources
- apps/functions/.env, apps/functions/src/env.ts
- .context/listing/ios/iap.md
Every project of mine is written down like this.
Read the résumé