{ "schema_version": "0.1", "workload": "platform-pg", "cost_attribution_key": "platform:audit-storage", "currency": "EUR", "retention_days": 30, "base_backups_per_day": 1, "monthly_restore_drills": 1, "observation": { "observed_at": "2026-08-10T15:54:12Z", "database_bytes": 39573871, "wal_bytes": 19744568, "wal_stats_reset": "2026-08-10T13:37:53Z", "extrapolated_wal_gb_per_day": 0.208, "source": "read-only pg_database_size and pg_stat_wal query on platform-pg-1" }, "scenarios": { "low": {"initial_database_gb": 1, "monthly_database_growth_pct": 5, "wal_gb_per_day": 0.25, "restore_egress_gb": 1, "write_requests_per_month": 1000, "read_requests_per_month": 500, "operator_hours_per_month": 0.5, "operator_hourly_eur": 60}, "base": {"initial_database_gb": 5, "monthly_database_growth_pct": 10, "wal_gb_per_day": 1, "restore_egress_gb": 5, "write_requests_per_month": 2500, "read_requests_per_month": 1000, "operator_hours_per_month": 1, "operator_hourly_eur": 60}, "high": {"initial_database_gb": 20, "monthly_database_growth_pct": 20, "wal_gb_per_day": 5, "restore_egress_gb": 20, "write_requests_per_month": 12000, "read_requests_per_month": 5000, "operator_hours_per_month": 2, "operator_hourly_eur": 60} }, "notes": [ "Observed workload is less than one day old; scenario floors intentionally dominate the raw sample.", "Storage forecast assumes 30 retained daily base backups plus 30 days of WAL and is conservative because it does not model compression or Barman's exact point-of-recoverability deletion timing.", "Provider exit is modeled as one full stored-byte egress event and is reported separately from recurring monthly cost." ] }