What the product costs to run · every figure CAD — vendor rates quoted in USD are converted at 1.37, as at 2026-08-19
Payment processing is 90% of the cost of serving a customer. Compute, storage, bandwidth and AI together come to $2.69; the cloud itself is $0.45. The client is a static application served from the CDN edge at no per-request cost, collection runs on a schedule that scales with markets rather than customers, and the API is billed at $2 per million invocations. Effort spent optimising infrastructure is misdirected — the one meaningful lever is the Stripe rate, and the 0.7% Billing surcharge in particular is worth challenging at volume.
| Component | Annual CAD | Share |
|---|---|---|
| Stripe processing 3.6% of revenue (2.9% card + 0.7% Billing) + $0.30 × 5.4 transactions | $23.22 | 90% |
| Scout AI inference 300 messages/yr, DeepSeek v4-flash | $2.24 | 9% |
| Database egress 3 GB/yr | $0.37 | 1% |
| Edge function invocations 30,000/yr | $0.08 | 0% |
| Map tiles OpenFreeMap — free for commercial use | $0.00 | 0% |
| Total variable cost | $25.91 | 4% of revenue |
| Contribution per customer | $574.09 | 96% margin |
Average revenue is derived from the published price list against an expected purchase mix, with the coverage discount applied to geography only — workspace plans carry no readiness discount. The discount factor itself is measured from the model rather than assumed: 91% of list is charged across the 17 regions today, up as mapping lands.
| Component | CAD / month | Vendor list |
|---|---|---|
| Supabase Pro Free tier is 500 MB and suspends after a week idle; the permit store alone is over 1 GB. | $34.25 | $25 USD |
| Compute add-on Small, net of the $10 credit. Medium beyond ~500 customers. | $6.85 | $5 USD |
| Database storage above 8 GB Permits consume 1.68 GB per million records. | $2.74 | $2 USD |
| Cloudflare Workers 10M requests included. Pages static hosting is free. | $6.85 | $5 USD |
| Transactional email | $27.40 | $20 USD |
| Monitoring, domains, miscellaneous | $20.55 | $15 USD |
| Permit ingestion — OCR, geocoding, scheduled collection | $47.20 | $34 USD |
| Total | $145.84 | $106 USD |
| Scale | Annual fixed cost CAD |
|---|---|
| Up to 500 customers | $1,750 |
| 500 – 2,000 customers | $2,490 |
| 2,000+ customers | $3,345 |
Ingestion is charged against markets covered, not customers — 96 locations at roughly $6 each per year. That is the whole reason adding customers is nearly free and adding a province is not. Storage grows under 400 MB a year against 8 GB included, about $1 of incremental cost.
| Milestone | Customers | Revenue CAD | Operating cost CAD |
|---|---|---|---|
| Break-even — covers its own operating cost | 4 | $2,400 | $1,854 |
| 50% operating margin | 7 | $4,200 | $1,931 |
| 70% operating margin | 12 | $7,200 | $2,061 |
| 80% operating margin | 19 | $11,400 | $2,242 |
| 90% operating margin | 52 | $31,200 | $3,098 |
| 95% operating margin | 429 | $257,400 | $12,867 |
The product has no meaningful scale threshold. It covers its own running costs at 4 customers and reaches 90% margin at 52; past break-even every additional customer contributes $574.09 against negligible incremental cost. Everything above that line is available to fund whatever the company chooses to spend it on — staffing and go-to-market are outside this page's scope, and they, not technology, decide when the business is profitable.
MRR and ARR are both shown, because the monthly figures understate the scale
at a glance. At month twelve this is $265,200 a year —
$22,100 a month — against $13,204 of annual cost, leaving
$251,996 of annual operating profit.
Cost columns are monthly. Serving is $2.16 per customer per month;
$25.91 a year. Platform is the fixed base — $1,750 a year,
$145.84 a month — charged whether there are six customers or none. It is
92% of month-one cost and 13%
by month twelve; that collapse, not any change in unit cost, is what the margin column tracks.
| Month | Net adds | Customers | MRR | ARR | Serving /mo | Platform /mo | Cost /mo | Profit /mo | Profit /yr | Margin |
|---|---|---|---|---|---|---|---|---|---|---|
| Month 1 | +6 | 6 | $300 | $3,600 | $13 | $146 | $159 | $141 | $1,694 | 47% |
| Month 2 | +10 | 16 | $800 | $9,600 | $35 | $146 | $180 | $620 | $7,435 | 77% |
| Month 3 | +15 | 31 | $1,550 | $18,600 | $67 | $146 | $213 | $1,337 | $16,047 | 86% |
| Month 4 | +21 | 52 | $2,600 | $31,200 | $112 | $146 | $258 | $2,342 | $28,102 | 90% |
| Month 5 | +27 | 79 | $3,950 | $47,400 | $171 | $146 | $316 | $3,634 | $43,603 | 92% |
| Month 6 | +33 | 112 | $5,600 | $67,200 | $242 | $146 | $388 | $5,212 | $62,547 | 93% |
| Month 7 | +40 | 152 | $7,600 | $91,200 | $328 | $146 | $474 | $7,126 | $85,511 | 94% |
| Month 8 | +46 | 198 | $9,900 | $118,800 | $428 | $146 | $573 | $9,327 | $111,919 | 94% |
| Month 9 | +52 | 250 | $12,500 | $150,000 | $540 | $146 | $686 | $11,814 | $141,771 | 95% |
| Month 10 | +58 | 308 | $15,400 | $184,800 | $665 | $146 | $811 | $14,589 | $175,068 | 95% |
| Month 11 | +64 | 372 | $18,600 | $223,200 | $803 | $146 | $949 | $17,651 | $211,810 | 95% |
| Month 12 | +70 | 442 | $22,100 | $265,200 | $955 | $146 | $1,100 | $21,000 | $251,996 | 95% |
At month twelve the product runs at $22,100.00 MRR against $1,100.36 of monthly cost — an annual run rate of $265,200 on $13,204. Monthly cost grows $941.56 across the year while monthly revenue grows $21,800.00, a 23:1 ratio. The ramp is an illustration of shape, not a forecast — no acquisition data exists yet. The cost columns are a direct function of customer count and hold regardless of how fast it actually runs.
| Change | Effect |
|---|---|
| ARPA 20% below plan | Break-even 4 → 4 customers |
| Scout usage triples | Adds $4.48/customer; margin ceiling 95% |
| Stripe rate cut by one point | Saves $6.00/customer — more than all infrastructure combined |
| Database grows 10× faster | Adds roughly $6 a year in total |
| Adding a province | Fixed ingest rises ~$6 per location; cost per customer unchanged |
The model is insensitive to everything except revenue per customer and the Stripe rate. No plausible infrastructure scenario threatens the margin, and no infrastructure saving is material beside the payment-processing line. Vendor rates are published list prices and should be re-verified at contract; volume terms are worth seeking from Stripe and nowhere else.