Billing & plans
Crossdeck's price follows one number: your app's Monthly App Revenue — the trailing-30-day total your apps earn across Stripe, Apple, and Google. Not seats. Not events. Not monthly active users. Under $1,500/month you pay nothing, forever. Above it, you pay a flat monthly subscription — $49, $149, or $349 — that stays the same no matter how many apps you ship, events you send, or customers you track within the band. Crossdeck never takes a percentage of your revenue and never sits in the money path: Apple, Google, and Stripe pay out to your accounts directly.
TL;DR
- Free up to $1,500/month app revenue — permanently. No card required, no trial clock.
- Three flat paid tiers: Indie $49/mo ($1,500–$5,000), Pro $149/mo ($5,000–$25,000), Scale $349/mo ($25,000–$100,000). Above $100k is Enterprise — custom-quoted, sales-handled, never auto-charged.
- A tier change requires 7 consecutive daily snapshots above the line. One dip below resets the counter. No launch-day spike can promote you.
- You're charged by Stripe, on a card you add in the dashboard. Crossdeck never sees the card number. No card means no charge — ever. Telemetry ingestion is never gated on billing.
- Sandbox revenue, trials, and refunded purchases never count toward your revenue number.
- Everything is audited. Every tier decision, card event, and invoice lands in the billing history on your dashboard's Billing page.
The model in one paragraph
Most analytics and subscription-infrastructure tools bill on a usage axis you have to manage — seats, tracked users, event volume, or a percentage of the revenue flowing through them. Crossdeck bills on the axis you already optimise: the money your app makes. Your tier is a pure function of Monthly App Revenue (MAR), the same trailing-30-day figure shown on your Billing page. When your app earns more, you move up a band; the price within a band is flat and identical at the bottom and top of the band. There is no metering to watch and no overage bill to fear — the only thing that changes your Crossdeck price is your own revenue.
What counts as revenue (MAR)
MAR is computed from your tracked production revenue, normalised to USD, as:
- Active paid subscriptions, normalised to a monthly equivalent. A $120/year subscription contributes $10.00/month (÷ 12). A $4.99/week subscription contributes $21.68/month (× 4.345, the average weeks per month). A quarterly $30 plan contributes $10.00/month. Coupons are honoured: a subscription with a live repeating or forever discount counts at its post-discount amount.
- One-off purchases paid in the trailing 30 days. A $49 lifetime unlock adds $49 to MAR for 30 days, then rolls out of the window.
- Minus refunds and disputes that landed in the trailing 30 days — even when the original purchase was older than the window.
Subscriptions count while the customer is in a paid relationship: ACTIVE, in billing retry, in an Apple/Google grace period, or Stripe-paused. Trials contribute $0 — a trial is a promise of money, not money. The customer starts counting at their first successful paid charge. Non-USD revenue converts at a daily FX snapshot recorded with each computation.
Sandbox subscriptions and sandbox purchases are excluded from MAR entirely — a TestFlight build hammering StoreKit's sandbox can never move your tier. See Sandbox vs production.
The tiers
| Tier | Monthly App Revenue band | Price | Support |
|---|---|---|---|
| Free | $0 – $1,500 / month | $0 | Community |
| Indie | $1,500 – $5,000 / month | $49 / month | |
| Pro | $5,000 – $25,000 / month | $149 / month | Priority email |
| Scale | $25,000 – $100,000 / month | $349 / month | Dedicated |
| Enterprise | Above $100,000 / month | Custom quote | Dedicated |
Band boundaries are lower-inclusive, upper-exclusive: a MAR of exactly $1,500.00 sits in the Indie band, not Free. One account covers every app you ship — all apps pool into the same MAR, and there is no per-app charge. Feature differences between tiers (error-capture volume, retention, alert depth) are listed on the pricing page; tiers gate volume and support, not the core product.
When tiers change
How often MAR is recomputed
MAR recomputes on two schedules. In real time, every change to a tracked subscription or purchase — a renewal, a new sale, a refund — triggers a recompute for your account, typically 2–5 seconds after the rail's webhook lands. And once a day, at 02:00 UTC, a full reconciliation recomputes every account to catch trailing-window expiry, period rollovers, late-arriving events, and FX drift. The daily run also writes the day's MAR snapshot that the qualifying counter reads.
The 7-day qualifying period
Crossing a tier line once does not change your tier. An upgrade requires 7 consecutive daily snapshots at or above the next tier's threshold. If MAR drops back below the line even once during those 7 days, the counter resets to zero. This is deliberate protection against launch-day spikes, one-off pack promotions, and timezone artefacts at month boundaries — conservative on your behalf. Multiple recomputes on the same day count as one snapshot.
When the qualifying period is satisfied and a card is on file, the tier moves up and the corresponding Stripe subscription is created (Free → paid) or its price is swapped with proration (paid → paid). When the qualifying period is satisfied and there is no card on file, nothing is charged — see below.
Tier promotion is additionally human-supervised right now: even when an account fully qualifies, the upgrade surfaces as a prompt and is reviewed before any subscription is created. You will never discover a charge the dashboard didn't tell you about first.
Moving down or out
Downgrades cancel at the end of the current billing period, never mid-cycle — you paid for the period, you keep the tier until it expires. Above $100,000 MAR there is no auto-charge at all: the account is flagged for an Enterprise conversation with sales ([email protected]) and a custom-priced contract; the same flat-rate model, priced for your scale.
Tier event history
Every billing decision writes an audit row — qualifying-day advances, counter resets, card-required flags, upgrades, Enterprise handoffs, card additions and removals, subscription changes, and paid or failed invoices — each with the reason recorded verbatim. The Billing page shows the most recent 10 under Billing history, so "why did my tier change on this date" is always answerable from the dashboard, not a support ticket.
How payment works
Crossdeck charges through Stripe. You add a card once on the Billing page (Add a card); the form is Stripe Elements over a SetupIntent, so the card number is tokenised by Stripe and never touches Crossdeck's servers — all Crossdeck ever stores is the brand and last four digits shown back to you. 3-D Secure / SCA runs at card-add time, and the card is saved for off-session use, which is what lets a tier crossover charge succeed without you being present.
Charges happen only through the tier subscription:
- First paid tier: when an upgrade fires, a Stripe subscription is created at the new tier's flat price and invoices immediately — the free runway up to $1,500 MAR was the trial; there's no second one at the crossover.
- Between paid tiers: the existing subscription's price swaps to the new tier with proration, so you pay the difference for the remainder of the cycle, not two overlapping subscriptions.
- Renewals: Stripe charges the saved card each cycle at the flat tier price. Tax (VAT/GST) is computed automatically by Stripe Tax from your billing address; prices are in USD.
If a renewal charge fails, the subscription enters past_due and Stripe's Smart Retries take over — your plan stays active by default while Stripe retries the card, and the dashboard shows an "update your card" banner. Failed invoices are recorded in the billing history. If retries exhaust (or you cancel), the subscription is marked canceled; telemetry ingestion continues regardless, and reactivating is adding a card again.
If there's no card on file at the line
No card means no charge — there is no mechanism by which Crossdeck can bill an account without a saved payment method. Concretely, when a Free-tier account completes the 7-day qualifying period without a card:
- The account stays on Free. Nothing is charged and no subscription is created.
- The account is flagged at-limit and the dashboard shows a banner asking you to add a card; a softer prompt already appears from 70% of the band ceiling, and again in the last days of the qualifying window.
- SDK ingestion, entitlement checks, and webhooks continue unaffected. Your app's telemetry is never gated on Crossdeck's billing.
- The qualifying counter holds at 7 rather than resetting — the moment a card lands, the upgrade completes without re-waiting another 7 days.
What's never charged
- Anything under $1,500 MAR. The Free tier is permanent, not a trial. No card is required to use it, and there is no time limit.
- Sandbox activity. Sandbox subscriptions and purchases are excluded from MAR at the source — test revenue cannot move your tier.
- Trials. A trialling customer contributes $0 to MAR until their first paid charge.
- A percentage of your revenue. Never. Crossdeck is a flat subscription; your Apple, Google, and Stripe payouts go straight to your accounts.
- Per-app, per-seat, or per-event fees. One account, unlimited apps, one flat price per band.
- Overages. Volume caps (e.g. error capture on Free) warn and then pause that one capture stream until the next cycle — they never generate a surprise bill.
Where to manage it
Everything in this doc is visible and operable on your dashboard's Billing page: your current tier and price, live MAR with progress through the band, the trailing-30-day revenue breakdown (subscriptions, one-time purchases, refunds & disputes), your saved card (replaceable any time), and the audited billing history. The page updates live — adding a card or a webhook firing re-renders it within seconds.
Billing questions, disputes, or anything that needs a human: contact us with the billing topic — it routes to [email protected] with a first response within one business day.
Related
- Pricing page — feature comparison across tiers, FAQ, and the cost comparison against percentage-fee tools.
- Sandbox vs production — why sandbox revenue can never count toward your tier.
- Limits & quotas — per-tier volume caps and what happens at them.
- Workspace operations — account-level operations on projects and data.