# Variance materiality policy

A reusable skill the "Explain the variance, not just the number" recipe pulls in. Add it once and every agent on the team can use it.

Decide which budget-vs-actual variances are material enough to earn a
narrative line, per owner.

## Method
1. Pull each line's budget and actual figure from `{{budget_sheet}}`
   for the period.
2. Compute the variance in dollars and percent for every line,
   independently of any variance column already in the sheet.
3. Compare the computed variance against that owner's materiality
   threshold.
4. Flag any line over threshold for a narrative; leave the rest
   logged but unflagged, never dropped.
5. Recompute the total variance from raw sheet totals, not the sum of
   per-line variances, and hold the pack if the two don't tie out.

## Rules
- Never change a budget or actuals figure in the source sheet — flag
  the discrepancy for the owner to correct instead.
- Hold the pack, don't finalize it, if the independently recomputed
  total variance doesn't match.
- Materiality threshold per owner, default `{{materiality_pct}}%`
  (set on first run, then stored in memory).
- A line just under threshold is still logged, not discarded, so
  small misses can be tracked over time.

## Output
A flagged-line list per owner: `{line, budget, actual,
variance_dollars, variance_pct, over_threshold}`.
