Validation Model — Current

DOC_STATUS: CURRENT
DOC_ROLE: validation_model

Rol van dit document: Welke soorten validatie bestaan, hoe bootstrap/attach/evaluation/lifecycle proof werken, en hoe je economically empty vs data-blocked vs attach-blocked onderscheidt. SSOT: ENGINE_SSOT.md.


1. Soorten validatie

TypeDoelBewijs
Bootstrap proofProces start, config geladen, DB bereikbaar, git traceabilityLogs: EXECUTION_ENGINE_START, git_commit, git_branch; DB pool ready.
Attach proofExecution kan binden aan bestaande epoch/snapshot (split mode)current_valid_epoch_id of current_epoch_for_exit_only retourneert; DATA_INTEGRITY_VERIFIED.
Evaluation proofReadiness + pipeline draaien; outcome Execute of Skip traceerbaarLIVE_EVALUATION_STARTED, LIVE_EVALUATION_AUDIT, LIVE_EVALUATION_COMPLETED; BLOCKER_DISTRIBUTION bij Skip.
Lifecycle proofOrder van submit tot fill/reject/cancel met DB en logsDB_FIRST_ORDER_PERSISTED, ORDER_ACK, ORDER_FILL; execution_orders, fills, positions, realized_pnl.

2. Bootstrap proof

  • Wat: Engine start, migrations toegepast, pool klaar, geen crash.
  • Markers: EXECUTION_ENGINE_START, environment/validation_phase, git_commit, git_branch, build_profile.
  • Script: Start run; controleer logs op deze markers.

3. Attach proof

  • Wat: Execution-only mode bindt aan een epoch (valid of degraded) en snapshot.
  • Voorwaarde: Ingest heeft minstens één epoch met status valid of degraded gepubliceerd.
  • Markers: DATA_INTEGRITY_VERIFIED, EXECUTION_UNIVERSE_BOUND (of equivalent), bound_epoch_id, bound_run_id.
  • Falen: Geen valid/degraded epoch binnen max_epoch_age → skip of exit-only; log reden (no_valid_epoch).

4. Evaluation proof

  • Wat: Per cycle: readiness + pipeline; execute_count/skip_count; bij Skip: blocker distribution.
  • Markers: LIVE_EVALUATION_STARTED, LIVE_EVALUATION_AUDIT (system_live_ready, block_type), DATA_INTEGRITY_MATRIX, LIVE_EVALUATION_COMPLETED, eventueel NO_ORDER_ECONOMIC_GATING, BLOCKER_DISTRIBUTION, NO_ORDER_SYMBOL_DROP.
  • Bewijs: Logs tonen dat evaluatie heeft gedraaid en waarom wel/geen order.

5. Lifecycle proof

  • Wat: Eén order: persist → submit → ack → fill (of reject/cancel); DB-rijen en events.
  • Markers: DB_FIRST_ORDER_PERSISTED, ORDER_ACK, ORDER_FILL (of REJECT/CANCEL); fills_ledger, state_machine.
  • DB: execution_orders, execution_order_events, fills, positions, realized_pnl (bij close).
  • Scripts: validate_execution_on_server.sh, validate_live_engine_server.sh.

6. Economically empty vs data-blocked vs attach-blocked

SituatieBetekenisTypische oorzaak
Economically emptyMatrix groen, valid epoch, maar geen order (alleen Skip)Pipeline: SurplusBelowFloor, RegimeChaos, EdgeNegative, StrategyMismatch, etc.
Data-blockedGeen order door data/runtimeGeen valid epoch; data_stale; matrix false (universe_viability, l3_integrity, …).
Attach-blockedExecution-only kan niet bindenGeen recente epoch (ingest niet gedraaid of geen valid/degraded).

Rapportage: Na run expliciet vermelden: no-order toe te schrijven aan [economic gating | data-blocked | attach-blocked | mix]. Zie INGEST_EXECUTION_EPOCH_CONTRACT.md sectie 7.


7. Diagram