Implement ADAPTIVE-WP-0002 Sprint 1 economic foundations
Add Coulomb observatory package with JSON registries (product, pricing models, costs, revenue, membership), economics snapshot engine, Economics Dashboard v1 CLI, sample report, and pytest coverage. Complete T01 and queue Sprint 2 Bubble.io integration.
This commit is contained in:
parent
d648a3263d
commit
a1a4aa972f
17 changed files with 709 additions and 19 deletions
64
projects/coulomb-pricing/data/costs.json
Normal file
64
projects/coulomb-pricing/data/costs.json
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
{
|
||||
"version": 1,
|
||||
"period": "2026-06",
|
||||
"entries": [
|
||||
{
|
||||
"id": "bubble-subscription",
|
||||
"name": "Bubble.io platform",
|
||||
"category": "fixed",
|
||||
"amount": "35.00",
|
||||
"currency": "USD",
|
||||
"cadence": "monthly",
|
||||
"allocation": "flat"
|
||||
},
|
||||
{
|
||||
"id": "domains",
|
||||
"name": "Domains",
|
||||
"category": "fixed",
|
||||
"amount": "15.00",
|
||||
"currency": "EUR",
|
||||
"cadence": "monthly",
|
||||
"allocation": "flat"
|
||||
},
|
||||
{
|
||||
"id": "operational-overhead",
|
||||
"name": "Operational overhead",
|
||||
"category": "fixed",
|
||||
"amount": "25.00",
|
||||
"currency": "EUR",
|
||||
"cadence": "monthly",
|
||||
"allocation": "flat"
|
||||
},
|
||||
{
|
||||
"id": "stripe-percentage",
|
||||
"name": "Stripe percentage fee",
|
||||
"category": "variable",
|
||||
"amount": "0.015",
|
||||
"currency": "ratio",
|
||||
"cadence": "per_transaction",
|
||||
"allocation": "percent_of_gross_revenue"
|
||||
},
|
||||
{
|
||||
"id": "stripe-fixed",
|
||||
"name": "Stripe fixed fee",
|
||||
"category": "variable",
|
||||
"amount": "0.25",
|
||||
"currency": "EUR",
|
||||
"cadence": "per_transaction",
|
||||
"allocation": "per_active_member"
|
||||
},
|
||||
{
|
||||
"id": "openrouter-ai",
|
||||
"name": "OpenRouter AI consumption",
|
||||
"category": "variable",
|
||||
"amount": "0.00",
|
||||
"currency": "EUR",
|
||||
"cadence": "monthly",
|
||||
"allocation": "flat",
|
||||
"note": "Populated in Sprint 4 after usage import"
|
||||
}
|
||||
],
|
||||
"fx_rates": {
|
||||
"USD/EUR": "0.92"
|
||||
}
|
||||
}
|
||||
40
projects/coulomb-pricing/data/membership.json
Normal file
40
projects/coulomb-pricing/data/membership.json
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
{
|
||||
"version": 1,
|
||||
"snapshot_date": "2026-06-21",
|
||||
"members": [
|
||||
{
|
||||
"id": "member-001",
|
||||
"external_id": null,
|
||||
"status": "active",
|
||||
"joined_at": "2025-11-03",
|
||||
"plan_id": "flat-899-eur-monthly",
|
||||
"source": "seed"
|
||||
},
|
||||
{
|
||||
"id": "member-002",
|
||||
"external_id": null,
|
||||
"status": "active",
|
||||
"joined_at": "2026-01-15",
|
||||
"plan_id": "flat-899-eur-monthly",
|
||||
"source": "seed"
|
||||
},
|
||||
{
|
||||
"id": "member-003",
|
||||
"external_id": null,
|
||||
"status": "active",
|
||||
"joined_at": "2026-03-28",
|
||||
"plan_id": "flat-899-eur-monthly",
|
||||
"source": "seed"
|
||||
},
|
||||
{
|
||||
"id": "member-004",
|
||||
"external_id": null,
|
||||
"status": "churned",
|
||||
"joined_at": "2025-08-10",
|
||||
"churned_at": "2026-02-01",
|
||||
"plan_id": "flat-899-eur-monthly",
|
||||
"source": "seed"
|
||||
}
|
||||
],
|
||||
"note": "Seed data for Sprint 1; replaced by Bubble importer in Sprint 2"
|
||||
}
|
||||
39
projects/coulomb-pricing/data/pricing-models.json
Normal file
39
projects/coulomb-pricing/data/pricing-models.json
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
{
|
||||
"version": 1,
|
||||
"models": [
|
||||
{
|
||||
"id": "flat-899-eur-monthly",
|
||||
"name": "Standard Membership",
|
||||
"model_type": "flat_subscription",
|
||||
"lifecycle_phase": "growth",
|
||||
"currency": "EUR",
|
||||
"access_fee_amount": "8.99",
|
||||
"access_fee_cadence": "monthly",
|
||||
"included_usage": "unlimited_repository_access",
|
||||
"status": "active"
|
||||
},
|
||||
{
|
||||
"id": "membership-plus-credits",
|
||||
"name": "Membership + AI Credits",
|
||||
"model_type": "hybrid_subscription_usage",
|
||||
"lifecycle_phase": "exploration",
|
||||
"currency": "EUR",
|
||||
"access_fee_amount": "8.99",
|
||||
"access_fee_cadence": "monthly",
|
||||
"included_usage": "monthly_ai_credit_allowance",
|
||||
"status": "candidate"
|
||||
},
|
||||
{
|
||||
"id": "membership-plus-overage",
|
||||
"name": "Membership + Overage",
|
||||
"model_type": "hybrid_subscription_usage",
|
||||
"lifecycle_phase": "exploration",
|
||||
"currency": "EUR",
|
||||
"access_fee_amount": "8.99",
|
||||
"access_fee_cadence": "monthly",
|
||||
"included_usage": "monthly_ai_credit_allowance",
|
||||
"overage_meter": "openrouter_tokens",
|
||||
"status": "candidate"
|
||||
}
|
||||
]
|
||||
}
|
||||
12
projects/coulomb-pricing/data/product.json
Normal file
12
projects/coulomb-pricing/data/product.json
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"id": "coulomb-social-membership",
|
||||
"name": "Coulomb Social Membership",
|
||||
"lifecycle_phase": "growth",
|
||||
"currency": "EUR",
|
||||
"description": "Repository and community access via monthly subscription.",
|
||||
"active_pricing_model_id": "flat-899-eur-monthly",
|
||||
"channels": {
|
||||
"membership_platform": "bubble.io",
|
||||
"payments": "stripe"
|
||||
}
|
||||
}
|
||||
16
projects/coulomb-pricing/data/revenue.json
Normal file
16
projects/coulomb-pricing/data/revenue.json
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"version": 1,
|
||||
"entries": [
|
||||
{
|
||||
"id": "rev-2026-06-estimate",
|
||||
"period": "2026-06",
|
||||
"gross_amount": "80.91",
|
||||
"fees_amount": "2.46",
|
||||
"refunds_amount": "0.00",
|
||||
"net_amount": "78.45",
|
||||
"currency": "EUR",
|
||||
"source": "manual_estimate",
|
||||
"note": "Seed estimate for Sprint 1; replaced by Stripe sync in Sprint 3"
|
||||
}
|
||||
]
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue