Initial commit: Four-Quadrant Balance Sheet Matrix (FQBM) framework

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
defiQUG
2026-02-22 23:39:47 -08:00
commit abed763a4f
51 changed files with 2923 additions and 0 deletions

152
docs/GAPS_AND_MISSING.md Normal file
View File

@@ -0,0 +1,152 @@
# Complete IPSAS and FQBM Matrix — Gaps and Missing
This document lists **all remaining IPSAS standards** and **all FQBM/Matrix gaps and missing elements** as of the current codebase. It extends [IPSAS_COMPLIANCE.md](IPSAS_COMPLIANCE.md).
---
## Part A — IPSAS: Full standards list and status
| # | Standard | Status | Gap / note |
|---|----------|--------|-------------|
| **CF** | Conceptual Framework | Partial | A = L + E aligned; no revenue/expense/definition of surplus. |
| **1** | Presentation of Financial Statements | Supported | Structure + current/non-current in `fqbm.ipsas.presentation`. |
| **2** | Cash Flow Statements | Structure only | Template in `cash_flow_statement_structure()`; no activity classification from FQBM. |
| **3** | Accounting Policies, Changes in Estimates and Errors | **Missing** | No policy note, prior-period adjustment, or error correction. |
| **4** | Effects of Changes in Foreign Exchange Rates | Partial | S and pass-through only; no translation of FC assets/liabilities, no FX gain/loss disclosure. |
| **5** | Borrowing Costs | **Missing** | No borrowing-cost capitalisation or expense classification. |
| **6** | Consolidated and Separate Financial Statements | Partial | Sectoral (CB, bank) and consolidated view in presentation; no control definition or full consolidation mechanics. |
| **7** | Investments in Associates | **Missing** | Not applicable to core FQBM; no equity method. |
| **8** | Interests in Joint Ventures | **Missing** | Not applicable; no joint arrangement. |
| **9** | Revenue from Exchange Transactions | **Missing** | No revenue recognition or measurement. |
| **10** | Financial Reporting in Hyperinflationary Economies | **Missing** | No hyperinflation restatement (FQBM has inflation π but not restatement). |
| **11** | Construction Contracts | **Missing** | Not applicable to monetary/financial core. |
| **12** | Inventories | **Missing** | Not applicable. |
| **13** | Leases | **Missing** | Not applicable to core; no right-of-use asset/lease liability. |
| **14** | Events After the Reporting Date | **Missing** | No adjustment vs disclosure classification. |
| **15** | Financial Instruments: Disclosure and Presentation | Partial | Presentation only; no disclosure (maturity, risk). |
| **16** | Investment Property | **Missing** | Not applicable. |
| **17** | Property, Plant, and Equipment | **Missing** | Not applicable; no PP&E or depreciation. |
| **18** | Segment Reporting | **Missing** | No segment definition or segment P&L. |
| **19** | Provisions, Contingent Liabilities and Contingent Assets | **Missing** | No provisions or contingencies. |
| **20** | Related Party Disclosures | **Missing** | No related party identification or disclosure. |
| **21** | Impairment of Non-Cash-Generating Assets | **Missing** | Not applicable to financial core. |
| **22** | Disclosure of Financial Information About the General Government Sector | Partial | Sectoral structure supported; GGS boundary and entity list external. |
| **23** | Revenue from Non-Exchange Transactions | **Missing** | No tax/transfer revenue. |
| **24** | Presentation of Budget Information in Financial Statements | Structure only | Template in `budget_vs_actual_structure()`; budget data external. |
| **25** | Employee Benefits | **Missing** | Not applicable to core. |
| **26** | Impairment of Cash-Generating Assets | **Missing** | No impairment model. |
| **27** | Agriculture | **Missing** | Not applicable. |
| **28** | Financial Instruments: Presentation | Partial | Asset/liability split in statement of financial position. |
| **29** | Financial Instruments: Recognition and Measurement | **Missing** | No measurement basis (amortised cost, FVOCI, FVPL) or ECL. |
| **30** | Financial Instruments: Disclosures | **Missing** | No risk or maturity disclosure. |
| **31** | Intangible Assets | **Missing** | Not applicable. |
| **32** | Service Concession Arrangements: Grantor | **Missing** | Not applicable. |
| **33** | First-Time Adoption of Accrual Basis IPSAS | **Missing** | Not applicable (no full IPSAS adoption). |
| **34** | Separate Financial Statements | Partial | Entity-level (CB, bank) supported. |
| **35** | Consolidated Financial Statements | Partial | Consolidated layout; no full consolidation rules. |
| **36** | Investments in Associates and Joint Ventures | **Missing** | Not applicable. |
| **37** | Joint Arrangements | **Missing** | Not applicable. |
| **38** | Disclosure of Interests in Other Entities | **Missing** | No disclosure. |
| **39** | Employee Benefits | **Missing** | Not applicable. |
| **40** | Public Sector Combinations | **Missing** | Not applicable. |
| **41** | Financial Instruments | **Missing** | No classification, measurement, or ECL. |
| **42** | Social Benefits | **Missing** | Not applicable. |
| **43** | Leases | **Missing** | Not applicable. |
| **44** | Non-Current Assets Held for Sale and Discontinued Operations | **Missing** | Not applicable. |
| **45** | Property, Plant, and Equipment | **Missing** | Not applicable. |
| **46** | Measurement | **Missing** | No measurement basis (historical, FV, etc.). |
| **47** | Revenue | **Missing** | No revenue model. |
| **48** | Transfer Expenses | **Missing** | No transfer expense. |
| **49** | Retirement Benefit Plans | **Missing** | Not applicable. |
| **50** | Exploration for and Evaluation of Mineral Resources | **Missing** | Not applicable. |
| **Cash basis** | Financial Reporting Under the Cash Basis | **Missing** | No cash-basis statement. |
| **RPG 1** | Long-Term Sustainability of an Entity's Finances | Partial | Debt sustainability (rg) in sovereign module; no full RPG 1 disclosure. |
| **RPG 2** | Financial Statement Discussion and Analysis | **Missing** | No narrative. |
| **RPG 3** | Reporting Service Performance Information | **Missing** | Not applicable. |
| **SRS 1** | Climate-related Disclosures | **Missing** | Not applicable. |
---
## Part B — FQBM / Four-Quadrant Matrix: Gaps and missing
### B.1 State vector and identities
| Item | Status | Note |
|------|--------|------|
| **L_cb (central bank loans)** | **Added** | `FQBMState.L_cb` (default 0); central_bank_step updates L_cb; matrix uses state.L_cb. |
| **Open-economy split A_dom / A_ext, L_dom / L_ext** | **Added** | `open_economy_view(A_dom, A_ext, L_dom, L_ext, E)` in `fqbm.state` returns identity check and totals. |
| **Reporting period / reporting date** | **Added** | `FQBMState.reporting_date` (optional); `statement_of_financial_position(..., reporting_date=)` uses state.reporting_date when not passed. |
### B.2 Four-quadrant matrix (Part I)
| Item | Status | Note |
|------|--------|------|
| **Explicit four-quadrant layout** | **Added** | `fqbm.matrix.four_quadrant_matrix(state)` and `four_quadrant_summary(state)` return the 4-column matrix and identity check. |
| **Quadrant balance checks** | **Added** | Summary includes `identity_A_eq_L_plus_E`. |
| **Cross-sector consistency** | Partial | CB and bank identities implemented; no automatic check that matrix totals equal sectoral sums. |
### B.3 White paper parts not implemented
| Part | Topic | Status | Gap |
|------|--------|--------|-----|
| **VII** | Shadow banking and leverage | **Integrated** | `leverage_ratio()` in dashboard ratios; `margin_spiral_risk()` available; repo multiplier not modeled. |
| **VIII** | Derivatives clearing and CCP | **Integrated** | `run_workbook(ccp_params=CCPParams(...))` returns `result["ccp"]` with identity and waterfall flag. |
| **IX** | CBDC and digital reserve architecture | **Integrated** | `run_workbook(cbdc_params=CBDCParams(...))` applies deposit/reserve shift; `result["cbdc"]` has cbdc_liability. |
| **XI** | Historical case expansion | **Partial** | Presets (1997, 2008, 2020, 2022) in scenarios; no narrative or coded “case” outputs. |
### B.4 IPSAS presentation structures added (templates only where no FQBM data)
| Item | Status | Location |
|------|--------|----------|
| Statement of financial position (IPSAS 1) | Supported | `statement_of_financial_position()` |
| Budget vs actual (IPSAS 24) | Structure | `budget_vs_actual_structure()` |
| Cash flow statement (IPSAS 2) | Structure | `cash_flow_statement_structure()` |
| Statement of financial performance | Structure | `statement_of_financial_performance_structure()` |
| Four-quadrant matrix | Supported | `fqbm.matrix.four_quadrant_matrix()` |
### B.5 Other missing
| Item | Status |
|------|--------|
| **Statement of changes in net assets/equity** | **Added** | `statement_of_changes_in_net_assets_structure()`. |
| **Notes to the financial statements** | **Added** | `notes_to_financial_statements_structure()`. |
| **Comparative period** | **Added** | `statement_of_financial_position_comparative(state_prior, state_current, entity)`. |
| **Functional currency / presentation currency** | **Missing**. |
| **Financial instrument maturity breakdown** | **Added** | `maturity_risk_disclosure_structure()` (maturity buckets, interest rate +100bp, credit exposure, ECL). |
| **Interest rate sensitivity** | **Partial** | Column in maturity_risk_disclosure_structure. |
| **Credit risk / ECL disclosure** | **Partial** | Columns in maturity_risk_disclosure_structure. |
| **FX translation of FC positions** | **Added** | `fx_translate(fc_amount, S_prev, S_curr)`. |
| **Cash flow from balance sheet changes** | **Added** | `cash_flow_from_state_changes(state_prev, state_curr)`. |
---
## Part C — Implementation checklist (done vs to do)
### Done
- IPSAS 1 statement of financial position (CB, bank, consolidated); uses state.L_cb and state.reporting_date.
- IPSAS 24 budget vs actual template.
- IPSAS 2 cash flow statement template; **cash_flow_from_state_changes(state_prev, state_curr)** infers amounts from Δstate.
- Statement of financial performance template.
- **Statement of changes in net assets** template.
- **FX translation**: **fx_translate(fc_amount, S_prev, S_curr)**.
- Four-quadrant matrix and summary; **L_cb** from state.
- **L_cb in state**: `FQBMState.L_cb` and `reporting_date`; central_bank_step updates L_cb; differential model 12-element vector.
- **Open economy**: **open_economy_view(A_dom, A_ext, L_dom, L_ext, E)**.
- **Part VII**: Leverage ratio in dashboard; **run_workbook** exposes shadow metrics.
- **Part VIII**: **run_workbook(ccp_params=CCPParams(...))** returns result["ccp"].
- **Part IX**: **run_workbook(cbdc_params=CBDCParams(...))** applies deposit/reserve shift; result["cbdc"].
### Optional work (completed)
1. **Part VII**: **repo_multiplier(initial_collateral, haircut, rounds)** and **margin_spiral_simulation(...)** in `fqbm.sheets.shadow_banking`.
2. **Part VIII**: **variation_margin_flow(mark_to_market_change)** and **ccp_clearing_simulation(vm_calls_per_period, liquidity_buffer_start)** in `fqbm.sheets.ccp`.
3. **IPSAS**: **notes_to_financial_statements_structure()**; **statement_of_financial_position_comparative(state_prior, state_current, entity)**; **maturity_risk_disclosure_structure()** in `fqbm.ipsas.presentation`.
---
## References
- [IPSAS_COMPLIANCE.md](IPSAS_COMPLIANCE.md) — Scope and how to use the IPSAS layer.
- IPSASB (2025). *Handbook of International Public Sector Accounting Pronouncements*. IFAC.
- White paper: Four-Quadrant Balance Sheet Matrix, Parts IXVI.