Documentation Index
Fetch the complete documentation index at: https://grantmaster.dev/llms.txt
Use this file to discover all available pages before exploring further.
GrantMaster Pricing
Source of truth: prices, seat counts, and Stripe price IDs live in
src/config/subscriptionTiers.ts.
This document is the narrative companion — it explains why each tier
exists, who it’s for, and how billing works. Whenever the config file
changes, update this doc in the same PR.
At a glance (launch GA)
| Tier | Display name | Base price | Yearly | Included seats | Seat overage | Typical customer |
|---|---|---|---|---|---|---|
POTENTIAL | Starter | €19 / mo | €190 / yr (≈ €16/mo) | 3 | €15/mo or €144/yr | Single-program NGO getting on top of compliance |
PROFESSIONAL | Professional | €59 / mo | €588 / yr (€49/mo) | 15 | €59/mo or €588/yr | Multi-program NGO with audit exposure |
ULTIMATE | Ultimate | €99 / mo | €999 / yr | 25 | €99/mo or €999/yr | Federated NGOs and foundations running multiple entities |
Why Starter is €19 (not free)
The entry tier was historically named “Free” with a €0 price and kept in the codebase under the enum keyPOTENTIAL. For launch we renamed the display
to “Starter” and set a real price of €19/mo (or €190/yr — 2 months free on the
annual plan). Reasons (documented at length in
docs/planning/2026-04-22-h0-3-1-stripe-starter-decision.md):
- Qualified demand. A credit-card gate filters tire-kickers.
- Sustainable unit economics. Free tiers on an AI product burn margin quickly once usage scales; €19 covers the floor of infra + AI costs.
- Clear upgrade path. Every tier is now paid; upgrades compare value, not “free vs. paid”.
- Pilot conversions. Seed pilots start on Starter and upgrade after their first compliance audit; payment instrument is already wired.
The enum key SubscriptionTier.POTENTIAL is kept to avoid a Firestore data
migration. Only the display name, pricing, and Stripe IDs moved.
What each tier includes
Starter — €19/mo or €190/yr
For small NGO teams getting grant tracking and compliance off spreadsheets.- 3 included seats (additional seats €15/mo each)
- Up to 10 active projects
- 50 AI generations / month (journal summaries, narrative drafts)
- Basic expense and receipt tracking
- Grant discovery (standard filters)
- PDF exports
- Email support
- 5 GB document storage
Professional — €59/mo or €588/yr (Most Popular)
For teams that face real audits and need AI-assisted compliance.- 15 included seats
- Up to 50 projects
- 200 AI generations / month + compliance checking
- Receipt scanning, audit compliance engine
- Custom reports + advanced analytics
- PDF / Excel / Word exports
- API access + webhooks
- Custom branding
- 50 GB storage
- Priority email support + onboarding
Ultimate — €99/mo or €999/yr (Best Value)
For federated NGOs, foundations, and organisations with multi-entity governance.- 25 included seats
- Unlimited projects
- Unlimited AI generations
- SSO (SAML / OIDC), advanced permissions
- White labelling + custom domain
- Unlimited storage
- Dedicated account manager + training included
Billing mechanics
- Payment provider: Stripe (EU account
acct_1RYuZNLlmKCxCk59). Test-mode price IDs are insrc/config/subscriptionTiers.tsand must be swapped to live-mode IDs before the first pilot invoice. - Billing cycles: monthly or annual. Annual billing discounts:
- Starter: €38 saved/yr (about 17%)
- Professional: €120 saved/yr (17%)
- Ultimate: €189 saved/yr (16%)
- Seat overage: additional seats are billed as a separate recurring subscription line item. Each tier has its own seat price.
- Proration: seat add/remove prorates within the current cycle (Stripe default).
- Trials: no free trials for Starter at launch (already the floor of the ladder). Professional and Ultimate have 14-day trials enabled in Stripe.
- Cancellation: “Cancel at period end” — the subscription stays active until the paid cycle ends; the org is downgraded to the free-fallback entitlement set on day 1 of the next cycle.
Adding or changing prices
Changes to launch pricing require an ADR indocs/overview/decision-log.md. The workflow:
- Draft the new pricing in a memo under
docs/planning/YYYY-MM-DD-pricing-*.md. - Open a PR that updates
src/config/subscriptionTiers.tsand this file in the same change, with the memo linked from both. - Create matching Stripe products/prices in test mode (via the Stripe MCP or dashboard) and paste the new price IDs into the config.
- Add / update unit tests in
src/features/billing/services/subscriptionService.test.ts. - After merge, swap to live-mode Stripe IDs and add a dated entry to the
session log in
docs/planning/2026-04-19-launch-masterplan.md.
Related
- Decision memo:
docs/planning/2026-04-22-h0-3-1-stripe-starter-decision.md - Roadmap item: H0.3.1 in
docs/planning/2026-04-19-world-class-ngo-os-roadmap.md - Config file:
src/config/subscriptionTiers.ts - Seed data:
src/lib/seedSubscriptionPricing.ts+src/data/mockSubscriptionData.ts