Skip to main content

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)

TierDisplay nameBase priceYearlyIncluded seatsSeat overageTypical customer
POTENTIALStarter€19 / mo€190 / yr (≈ €16/mo)3€15/mo or €144/yrSingle-program NGO getting on top of compliance
PROFESSIONALProfessional€59 / mo€588 / yr (€49/mo)15€59/mo or €588/yrMulti-program NGO with audit exposure
ULTIMATEUltimate€99 / mo€999 / yr25€99/mo or €999/yrFederated NGOs and foundations running multiple entities
All prices are in EUR, exclusive of VAT. VAT is collected by Stripe Tax per the EU reverse-charge rules; invoices show the org’s VAT ID when provided.

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 key POTENTIAL. 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):
  1. Qualified demand. A credit-card gate filters tire-kickers.
  2. Sustainable unit economics. Free tiers on an AI product burn margin quickly once usage scales; €19 covers the floor of infra + AI costs.
  3. Clear upgrade path. Every tier is now paid; upgrades compare value, not “free vs. paid”.
  4. 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
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 in src/config/subscriptionTiers.ts and 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 in docs/overview/decision-log.md. The workflow:
  1. Draft the new pricing in a memo under docs/planning/YYYY-MM-DD-pricing-*.md.
  2. Open a PR that updates src/config/subscriptionTiers.ts and this file in the same change, with the memo linked from both.
  3. Create matching Stripe products/prices in test mode (via the Stripe MCP or dashboard) and paste the new price IDs into the config.
  4. Add / update unit tests in src/features/billing/services/subscriptionService.test.ts.
  5. 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.