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
{
"schema_version" : "0.2" ,
"record_id" : "forecast:apps-pg:2026-09:base:v1" ,
"record_type" : "forecast" ,
"resource_id" : "resource:railiance:apps-pg" ,
2026-08-14 13:15:02 +02:00
"financial_entity_id" : null ,
"procuring_entity_id" : "entity:railiance" ,
"entity_gap" : "shared platform service; coulomb share is allocated, no single consumer" ,
"transfer_price" : null ,
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
"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"
]
}