Work / Chitragupt / Wiki / Concepts
freemium-per-ay
Conceptcanonicalverified 2026-06-26
CONCEPT.FREEMIUM-PER-AYFreemium, one-time per AY
Summary
The platform is free to use as an Inbox; the Tax/Expense/Portfolio engine unlocks via a one-time payment scoped to a single assessment year — never a subscription, never auto-debit.
Why it matters
Tax filing is an annual event, not a monthly utility. A subscription would charge users in months they get no value, which is the wrong shape for the workload. A one-time-per-AY model also lines up cleanly with the refund window (24h after unlock, or 14 days / first export — see pricing-upgrade-topups): the user pays once, the engine runs once, and there is nothing recurring to cancel. Free-forever Inbox is the acquisition channel — get users organising documents in March, charge them when they want the answer in June.
Implications
- No recurring billing infra. Every charge is a one-time order keyed by
userId + AY + tier. - Past AYs are always free — the unlock applies only to the current AY engine.
- Free-tier uploads land in
view_only(no parse). On upgrade, every priorview_onlydoc auto-queues for parsing. - Upgrades within an AY are paid as deltas (top-ups), not new full-price purchases — see pricing-upgrade-topups.
- Storage caps are tier-scoped and enforced at the signed-URL flow — see tier-free and tier-self.
- Refund window resets on each top-up.
- Auto-debit / subscription recurring is permanently out of scope.
Related
- tier-free — the always-free baseline
- tier-self — the first paid tier
- tier-ai-self — Self + AI Q&A
- tier-pro-family — household-stacked top tier
- pricing-upgrade-topups — delta pricing + refund + parse-on-upgrade rules
- two-revenue-streams — the conceptual stream this belongs to
- pricing — the cross-cutting synthesis
- 2026-05-31-pricing-reset — pricing reset decision
- 2026-05-30-foundational-freemium-inbox-free-engine-paid — the freemium pin
- 2026-05-30-past-ay-free — past-AY-free decision
Sources
- .context/wiki/concepts/* § "Hard constraints (V1)" — Pricing tiers, Past-AY-free, Free-tier-not-parsed, Refund window rows
- .context/wiki/concepts/* § "Pricing — two streams, they stack, they don't substitute" — Stream 1
- .context/wiki/concepts/* § "Hard rules" rule 12 (refund within 24h if nothing exported)
Every project of mine is written down like this.
Read the résumé