# Coulomb MVP — Liquidity & Cost Requirements ## Context Coulomb Social carries **operator platform costs** (Bubble.io, domains, Stripe fees, future OpenRouter usage) while **customer cost-pass-through billing is not active yet**. Members pay a flat subscription; they are not billed for underlying platform spend. The Economic Observatory must make the resulting **liquidity burn** visible. ## Requirements ### LQ-001 — Platform cost ledger Record monthly platform costs from project start (March 2025), including fixed infrastructure and payment-provider variable fees when member revenue exists. ### LQ-002 — Member payment ledger Record member subscription payments from first payment month (November 2025), separate from platform cost accrual. ### LQ-003 — Budget tracking Maintain an operator liquidity budget (initial: **€1,000**) and compute remaining budget after cumulative platform spend minus cumulative member payments received. ### LQ-004 — Liquidity position Report whether the project is **burning**, **neutral**, or **generating** liquidity each period: - `period_net = member_payments - platform_costs` - `cumulative_net = sum(period_net)` - `remaining_budget = initial_budget + cumulative_net` Negative remaining budget means the MVP has consumed more liquidity than the allocated budget. ### LQ-005 — No customer cost billing (MVP boundary) Do not allocate platform costs to customer invoices in MVP. Cost attribution (OpenRouter per member, usage overage) is observatory-only until a later phase introduces customer-visible credits or usage billing. ### LQ-006 — Historical dashboard Economics Dashboard must show: - Current-period economics (revenue, platform cost, margin) - Cumulative liquidity summary (budget, burn, remaining) - Monthly history table from March 2025 ## Data sources (current) | Registry | Path | |----------|------| | Budget | `data/budget.json` | | Platform costs | `data/costs.json` (`rate_card` + `monthly_history`) | | Member payments | `data/revenue.json` | | Membership | `data/membership.json` | Future sprints replace manual history with Bubble, Stripe, and OpenRouter imports while preserving the same liquidity semantics.