generated from coulomb/repo-seed
Replace pre-aggregated costs.json with expense_records.json (48 line-item records) and payment_records.json. All monthly and cumulative totals are computed deterministically in observatory/ledger.py. Correct Bubble.io to $32/mo (since Feb 2025) — infrastructure €69.44/mo not €72.20.
490 lines
13 KiB
JSON
490 lines
13 KiB
JSON
{
|
|
"version": 1,
|
|
"fx_rates": {
|
|
"USD/EUR": "0.92"
|
|
},
|
|
"records": [
|
|
{
|
|
"id": "exp-bubble-2025-03",
|
|
"period": "2025-03",
|
|
"vendor": "bubble.io",
|
|
"description": "Bubble.io Personal plan ($32/mo since Feb 2025)",
|
|
"cost_class": "infrastructure",
|
|
"amount": "32.00",
|
|
"currency": "USD",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-domains-2025-03",
|
|
"period": "2025-03",
|
|
"vendor": "domains",
|
|
"description": "Domain registrations",
|
|
"cost_class": "infrastructure",
|
|
"amount": "15.00",
|
|
"currency": "EUR",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-overhead-2025-03",
|
|
"period": "2025-03",
|
|
"vendor": "operational-overhead",
|
|
"description": "Operational overhead",
|
|
"cost_class": "infrastructure",
|
|
"amount": "25.00",
|
|
"currency": "EUR",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-bubble-2025-04",
|
|
"period": "2025-04",
|
|
"vendor": "bubble.io",
|
|
"description": "Bubble.io Personal plan ($32/mo since Feb 2025)",
|
|
"cost_class": "infrastructure",
|
|
"amount": "32.00",
|
|
"currency": "USD",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-domains-2025-04",
|
|
"period": "2025-04",
|
|
"vendor": "domains",
|
|
"description": "Domain registrations",
|
|
"cost_class": "infrastructure",
|
|
"amount": "15.00",
|
|
"currency": "EUR",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-overhead-2025-04",
|
|
"period": "2025-04",
|
|
"vendor": "operational-overhead",
|
|
"description": "Operational overhead",
|
|
"cost_class": "infrastructure",
|
|
"amount": "25.00",
|
|
"currency": "EUR",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-bubble-2025-05",
|
|
"period": "2025-05",
|
|
"vendor": "bubble.io",
|
|
"description": "Bubble.io Personal plan ($32/mo since Feb 2025)",
|
|
"cost_class": "infrastructure",
|
|
"amount": "32.00",
|
|
"currency": "USD",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-domains-2025-05",
|
|
"period": "2025-05",
|
|
"vendor": "domains",
|
|
"description": "Domain registrations",
|
|
"cost_class": "infrastructure",
|
|
"amount": "15.00",
|
|
"currency": "EUR",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-overhead-2025-05",
|
|
"period": "2025-05",
|
|
"vendor": "operational-overhead",
|
|
"description": "Operational overhead",
|
|
"cost_class": "infrastructure",
|
|
"amount": "25.00",
|
|
"currency": "EUR",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-bubble-2025-06",
|
|
"period": "2025-06",
|
|
"vendor": "bubble.io",
|
|
"description": "Bubble.io Personal plan ($32/mo since Feb 2025)",
|
|
"cost_class": "infrastructure",
|
|
"amount": "32.00",
|
|
"currency": "USD",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-domains-2025-06",
|
|
"period": "2025-06",
|
|
"vendor": "domains",
|
|
"description": "Domain registrations",
|
|
"cost_class": "infrastructure",
|
|
"amount": "15.00",
|
|
"currency": "EUR",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-overhead-2025-06",
|
|
"period": "2025-06",
|
|
"vendor": "operational-overhead",
|
|
"description": "Operational overhead",
|
|
"cost_class": "infrastructure",
|
|
"amount": "25.00",
|
|
"currency": "EUR",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-bubble-2025-07",
|
|
"period": "2025-07",
|
|
"vendor": "bubble.io",
|
|
"description": "Bubble.io Personal plan ($32/mo since Feb 2025)",
|
|
"cost_class": "infrastructure",
|
|
"amount": "32.00",
|
|
"currency": "USD",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-domains-2025-07",
|
|
"period": "2025-07",
|
|
"vendor": "domains",
|
|
"description": "Domain registrations",
|
|
"cost_class": "infrastructure",
|
|
"amount": "15.00",
|
|
"currency": "EUR",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-overhead-2025-07",
|
|
"period": "2025-07",
|
|
"vendor": "operational-overhead",
|
|
"description": "Operational overhead",
|
|
"cost_class": "infrastructure",
|
|
"amount": "25.00",
|
|
"currency": "EUR",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-bubble-2025-08",
|
|
"period": "2025-08",
|
|
"vendor": "bubble.io",
|
|
"description": "Bubble.io Personal plan ($32/mo since Feb 2025)",
|
|
"cost_class": "infrastructure",
|
|
"amount": "32.00",
|
|
"currency": "USD",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-domains-2025-08",
|
|
"period": "2025-08",
|
|
"vendor": "domains",
|
|
"description": "Domain registrations",
|
|
"cost_class": "infrastructure",
|
|
"amount": "15.00",
|
|
"currency": "EUR",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-overhead-2025-08",
|
|
"period": "2025-08",
|
|
"vendor": "operational-overhead",
|
|
"description": "Operational overhead",
|
|
"cost_class": "infrastructure",
|
|
"amount": "25.00",
|
|
"currency": "EUR",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-bubble-2025-09",
|
|
"period": "2025-09",
|
|
"vendor": "bubble.io",
|
|
"description": "Bubble.io Personal plan ($32/mo since Feb 2025)",
|
|
"cost_class": "infrastructure",
|
|
"amount": "32.00",
|
|
"currency": "USD",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-domains-2025-09",
|
|
"period": "2025-09",
|
|
"vendor": "domains",
|
|
"description": "Domain registrations",
|
|
"cost_class": "infrastructure",
|
|
"amount": "15.00",
|
|
"currency": "EUR",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-overhead-2025-09",
|
|
"period": "2025-09",
|
|
"vendor": "operational-overhead",
|
|
"description": "Operational overhead",
|
|
"cost_class": "infrastructure",
|
|
"amount": "25.00",
|
|
"currency": "EUR",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-bubble-2025-10",
|
|
"period": "2025-10",
|
|
"vendor": "bubble.io",
|
|
"description": "Bubble.io Personal plan ($32/mo since Feb 2025)",
|
|
"cost_class": "infrastructure",
|
|
"amount": "32.00",
|
|
"currency": "USD",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-domains-2025-10",
|
|
"period": "2025-10",
|
|
"vendor": "domains",
|
|
"description": "Domain registrations",
|
|
"cost_class": "infrastructure",
|
|
"amount": "15.00",
|
|
"currency": "EUR",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-overhead-2025-10",
|
|
"period": "2025-10",
|
|
"vendor": "operational-overhead",
|
|
"description": "Operational overhead",
|
|
"cost_class": "infrastructure",
|
|
"amount": "25.00",
|
|
"currency": "EUR",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-bubble-2025-11",
|
|
"period": "2025-11",
|
|
"vendor": "bubble.io",
|
|
"description": "Bubble.io Personal plan ($32/mo since Feb 2025)",
|
|
"cost_class": "infrastructure",
|
|
"amount": "32.00",
|
|
"currency": "USD",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-domains-2025-11",
|
|
"period": "2025-11",
|
|
"vendor": "domains",
|
|
"description": "Domain registrations",
|
|
"cost_class": "infrastructure",
|
|
"amount": "15.00",
|
|
"currency": "EUR",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-overhead-2025-11",
|
|
"period": "2025-11",
|
|
"vendor": "operational-overhead",
|
|
"description": "Operational overhead",
|
|
"cost_class": "infrastructure",
|
|
"amount": "25.00",
|
|
"currency": "EUR",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-bubble-2025-12",
|
|
"period": "2025-12",
|
|
"vendor": "bubble.io",
|
|
"description": "Bubble.io Personal plan ($32/mo since Feb 2025)",
|
|
"cost_class": "infrastructure",
|
|
"amount": "32.00",
|
|
"currency": "USD",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-domains-2025-12",
|
|
"period": "2025-12",
|
|
"vendor": "domains",
|
|
"description": "Domain registrations",
|
|
"cost_class": "infrastructure",
|
|
"amount": "15.00",
|
|
"currency": "EUR",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-overhead-2025-12",
|
|
"period": "2025-12",
|
|
"vendor": "operational-overhead",
|
|
"description": "Operational overhead",
|
|
"cost_class": "infrastructure",
|
|
"amount": "25.00",
|
|
"currency": "EUR",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-bubble-2026-01",
|
|
"period": "2026-01",
|
|
"vendor": "bubble.io",
|
|
"description": "Bubble.io Personal plan ($32/mo since Feb 2025)",
|
|
"cost_class": "infrastructure",
|
|
"amount": "32.00",
|
|
"currency": "USD",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-domains-2026-01",
|
|
"period": "2026-01",
|
|
"vendor": "domains",
|
|
"description": "Domain registrations",
|
|
"cost_class": "infrastructure",
|
|
"amount": "15.00",
|
|
"currency": "EUR",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-overhead-2026-01",
|
|
"period": "2026-01",
|
|
"vendor": "operational-overhead",
|
|
"description": "Operational overhead",
|
|
"cost_class": "infrastructure",
|
|
"amount": "25.00",
|
|
"currency": "EUR",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-bubble-2026-02",
|
|
"period": "2026-02",
|
|
"vendor": "bubble.io",
|
|
"description": "Bubble.io Personal plan ($32/mo since Feb 2025)",
|
|
"cost_class": "infrastructure",
|
|
"amount": "32.00",
|
|
"currency": "USD",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-domains-2026-02",
|
|
"period": "2026-02",
|
|
"vendor": "domains",
|
|
"description": "Domain registrations",
|
|
"cost_class": "infrastructure",
|
|
"amount": "15.00",
|
|
"currency": "EUR",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-overhead-2026-02",
|
|
"period": "2026-02",
|
|
"vendor": "operational-overhead",
|
|
"description": "Operational overhead",
|
|
"cost_class": "infrastructure",
|
|
"amount": "25.00",
|
|
"currency": "EUR",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-bubble-2026-03",
|
|
"period": "2026-03",
|
|
"vendor": "bubble.io",
|
|
"description": "Bubble.io Personal plan ($32/mo since Feb 2025)",
|
|
"cost_class": "infrastructure",
|
|
"amount": "32.00",
|
|
"currency": "USD",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-domains-2026-03",
|
|
"period": "2026-03",
|
|
"vendor": "domains",
|
|
"description": "Domain registrations",
|
|
"cost_class": "infrastructure",
|
|
"amount": "15.00",
|
|
"currency": "EUR",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-overhead-2026-03",
|
|
"period": "2026-03",
|
|
"vendor": "operational-overhead",
|
|
"description": "Operational overhead",
|
|
"cost_class": "infrastructure",
|
|
"amount": "25.00",
|
|
"currency": "EUR",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-bubble-2026-04",
|
|
"period": "2026-04",
|
|
"vendor": "bubble.io",
|
|
"description": "Bubble.io Personal plan ($32/mo since Feb 2025)",
|
|
"cost_class": "infrastructure",
|
|
"amount": "32.00",
|
|
"currency": "USD",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-domains-2026-04",
|
|
"period": "2026-04",
|
|
"vendor": "domains",
|
|
"description": "Domain registrations",
|
|
"cost_class": "infrastructure",
|
|
"amount": "15.00",
|
|
"currency": "EUR",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-overhead-2026-04",
|
|
"period": "2026-04",
|
|
"vendor": "operational-overhead",
|
|
"description": "Operational overhead",
|
|
"cost_class": "infrastructure",
|
|
"amount": "25.00",
|
|
"currency": "EUR",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-bubble-2026-05",
|
|
"period": "2026-05",
|
|
"vendor": "bubble.io",
|
|
"description": "Bubble.io Personal plan ($32/mo since Feb 2025)",
|
|
"cost_class": "infrastructure",
|
|
"amount": "32.00",
|
|
"currency": "USD",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-domains-2026-05",
|
|
"period": "2026-05",
|
|
"vendor": "domains",
|
|
"description": "Domain registrations",
|
|
"cost_class": "infrastructure",
|
|
"amount": "15.00",
|
|
"currency": "EUR",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-overhead-2026-05",
|
|
"period": "2026-05",
|
|
"vendor": "operational-overhead",
|
|
"description": "Operational overhead",
|
|
"cost_class": "infrastructure",
|
|
"amount": "25.00",
|
|
"currency": "EUR",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-bubble-2026-06",
|
|
"period": "2026-06",
|
|
"vendor": "bubble.io",
|
|
"description": "Bubble.io Personal plan ($32/mo since Feb 2025)",
|
|
"cost_class": "infrastructure",
|
|
"amount": "32.00",
|
|
"currency": "USD",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-domains-2026-06",
|
|
"period": "2026-06",
|
|
"vendor": "domains",
|
|
"description": "Domain registrations",
|
|
"cost_class": "infrastructure",
|
|
"amount": "15.00",
|
|
"currency": "EUR",
|
|
"source": "manual"
|
|
},
|
|
{
|
|
"id": "exp-overhead-2026-06",
|
|
"period": "2026-06",
|
|
"vendor": "operational-overhead",
|
|
"description": "Operational overhead",
|
|
"cost_class": "infrastructure",
|
|
"amount": "25.00",
|
|
"currency": "EUR",
|
|
"source": "manual"
|
|
}
|
|
],
|
|
"note": "Source-of-truth expense ledger. Aggregations are computed by observatory/ledger.py \u2014 never hand-edited totals."
|
|
}
|