fin-hub/docs/resource-cost-exchange-operations.md

2.8 KiB

Resource-cost exchange operations

This runbook operates contract v0.1 between fin-hub and resource-control. The authority matrix remains in fin-resource-authority-contract-v0.1.md.

Compatibility and delivery

  • Producers pin schema_version. A consumer rejects an unknown version; it must not discard fields or reinterpret a new version as v0.1.
  • Delivery identity is financial_fact_id for booked facts and record_id for planning evidence. Redelivery is idempotent; different content under the same ID is rejected.
  • Corrections and forecast/allocation revisions are append-only and point to the current predecessor. Consumers retain superseded records for audit and variance work.
  • Resource joins use an explicit mapping from stable financial_fact_id to a resource-control-owned resource_id. Provider labels, filenames, and prose are not resource identity. For the current compute case the target ID is resource:hosteurope:railiance01.
  • Currency conversion is never implicit. Reconciliation is performed per currency and effective period.

Reconciliation procedure

For each delivery window, record and compare on both sides:

  1. current booked-fact IDs, count, effective totals per currency, correction edges, and source-evidence references;
  2. planning record IDs/count, current revisions, forecast totals, allocation fact references, and explicit residuals;
  3. the join set and missing resource IDs, without copying resource authority into fin-hub;
  4. returned variance/optimization IDs and provenance, confirming none was inserted as a second booked financial fact.

Duplicate replay must leave all counts and totals unchanged. A correction must replace the effective total exactly once while preserving the predecessor.

Operator visibility

exchange_health reports only bounded metadata and amounts. It surfaces:

  • rejected planning deliveries by claimed ID and safe validation metadata;
  • booked facts lacking both a resource binding and cost attribution;
  • current forecasts whose effective period has ended; and
  • allocations that reference a missing current financial fact.

Rejected payload bodies are not retained. Only a content fingerprint, claimed record ID/type, safe validation locations/codes, delivery count, and timestamp are stored. Resolve error-severity issues before reconciliation; warnings need an explicit disposition. Retain the health report with the round-trip evidence.

Upgrade and review

Add a new schema alongside v0.1, publish fixtures, and dual-run it. Compare canonical IDs, counts, money totals, corrections/revisions, joins, exceptions, and provenance. Resource-control and fin-hub owners jointly approve the compatibility window and removal date. Roll back by selecting the prior pinned producer/consumer version; never rewrite existing evidence to downgrade it.