{"version":"1.0","issued_at":"2026-09-17T00:00:00Z","canonical_object_name":"KOKON_FABRIC_HORIZON_LADDER_V1","canonical_host":"https://kokon.saa-alliance.com","canonical_url":"https://kokon.saa-alliance.com/api/control/audit/fabric-horizon-ladder","horizons":[{"label":"1D","days":1,"workload_classes":["short_term_liquidity_market_shock"],"kind":"FORECAST_HORIZON","note":"market shock · overnight liquidity · not applicable to KOKON detection"},{"label":"5D","days":5,"workload_classes":["short_term_liquidity_market_shock"],"kind":"FORECAST_HORIZON","note":"trading week · not applicable to KOKON detection"},{"label":"10D","days":10,"workload_classes":["short_term_liquidity_market_shock"],"kind":"FORECAST_HORIZON","note":"two-week horizon · not applicable to KOKON detection"},{"label":"30D","days":30,"workload_classes":["tactical_stress_scenario"],"kind":"FORECAST_HORIZON","note":"monthly · KOKON detection uses only when detector explicitly declares 30D window"},{"label":"90D","days":90,"workload_classes":["tactical_stress_scenario"],"kind":"DETECTION_WINDOW","note":"quarterly financial reporting cycle · primary KOKON detection window for most B6.* + B12.* detectors"},{"label":"180D","days":180,"workload_classes":["tactical_stress_scenario"],"kind":"DETECTION_WINDOW","note":"two-quarter window · used by trend-based detectors (covenant trend, margin compression)"},{"label":"360D","display_alias":"1Y","days":360,"workload_classes":["tactical_stress_scenario","strategic_capital_solvency"],"kind":"DETECTION_WINDOW","note":"annual financial reporting cycle · CANONICAL machine label 360D · display '1Y' · never emit both"},{"label":"3Y","days":1080,"workload_classes":["strategic_capital_solvency"],"kind":"DETECTION_WINDOW","note":"three annual cycles · used for going-concern trend + restatement pattern"},{"label":"5Y","days":1800,"workload_classes":["strategic_capital_solvency"],"kind":"DETECTION_WINDOW","note":"five annual cycles · maximum useful KOKON detection window · beyond this, ground truth density drops"}],"detector_support":[{"detector_id":"AML.bridge_flow","f_code":"F15","branch":"aml_forensics","supported_detection_windows":["90D","180D","360D","3Y"],"canonical_detection_window":"180D","note":"bridge-flow pattern requires multi-hop reconstruction over months"},{"detector_id":"AML.mandate_aggregate_bypass","f_code":"F13","branch":"aml_forensics","supported_detection_windows":["90D","180D","360D"],"canonical_detection_window":"90D"},{"detector_id":"AML.sanctions_evasion","f_code":"F11","branch":"aml_forensics","supported_detection_windows":["30D","90D"],"canonical_detection_window":"30D","note":"sanctions evasion pattern can be detected quickly once list is updated"},{"detector_id":"AML.structuring_layering","f_code":"F10","branch":"aml_forensics","supported_detection_windows":["30D","90D","180D"],"canonical_detection_window":"90D","note":"structuring pattern typically emerges within one quarter"},{"detector_id":"B12.4_sod_gap","f_code":"F4","branch":"hidden_loss","supported_detection_windows":["90D","180D","360D"],"canonical_detection_window":"180D","note":"SoD gap requires ≥ 2 quarters to distinguish transient from structural"},{"detector_id":"B12.icfr_material_weakness","f_code":"F14","branch":"hidden_loss","supported_detection_windows":["90D","360D"],"canonical_detection_window":"360D","note":"ICFR assessment ties to annual auditor cycle"},{"detector_id":"B6.cash_gap","f_code":"F2","branch":"hidden_loss","supported_detection_windows":["90D","180D"],"canonical_detection_window":"90D","note":"cash-flow gap becomes stable signal past 2 quarters"},{"detector_id":"B6.consolidation_gap","f_code":"F1","branch":"hidden_loss","supported_detection_windows":["90D","180D","360D"],"canonical_detection_window":"90D"},{"detector_id":"B6.earnings_quality","f_code":"F1","branch":"hidden_loss","supported_detection_windows":["90D","360D"],"canonical_detection_window":"90D"},{"detector_id":"B8.capex_vs_opex_shift","f_code":"F3","branch":"hidden_loss","supported_detection_windows":["90D","360D","3Y"],"canonical_detection_window":"360D","note":"capex/opex shift pattern crystallises over annual cycles"},{"detector_id":"B8.consolidation_gap","f_code":"F8","branch":"hidden_loss","supported_detection_windows":["360D","3Y"],"canonical_detection_window":"360D"},{"detector_id":"B8.related_party_scheme","f_code":"F5","branch":"hidden_loss","supported_detection_windows":["360D","3Y"],"canonical_detection_window":"360D","note":"related-party pattern requires full annual disclosure cycle"}],"canonical_360d_rule":"360D is the CANONICAL machine label. '1Y' is the display alias. NEVER emit both as separate horizons in the same result envelope. Enforced by TestFabricHorizonLadder_No360DAnd1YBothPresent.","alignment_with_fabric_v1":"Aligned with ARIN Fabric v1 direction 2026-07-22 (refined by founder): 1D · 5D · 10D · 30D · 90D · 180D · 360D_or_1Y · 3Y · 5Y. 10Y reserved for Global Risk Intelligence and NOT published from KOKON side (forensic ground truth density drops beyond 5Y).","source_document":"docs/FABRIC_HORIZON_LADDER.md · v1.0 · 2026-07-22","boundary":"KOKON detection windows are BACKWARD-looking (how far the detector inspects) · RA forecast horizons are FORWARD-looking · never merge the two semantics · ladder is coordinate space, not calibration data · not decision-grade authorization","non_claims":["DETECTION_WINDOW is not a forecast · KOKON detectors do not project forward","a detector supporting a horizon does NOT mean it has calibration data at that horizon (see forensic-calibration-canonical for calibration state)","360D and 1Y are the same horizon · display alias only · never quote both as separate options","nothing here confers decision-grade authorization"],"sha256":"1ba044a9d5899aa19243cdb6ba4050ec645768fbaeb026be88500a9124603f25"}