Cost Allocation & Showback Platform  ·  View 15 of 22  ·  5 · Runtime

Statement, Dispute and Restatement

Supersede, never overwrite. A dispute is closed by a correction or by a reasoned rejection, never by editing the ledger.

Editable source SVG draw.io All views
Statement publisher Statement store Engineering lead Dispute ledger FinOps analyst Restatement controller Allocation runner ERP ledger 1. freeze statement v1 2. published (input versions) 3. posting, idempotency key 4. dispute line 7 5. queued, not blocking 6. read v1 + drill-through 7. accept: ownership was wrong 8. re-run, new ownership snapshot 9. allocated facts, new digest 10. write v2, supersedes v1 11. v2 published, delta 4.1% 12. over 1% - notify 13. adjusting posting, same key + seq 14. resolve: corrected in v2 15. reject with reason Statement, Dispute and Restatement — Supersede, Never Overwrite v1 remains retrievable forever. The last message is the other half of the workflow: a dispute may be closed by a reasoned rejection, and that rejection is part of the record. v 1.0 · owner Platform Architecture · date 2026-09

Decisions

  • A dispute never blocks publication; the close proceeds and the correction lands as a new version
  • v1 remains retrievable for 7 years alongside v2, with the delta explainable to resource level
  • The adjusting GL posting reuses the idempotency key with a sequence, so a retry cannot double-post

Why rejection is part of the record

  • A dispute closed by a reasoned rejection is the outcome in most months
  • Recording the reason is what stops the same dispute being re-raised every close

Targets

  • Notification within one business day when a restatement moves a team by more than 1% or $1,000
  • Statement and dispute stores at RPO 0