Lesson 100: Fiscal-Year Escalation Governance Closure Checklist - Archive Lessons 92–99, Annual Sign-Off, and Next-Year Charter

Direct answer: A fiscal-year escalation governance closure checklist is the controlled shutdown of the evidence chain that starts at Lesson 92 and ends at Lesson 99: you archive every Lesson 97 quarterly zip, reconcile Lesson 98 digests, confirm no open failed_open rows from Lesson 96, verify final migration_evidence_hash from Lesson 99, then dual-sign a fiscal_closure_evidence_hash and publish the next-year charter (policy semver, roster, training schedule).

Assorted objects suggesting the last box packed before you lock the fiscal-year storeroom

What this lesson solves

Without a closure ritual, January becomes “we will fix the spreadsheet later.” This checklist makes the handoff boring and safe.

Prerequisites: Four quarterly Lesson 97 attestations (or documented exceptions), latest Lesson 99 migration_id, and board minutes approving the Lesson 98 risk band narrative. Expected time: about ninety minutes including a tabletop on a late December migration.

What you will build

  1. lesson78_fiscal_year_escalation_governance_closure_checklist_policy.md (contract below)
  2. lesson78_fiscal_year_escalation_governance_closure.csv (one row per fiscal year per product line)
  3. A FY-YYYY-closure.zip containing checksums of all quarterly zips plus the final signed closure CSV row

Step 1 - Define closure gate classes

gate fail signal posture
FY1 – Attestation gap fewer than four attestation_id_ref rows unless waiver block closure
FY2 – Open holds Lesson 94 send_state=held without owner or expiry block
FY3 – Migration drift to_semver on last Lesson 99 row ≠ charter target remediate before sign
FY4 – Retro incomplete no CAPA ids for any failed_open from the year block

Step 2 - Author lesson78_fiscal_year_escalation_governance_closure_checklist_policy.md

Minimum sections:

  1. Purpose – certify that the Lessons 92–99 chain is internally consistent for the fiscal year.
  2. Scope – all train_cycle_id values that produced player- or partner-facing escalation artifacts.
  3. Archive rules – immutable object storage; legal hold tags if litigation exists.
  4. Signers – CFO delegate + CISO or governance lead; split from quarterly attest signers when possible.
  5. Next-year charter – publish policy_semver_target, training calendar, and rollback contact tree before day ten of the new fiscal year.
  6. Retention – align to SOX/ISO schedules; minimum seven years for closure zips if no stricter rule applies.

Step 3 - Author lesson78_fiscal_year_escalation_governance_closure.csv

column purpose
fiscal_closure_id stable id
fiscal_year_label FY2026 style
attestation_ids_included semicolon list of Lesson 97 ids
digest_ids_included Lesson 98 ids
final_migration_id_ref Lesson 99 row
open_hold_count_eoy integer
fy1_fy4_gate_status pass / fail
closure_signer_a_id / closure_signer_b_id humans
fiscal_closure_evidence_hash sha256 over archive manifest + this row

Step 4 - Run closure day (45 minutes)

  1. Export a CSV of all Lesson 92–99 primary keys for the fiscal year; hash file.
  2. Verify quarterly zips unpack and pass manifest_sha256 spot checks.
  3. Confirm Lesson 96 has zero closure_state=failed_open or attach CAPA.
  4. Align Lesson 99 semver with next-year charter doc.
  5. Sign fiscal_closure_evidence_hash; upload FY-YYYY-closure.zip.
  6. Email audit chair with object-store pointer only—no attachments.

Step 5 - Tabletop - “we can close with one quarter missing”

Missing Q3 attestation due to acquisition freeze. Outcome: FY1 fail unless board-approved waiver id is attached to closure row.

Pro tips

  • Calendar vs fiscal – if your company uses calendar FY but live-ops uses UTC quarters, footnote the mapping table once.
  • Dual listings – if you IPO mid-year, duplicate closure row with listing_event_id—do not merge histories blindly.
  • Train the trainers – schedule dry-run refresh before holiday code freeze.

Troubleshooting

symptom likely cause fix
Hash mismatch on zip file added after manifest regenerate manifest
Signers unavailable Dec 31 vacation pre-sign contingent on FY4
Charter conflicts with semver product wants MAJOR mid-year schedule extraordinary migration

Common mistakes

  • Closing while Lesson 95 override roster is mid-audit.
  • Archiving only Lesson 97 zips and skipping raw Lesson 92 CSVs.
  • Publishing the charter only in email—use the same object store as attestations.

FAQ

Is this the end of the course arc?

It is the fiscal closure for the Lessons 92–99 escalation governance thread; other course lessons remain active.

Do we need a new Lesson 89 charter?

Link next-year capacity and cooldown rules if borrow trains interact with escalations; cross-reference rather than duplicate.

What if we acquire another studio?

Open a cross-product handoff workstream; do not merge CSVs without a Lesson 99 migration.

Lesson recap

Closure is permission to start clean. Without a signed fiscal hash, next year inherits last year’s ghosts.

Next lesson teaser

Next: Lesson 101: Cross-Product Escalation Lineage Handoff Packet defines product_code, joint Lesson 97 manifest hashes, portfolio sign-off, and H1–H4 gates so two live games never blend rows or semver accidentally.

Related learning

Treat fiscal closure as closing the books, not closing the chat.