Running Costs Forecast
Status: draft, not committed financial projection. This is a working estimate to inform pricing, the 80/20 split conversation, and capacity planning. Real costs land in platform_costs_daily nightly. Update this doc when actuals diverge meaningfully from the model.The model (canonical)
Revenue is split before costs:
- 10% of gross revenue → owner (off the top, flat)
- 90% of gross revenue → creator pool
- All operating costs (hosting, services, marketing, moderation,
payment processing, sales, taxes, etc.) come out of the creator pool.
- Whatever remains in the creator pool is distributed to creators by
impressions on their content posts.
In effect: creator_payout = 0.90 × revenue − all_operating_costs. The owner takes a flat 10% and the creators absorb cost variance together. This is honest and simple — there's no scenario where the owner gets paid more by spending more on infrastructure.
Cost categories below match the columns in platform_costs_daily (infrastructure_cents, moderation_cents, payment_processing_cents, other_cents). This doc is the assumption ledger behind the math.
Stack costs (per-unit)
| Item | Unit cost | Notes | |---|---|---| | Vercel Pro | $20 / month flat | + ~$0.40/GB bandwidth above included quota | | Vercel bandwidth | $0.40 / GB | After 1 TB included | | Supabase Pro | $25 / month flat | + overages below | | Supabase database storage | $0.125 / GB-month | After 8 GB included | | Supabase egress | $0.09 / GB | After 250 GB included | | Supabase Realtime | $10 / million messages | Live chat is the main consumer | | Claude Haiku moderation | ~$0.0006 / post (uncached) | 500 input + 50 output tokens; falls to ~$0 with content-hash cache | | Claude Sonnet (vision) | ~$0.005 / image | Only on posts with media | | Stripe payment processing | 2.9% + $0.30 per charge | Mandatory floor — applies to every credit purchase, promotion, ad payout | | Stripe Connect Express | $2 / active connected account / month | Plus 0.25% + $0.25 per payout | | Cloudflare proxy + Turnstile | $0 | Free tier indefinitely at our volume | | AWS SES (transactional email) | $0.10 / 1k emails | Negligible | | Domain registrations | ~$15 / domain / year | Once-a-year cost |
Trust, safety, compliance
| Item | Unit cost | Notes | |---|---|---| | DMCA designated agent (US Copyright Office) | $6 / 3 years | Required for safe harbor under §512 | | Stripe Tax | 0.5% of taxable transactions | Sales/use tax compliance — credit purchases, promotions | | 1099-NEC issuance | $2–5 / form | Required for any creator paid >$600/yr; service like Track1099 | | Identity verification (age verification, creator KYC beyond Stripe) | $1–5 / verification | Persona / Stripe Identity if/when needed | | CSAM hash matching | $0 | NCMEC / Thorn provide free integration to qualified orgs | | Human moderator escalations | $15–25 / hour | When Claude verdict is appealed — Phase 2+ when volume warrants | | Privacy/terms lawyer review | $1k–5k one-time + $500/yr | When material changes ship | | GDPR/CCPA compliance review | $2k–10k one-time | At Year 2 when EU traffic warrants | | Cyber liability insurance | $1k–3k / year | At Phase 3 when revenue and PII volume justify | | D&O insurance | $2k–5k / year | Once funded or hiring | | Trademark registration (Sourced word + logo) | ~$350 / class one-time | Defensive |
Business operations (when team grows beyond solo)
| Item | Unit cost | Notes | |---|---|---| | Google Workspace | $7 / user / month | Email + Drive + Calendar | | Slack (or Discord free) | $0–8 / user / month | Free tier covers small teams | | Linear / Notion | $10–15 / seat / month | Project + docs | | Accounting software (QuickBooks / Xero) | $30–50 / month | At Phase 2 when invoicing/1099s appear | | Payroll processor (Gusto / Rippling) | $40 + $6 per employee / month | Once first hire happens | | Bookkeeping service | $200–500 / month | Or founder-time at Phase 1–2 | | Cap table (Carta / Pulley) | $0 free tier → $250+ / month | Once equity grants happen | | Bank fees + ACH | ~$30 / month | Negligible at small scale |
Observability + reliability
| Item | Unit cost | Notes | |---|---|---| | Sentry (errors) | $0 free → $26+ / month | Already in plan | | LogFlare / BetterStack (logs) | $0–25 / month | Phase 2+ | | Uptime monitoring (UptimeRobot / BetterUptime) | $0–25 / month | Free tier sufficient at Phase 1–2 | | Status page (BetterStack / Statuspage) | $0–30 / month | Optional; free tier exists | | Backups beyond Supabase included PITR | $50–200 / month | Phase 3+ — off-site backup to S3 / R2 |
Marketing + growth
| Item | Unit cost | Notes | |---|---|---| | Paid acquisition (Google / Meta / X / Reddit ads) | Variable; budget-driven | Likely $0 at Phase 1, $500–5k/mo at Phase 2 | | Content marketing / SEO tools (Ahrefs, Semrush) | $100–250 / month | Optional; Phase 2+ | | Email marketing platform (Resend / Postmark / Loops) | $0 free → $50+ / month | Distinct from transactional SES | | Analytics (Plausible / PostHog self-host) | $0–50 / month | Self-hosted free; managed at low tier | | Press distribution / PR | $0–500 per release | Sporadic | | Influencer / creator seed payments | Variable | Direct creator partnerships before organic flywheel |
AI / API costs beyond moderation
| Item | Unit cost | Notes | |---|---|---| | Embeddings (search / similar-posts) | $0.02 / 1M tokens | When semantic search ships | | Translation API (DeepL / Claude) | $0.005 / 1k chars | When ES + EN both ship dynamically | | LLM fallback provider | Variable | If Anthropic outages happen at scale |
One-time / capital
| Item | Unit cost | Notes | |---|---|---| | Founder + dev workstations | $1k–3k / person amortized over 3 years | Already owned | | Recruiting / hiring | $0–10k per hire | Variable; when team grows |
Three-year projection (working numbers)
Assumptions for each phase live below the tables.
Phase 1 — Soft launch (months 1–6)
| Line | Monthly | % of revenue | |---|---|---| | Revenue | $300 | — | | Vercel Pro | $20 | 7% | | Supabase Pro | $25 | 8% | | Claude moderation (mostly cached) | $5 | 2% | | Stripe processing (3.2% effective) | $10 | 3% | | Stripe Connect (10 creators × $2) | $20 | 7% | | Stripe Tax | $1 | <1% | | Domain renewals (amortized) | $2 | <1% | | AWS SES (transactional) | $1 | <1% | | Sentry / uptime monitoring (free tiers) | $0 | 0% | | Bank fees + Google Workspace (1 user) | $10 | 3% | | Bookkeeping (founder-time) | — | — | | Total running costs | $94 | 31% | | Owner cut (10% of gross, off the top) | $30 | 10% | | Creator pool (90% of gross, before costs) | $270 | 90% | | Costs deducted from creator pool | −$94 | — | | → Creators (90% pool − costs, by impressions) | $176 | 59% |
Phase 1 reality check: flat infra fees swamp revenue. Most creator payouts sit below the $20 Stripe minimum and roll forward. The owner's 10% cut ($30/mo) doesn't pay for anything meaningful — this is the cost of bootstrapping audience and is fine. Not in the table: DMCA agent registration ($6/3yr) and trademark filing (~$350 one-time) land here as one-shots — amortize separately.
Phase 2 — Early growth (months 7–18)
| Line | Monthly | % of revenue | |---|---|---| | Revenue | $5,000 | — | | Vercel Pro + bandwidth (~3 TB) | $100 | 2.0% | | Supabase Pro + egress + Realtime | $120 | 2.4% | | Claude moderation (3k posts/day, 90% cached) | $50 | 1.0% | | Embeddings + translation (semantic search + ES) | $20 | 0.4% | | Stripe processing (3.2%) | $160 | 3.2% | | Stripe Connect (200 creators × $2 + payout fees) | $450 | 9.0% | | Stripe Tax | $25 | 0.5% | | Sentry + observability | $26 | 0.5% | | Email marketing platform (Resend) | $20 | 0.4% | | AWS SES (transactional) | $5 | 0.1% | | Google Workspace (3 users) | $21 | 0.4% | | Accounting software | $40 | 0.8% | | Bookkeeping service | $300 | 6.0% | | Lawyer review (annual amortized) | $50 | 1.0% | | Insurance (cyber + general, amortized) | $150 | 3.0% | | Paid acquisition (Reddit / niche dev outlets) | $500 | 10.0% | | Human moderator escalations (10 hr/mo × $20) | $200 | 4.0% | | Total running costs | $2,237 | 45% | | Owner cut (10% of gross, off the top) | $500 | 10% | | Creator pool (90% of gross, before costs) | $4,500 | 90% | | Costs deducted from creator pool | −$2,237 | — | | → Creators (90% pool − costs, by impressions) | $2,263 | 45% |
Phase 2 reality check: going from "founder runs everything" to "basic team + paid acquisition" eats most of the cost compression we'd otherwise see at higher revenue. Bookkeeping, insurance, and paid marketing alone run ~$1k/mo. Stripe Connect monthly fees per creator also bite hard — if many sit below the payout minimum, we pay $2/mo per creator without paying any of them out. Lever: raise the auto-payout floor; defer paid acquisition until product-market-fit signals are clearer; insurance can wait until contracts demand it.
Phase 3 — Scale (months 19–36)
| Line | Monthly | % of revenue | |---|---|---| | Revenue | $50,000 | — | | Vercel (heavier bandwidth + functions) | $600 | 1.2% | | Supabase (storage + egress + Realtime + Postgres compute) | $800 | 1.6% | | Off-site backups (S3 / R2) | $150 | 0.3% | | Claude moderation (30k posts/day, 95% cached) | $150 | 0.3% | | Embeddings + translation | $200 | 0.4% | | Stripe processing (3.2%) | $1,600 | 3.2% | | Stripe Connect (2,000 creators × $2 + 1.5% volume) | $4,500 | 9.0% | | Stripe Tax | $250 | 0.5% | | 1099-NEC issuance (~500 creators / yr ÷ 12) | $200 | 0.4% | | Cloudflare paid plan + WAF rules | $250 | 0.5% | | Sentry + LogFlare + uptime + status page | $200 | 0.4% | | Email marketing platform | $100 | 0.2% | | Google Workspace (8 users) | $56 | 0.1% | | Linear + Notion + cap table | $250 | 0.5% | | Accounting + payroll + bookkeeping | $1,200 | 2.4% | | Lawyer + compliance reviews (annual amortized) | $400 | 0.8% | | Insurance (cyber + D&O + general) | $600 | 1.2% | | Paid acquisition + content marketing | $5,000 | 10.0% | | Human moderation labor (~50 hr/mo × $22) | $1,100 | 2.2% | | Identity verification (KYC + age) | $200 | 0.4% | | Bank fees + misc | $50 | 0.1% | | Total running costs | $17,856 | 36% | | Owner cut (10% of gross, off the top) | $5,000 | 10% | | Creator pool (90% of gross, before costs) | $45,000 | 90% | | Costs deducted from creator pool | −$17,856 | — | | → Creators (90% pool − costs, by impressions) | $27,144 | 54% |
Phase 3 reality check: at this scale "running costs" includes a real team and real marketing — not just AWS bills. Paid acquisition alone is 10% of revenue. The cost % stops compressing because Stripe Connect creator-account fees scale linearly with creator count (not revenue), and team/marketing scale with growth ambition. The owner's 10%-of-gross cut ($5k/mo) covers a part-time engineer but not a full salaried team — at this stage the platform either needs higher revenue, investment runway, or a smaller team to self-sustain.
What dominates, by phase
- Phase 1: flat infra fees (Vercel + Supabase) — anything we do is
noise next to the $45/month base.
- Phase 2: Stripe Connect creator-account fees — set payout
minimums to avoid paying $2/month for creators who never reach the payout threshold.
- Phase 3: Stripe processing + Stripe Connect together — both
scale with volume and creator count, both unavoidable.
Sensitivity / things that make it worse
- Live broadcasts at scale. Live chat Realtime + concurrent viewer
bandwidth scales with concurrent live audience. If a single broadcast pulls 10k concurrent viewers, that's 5–10 GB egress in an hour. Need to model this once usage data is in.
- Image-heavy posts. Vision moderation (Sonnet) is ~10× the per-post
cost of text. If creators upload images on most posts, the cached effective rate could rise from $50 → $250/month at Phase 2.
- Failed payouts / Stripe disputes. Each chargeback costs $15
flat. Promotion abuse could spike this.
- DDoS / abuse. Cloudflare absorbs most of it for free, but a
sustained attack could push us into a paid plan ($250/mo) or bandwidth overages.
Sensitivity / things that make it better
- Self-serve ad pricing tiers at scale could reduce Stripe payment
fees by batching promotion payments (one ACH per month vs many card charges).
- Content-hash moderation cache is already wired up; effective rate
drops as the corpus grows. Worth tracking the cache hit rate alongside cost.
- Creator payout minimums. Raising the auto-payout threshold from
$20 → $50 reduces Stripe Connect monthly + per-payout fees on long-tail creators who'd cost more than they earn.
How this affects the creator-share promise
| Phase | Effective creator share of gross revenue | |---|---| | 1 | (90% − 31%) = 59% | | 2 | (90% − 45%) = 45% | | 3 | (90% − 36%) = 54% |
Public copy says "creators get 90% of revenue, with operating costs paid out of that pool." That's accurate. The effective gross share above is what creators actually compare against YouTube (55%), Substack (90%), Patreon (~92%), and TikTok Creator Fund (varies, often <50%). With the expanded Phase 2 cost base (team + paid acquisition + insurance), our effective creator share dips below YouTube. Two ways to think about that:
- Defer team + marketing spend until Phase 3 revenue justifies
it. Early-stage cost discipline keeps the effective creator share above YouTube and protects the differentiator.
- Accept the dip as the price of growth, and message it openly:
"Year 2 is when we invest in team and audience; Year 3+ is when the model self-corrects." Hides nothing, but creators will compare absolute dollars to YouTube and we may lose them.
The owner's 10%-of-gross cut is fixed and small — it's not the lever that moves creator economics. The lever is operational discipline inside the 90% pool. Every dollar of cost is a dollar fewer to creators; the platform doesn't benefit from spending more.
Update protocol
- Replace projected numbers with rolling 90-day actuals from
platform_costs_daily once we have 90+ days of real data.
- Re-run the 80/20 reality-check tables when any assumption moves
more than ±20%.
- If running-cost % rises above the projected band for two consecutive
months, surface it on /transparency with a note explaining why.
- Bracketed legal docs (
CREATOR_AGREEMENT.md,TERMS_OF_SERVICE.md)
reference "documented operating costs" — this is that document.
Open questions
- Do we want to disclose this forecast publicly on
/transparency, or
keep it internal and only show actuals?
- Should "platform costs" line items be itemized publicly at the same
granularity as the categories here, or aggregated to one number?
- At what creator payout minimum does Stripe Connect break even? Need
to model this — current $20 minimum may be too low.