feat: operational resource procurement facility
Implement RESOURCE-WP-0005: entity register, V0.1 terms parameters, entity association on inventory and planning records, transfer-price and credit-state arithmetic, monthly settlement, and entity views on the portfolio report. Live close emits nothing until delivered cost is known. Handoffs are FIN-WP-0006 and RAILIANCE-WP-0017.
This commit is contained in:
parent
325a505980
commit
f8d1c542d5
37 changed files with 1316 additions and 28 deletions
41
examples/planning/entity-forecast-transfer.json
Normal file
41
examples/planning/entity-forecast-transfer.json
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
"schema_version": "0.1",
|
||||
"record_type": "forecast",
|
||||
"record_id": "forecast:example:coulomb:cluster-share:2026-08:base",
|
||||
"revision_of": null,
|
||||
"resource_id": "resource:example:coulomb-cluster-share",
|
||||
"service_id": "cluster-share",
|
||||
"workload_id": "coulomb-social",
|
||||
"tenant_id": "tenant:coulomb",
|
||||
"environment": "production",
|
||||
"cost_attribution_key": "entity:coulomb|resource:example:coulomb-cluster-share",
|
||||
"financial_entity_id": "entity:coulomb",
|
||||
"procuring_entity_id": "entity:railiance",
|
||||
"entity_gap": null,
|
||||
"period_start": "2026-08-01",
|
||||
"period_end": "2026-08-31",
|
||||
"source_evidence": [
|
||||
"docs/TermsOfResourceProcurement.md#15-worked-examples",
|
||||
"examples/settlement/15.1-ordinary.json"
|
||||
],
|
||||
"created_at": "2026-08-14T12:00:00Z",
|
||||
"currency": "EUR",
|
||||
"scenario": "base",
|
||||
"forecast_version": "terms-v0.1:2026-08-14",
|
||||
"costs": {
|
||||
"infrastructure": "200.00",
|
||||
"internal_labor": "0.00",
|
||||
"external_services": "0.00",
|
||||
"setup": "0.00",
|
||||
"other": "0.00"
|
||||
},
|
||||
"transfer_price": "240.00",
|
||||
"credit_headroom": "760.00",
|
||||
"uncertainty": "illustrative Terms § 15.1 fixture; not booked spend",
|
||||
"assumptions": [
|
||||
"delivered_cost=200.00",
|
||||
"markup_rate=0.20",
|
||||
"prior_outstanding=0.00",
|
||||
"credit_limit=1000.00"
|
||||
]
|
||||
}
|
||||
|
|
@ -1,6 +1,10 @@
|
|||
{
|
||||
"schema_version": "0.2", "record_scope": "example",
|
||||
"id": "resource:example:garage:cluster", "resource_class": "self_managed_service",
|
||||
"id": "resource:example:garage:cluster",
|
||||
"financial_entity_id": "entity:railiance",
|
||||
"procuring_entity_id": "entity:railiance",
|
||||
"entity_gap": null,
|
||||
"resource_class": "self_managed_service",
|
||||
"status": "proposed", "management_model": "self_managed",
|
||||
"provider": {"name": "Example IaaS provider", "account_ref": null, "product_ref": "three-vm-topology", "provider_resource_id": null},
|
||||
"service": {"name": "Garage object storage", "service_id": "object-storage", "class": "S3-compatible replicated service", "capacity_model": "fixed"},
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
{
|
||||
"schema_version": "0.2", "record_scope": "example",
|
||||
"id": "resource:example:railiance:kubernetes-capacity", "resource_class": "kubernetes_capacity",
|
||||
"id": "resource:example:railiance:kubernetes-capacity",
|
||||
"financial_entity_id": null,
|
||||
"procuring_entity_id": "entity:railiance",
|
||||
"entity_gap": "example shared capacity; consumers would be allocated, not defaulted",
|
||||
"resource_class": "kubernetes_capacity",
|
||||
"status": "active", "management_model": "shared_capacity",
|
||||
"provider": {"name": "Example infrastructure provider", "account_ref": "account:example", "product_ref": "virtual-machines", "provider_resource_id": null},
|
||||
"service": {"name": "Railiance Kubernetes worker capacity", "service_id": "kubernetes", "class": "shared worker pool", "capacity_model": "shared"},
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
{
|
||||
"schema_version": "0.2", "record_scope": "example",
|
||||
"id": "resource:example:shared:ingress", "resource_class": "shared_platform_service",
|
||||
"id": "resource:example:shared:ingress",
|
||||
"financial_entity_id": null,
|
||||
"procuring_entity_id": "entity:railiance",
|
||||
"entity_gap": "example shared ingress; helixforge and coulomb would receive allocated shares",
|
||||
"resource_class": "shared_platform_service",
|
||||
"status": "active", "management_model": "self_managed",
|
||||
"provider": {"name": "Railiance", "account_ref": null, "product_ref": "platform-ingress", "provider_resource_id": null},
|
||||
"service": {"name": "Shared application ingress", "service_id": "platform-ingress", "class": "cluster platform service", "capacity_model": "shared"},
|
||||
|
|
|
|||
17
examples/settlement/15.1-ordinary.json
Normal file
17
examples/settlement/15.1-ordinary.json
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"scenario": "15.1-ordinary",
|
||||
"period": "2026-08",
|
||||
"statement_date": "2026-09-01",
|
||||
"as_of": "2026-09-01",
|
||||
"payment_recognition": "unknown",
|
||||
"charges": [
|
||||
{
|
||||
"financial_entity_id": "entity:coulomb",
|
||||
"resource_id": "resource:example:coulomb-cluster-share",
|
||||
"delivered_cost": "200.00",
|
||||
"usage_summary": "allocated cluster share"
|
||||
}
|
||||
],
|
||||
"prior_outstanding": {},
|
||||
"recognized_payments": []
|
||||
}
|
||||
19
examples/settlement/15.2-extended.json
Normal file
19
examples/settlement/15.2-extended.json
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"scenario": "15.2-extended",
|
||||
"period": "2026-09",
|
||||
"statement_date": "2026-10-01",
|
||||
"as_of": "2026-09-30",
|
||||
"payment_recognition": "unknown",
|
||||
"charges": [
|
||||
{
|
||||
"financial_entity_id": "entity:coulomb",
|
||||
"resource_id": "resource:example:coulomb-cluster-share",
|
||||
"delivered_cost": "100.00",
|
||||
"usage_summary": "allocated cluster share"
|
||||
}
|
||||
],
|
||||
"prior_outstanding": {
|
||||
"entity:coulomb": "240.00"
|
||||
},
|
||||
"recognized_payments": []
|
||||
}
|
||||
12
examples/settlement/15.3-restricted.json
Normal file
12
examples/settlement/15.3-restricted.json
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"scenario": "15.3-restricted",
|
||||
"period": "2026-09",
|
||||
"statement_date": "2026-10-01",
|
||||
"as_of": "2026-09-30",
|
||||
"payment_recognition": "unknown",
|
||||
"charges": [],
|
||||
"prior_outstanding": {
|
||||
"entity:helixforge": "1000.00"
|
||||
},
|
||||
"recognized_payments": []
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue