Add coulombcore hosting expense at 13.99 EUR/mo from Jan 2025

One hosting expense record per month alongside domain rows. Update
infrastructure catalog, tests, and dashboard for 20.74 EUR/mo total
infrastructure.
This commit is contained in:
2026-06-22 02:20:28 +02:00
parent 86ce511764
commit fc2324692c
5 changed files with 273 additions and 157 deletions

View File

@@ -29,8 +29,8 @@ def test_infrastructure_aggregated_from_domain_expense_records() -> None:
fx = load_fx_rates(DATA_DIR)
totals = aggregate_infrastructure_by_period(expenses, fx)
assert totals["2025-01"] == Decimal("6.75")
assert totals["2026-06"] == Decimal("6.75")
assert totals["2025-01"] == Decimal("20.74")
assert totals["2026-06"] == Decimal("20.74")
def test_monthly_ledger_starts_january_2025() -> None:
@@ -41,9 +41,9 @@ def test_monthly_ledger_starts_january_2025() -> None:
march = next(row for row in ledger if row.period == "2025-03")
june = next(row for row in ledger if row.period == "2026-06")
assert march.infrastructure_cost == Decimal("6.75")
assert march.infrastructure_cost == Decimal("20.74")
assert march.payment_processing_cost == Decimal("0.00")
assert june.infrastructure_cost == Decimal("6.75")
assert june.infrastructure_cost == Decimal("20.74")
assert june.payment_processing_cost == Decimal("0.38")
assert june.gross_revenue == Decimal("8.99")
@@ -57,11 +57,11 @@ def test_build_snapshot_june_2026_domain_only_infrastructure() -> None:
snapshot = build_snapshot("2026-06", product, models, members, payments, ledger)
assert snapshot.monthly_infrastructure_cost == Decimal("6.75")
assert snapshot.monthly_infrastructure_cost == Decimal("20.74")
assert snapshot.monthly_payment_processing_cost == Decimal("0.38")
assert snapshot.monthly_total_platform_cost == Decimal("7.13")
assert snapshot.period_net_liquidity == Decimal("1.86")
assert snapshot.liquidity_status == "generating"
assert snapshot.monthly_total_platform_cost == Decimal("21.12")
assert snapshot.period_net_liquidity == Decimal("-12.13")
assert snapshot.liquidity_status == "burning"
def test_liquidity_summary_with_actual_domain_costs() -> None:
@@ -71,12 +71,12 @@ def test_liquidity_summary_with_actual_domain_costs() -> None:
summary = build_liquidity_summary(budget, payments, ledger, "2026-06")
assert summary.cumulative_infrastructure_cost == Decimal("121.50")
assert summary.cumulative_infrastructure_cost == Decimal("373.32")
assert summary.cumulative_payment_processing_cost == Decimal("3.04")
assert summary.cumulative_total_platform_cost == Decimal("124.54")
assert summary.cumulative_total_platform_cost == Decimal("376.36")
assert summary.cumulative_member_payments == Decimal("68.88")
assert summary.cumulative_net_liquidity == Decimal("-52.62")
assert summary.remaining_budget == Decimal("947.38")
assert summary.cumulative_net_liquidity == Decimal("-304.44")
assert summary.remaining_budget == Decimal("695.56")
assert summary.liquidity_status == "burning"
assert summary.months_tracked == 18
@@ -98,6 +98,6 @@ def test_dashboard_notes_expense_record_source() -> None:
report = generate_dashboard(DATA_DIR, "2026-06")
assert "expense and payment record ledgers" in report
assert "121.50" in report
assert "947.38" in report
assert "373.32" in report
assert "695.56" in report
assert "coulomb.social" not in report # dashboard shows aggregates, not domain names