Forecast Variance Reconciliation Lens / 预测偏差复核 Lens
This lens observes whether Forecast Variance Reconciliation prevents a checked forecast from becoming a clean accuracy flag or generic miss when a later reader consumes the actual outcome.
Design Intent
Storyteller should let forecasts be useful, but the actual checked variance must become a row with source forecast, check surface, variance kind, beneficiary/owner, harmed reader, and future route effect. The lens fails if forecast_accurate or forecast_missed becomes a clean boolean.
Entry Oracle
entry_state:
trigger_kind: state_pressure
source_forecast_row_present: true
actual_check_surface_present: true
variance_between_forecast_and_actual_visible: true
beneficiary_or_owner_visible_or_explicit_absence: true
harmed_reader_or_explicit_absence_visible: true
future_reader_consumes_variance_state: true
no_fixed_turn_trigger: true
no_fixed_day_or_week_trigger: true
no_raw_forecast_count_trigger: true
no_dashboard_or_lens_health_trigger: trueOracle Assertions
- The lens has bound markdown, an executable TypeScript sibling, a storyline, a mechanism, an addendum card, a reconciliation rite, and a default event.
- Entry is state pressure from a visible source forecast row, actual check surface, and future reader, not fixed turn/day/raw count/dashboard/lens health.
- The addendum separates source forecast row, actual check surface, forecasted range, observed result, variance kind, owner/beneficiary, harmed reader, variance after-state, and future route effect.
- The reconciliation branches diverge across within-range addendum, public notice, hedge reserve, owner clawback, review reopen, split interpretation, and unreconciled default outcomes.
- The default records hidden or ignored variance, beneficiary of false accuracy, harmed reader after-state, variance state after, future route effect, and at least three counter deltas.
Evidence Shape
lens_id: storyteller.lens.forecast_variance_reconciliation.v1
storyline: storyteller.storyline.forecast_variance_reconciliation.v1
entry:
trigger_kind: state_pressure
source_forecast_row_present: true
actual_check_surface_present: true
variance_between_forecast_and_actual_visible: true
future_reader_consumes_variance_state: true
offered:
card: storyteller.card.forecast_variance_addendum.v1
rite: storyteller.rite.forecast_variance_reconciliation.v1
branches:
constructive:
selected_posture: accept_within_range_addendum | publish_variance_notice | consume_hedge_reserve | assign_owner_clawback | reopen_forecast_review | split_reader_interpretation
relief: []
cost: []
future_effect_any: []
default:
selected_posture: unreconciled_forecast_variance_default
event_seen_or_armed: storyteller.event.unreconciled_forecast_variance_default.v1
assertions:
no_universal_clean_forecast_accuracy: true
source_check_variance_harmed_reader_visible: trueNon-goals
Not a replacement for Risk Forecast Commitment, Forecast Miss Default, or generic replay comparison. It observes the after-check reconciliation between them and future readers.