resource-control/data/control-cycle/apps-pg-2026-09-base.json
tegwick 17de8b831e feat(portfolio): fold in RAILIANCE-WP-0016 apps-pg evidence
First delegated evidence from RESOURCE-WP-0003-T04 to land. railiance-platform
delivered apps-pg capacity, utilization, consumers, and the apps-pg-dbbytes-v1
allocation driver, and correctly delivered no EUR.

- data/resources/apps-pg.json: real capacity; allocation unattributed -> shared
  under apps-pg-dbbytes-v1; second consumer vergabe-teilnahme registered
- data/control-cycle/apps-pg-2026-09-base.json: first operational control-cycle
  record in the repository
- examples/control-cycle/apps-pg-*.json retired; the invented fixture collided
  with the real record's identifier
- data/portfolio-coverage-2026-08-14.json: gap marked delivered with three
  residual unknowns still open

The real evidence exposed a design gap in the T05 schema: v0.1 required a number
for every cost field, so recording genuine usage without a booked cost meant
inventing one. Schema 0.2 permits null costs, null unattributed_eur, a technical
unattributed_share, and null measurements. Null is unknown, never zero; an
unknown component makes the total null rather than the sum of the known parts;
and the comparator classifies unknown amounts as data_quality instead of
computing a variance. Existing 0.1 records are not rewritten.

apps-pg is now measured (idle at 5.8% of volume) and attributed, and remains
unpriced: delivered technical evidence does not create a booked cost.

86 tests pass.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 09:36:57 +02:00

69 lines
2.8 KiB
JSON

{
"schema_version": "0.2",
"record_id": "forecast:apps-pg:2026-09:base:v1",
"record_type": "forecast",
"resource_id": "resource:railiance:apps-pg",
"resource_class": "shared_platform_service",
"period": "2026-09",
"created_at": "2026-08-14T00:00:00Z",
"scenario": "base",
"forecast_ref": null,
"revision_of": null,
"usage_proxies": {
"consumer_database_gb": { "value": 0.0155, "unit": "GiB" },
"pgdata_gb": { "value": 0.5766, "unit": "GiB" },
"wal_gb": { "value": 0.5469, "unit": "GiB" },
"sessions": { "value": 7, "unit": "count" }
},
"capacity": {
"model": "hybrid",
"provisioned": {
"storage": { "value": 10, "unit": "GiB" },
"instances": { "value": 1, "unit": "count" },
"max_connections": { "value": 100, "unit": "count" }
},
"used": {
"storage": { "value": 0.5766, "unit": "GiB" },
"instances": { "value": 1, "unit": "count" },
"sessions": { "value": 7, "unit": "count" }
}
},
"costs": {
"currency": "EUR",
"infrastructure": null,
"internal_labor": 30.0,
"external_labor": 0,
"total": null,
"booked_cost_refs": []
},
"allocation": {
"method": "proportional",
"driver": "database_gb",
"method_version": "apps-pg-dbbytes-v1",
"unattributed_eur": null,
"unattributed_share": 0.948
},
"service_constraints": {
"rpo_minutes": { "value": null, "unit": "minutes" },
"rto_minutes": { "value": null, "unit": "minutes" }
},
"uncertainty": {
"level": "high",
"notes": [
"First operational control-cycle record for this resource, from railiance-platform RAILIANCE-WP-0016 captured 2026-08-14T00:04:19Z",
"Infrastructure cost is null: apps-pg is a share of resource:hosteurope:railiance01, whose booked price is unknown (RAIL-HO-WP-0008)",
"Internal labour is 0.5 declared operator-hours per month converted at the EUR 60 per hour rate used in data/demand/platform-audit-storage.json; the hours are an estimate, not a timesheet",
"Total is null because one component is unknown; it is not the sum of the known parts",
"94.8 percent of used volume is WAL and engine catalogs attributed to platform:apps-pg-overhead, not to a consumer",
"vergabe_db has never recorded a transaction, so its 0.4614 byte share reflects a reserved empty database rather than realised demand",
"Five days of cluster life and no metrics retention: this is a snapshot carried forward, not a trend",
"RPO is unbounded and RTO undefined — no ScheduledBackup exists and the cluster is not an Option A logical-dump target"
]
},
"evidence": [
"/home/worsch/railiance-platform/docs/evidence/RAILIANCE-WP-0016-apps-pg-observation.json",
"/home/worsch/railiance-platform/docs/evidence/RAILIANCE-WP-0016-apps-pg-resource-evidence.md",
"RAILIANCE-WP-0016",
"data/resources/apps-pg.json"
]
}