Bridge built: Volume / Price / Mix / COGS over last 8 backtest weeks. Window: [202612, 202613, 202614, 202615, 202616, 202617, 202618, 202619] SKUs: 503 Plan = forecast.total (latest backtest row per SKU-week). Plan price/cost = current erp_prices.avg_sell_price / erp_costs.cost_price (we don't have historical price/cost snapshots — only one valid_from per SKU). Actual qty = erp_transactions.quantity; falls back to backtest_fa.actual. Actual revenue = erp_transactions.tax_base (net of VAT). Actual unit cost = erp_transactions.purchase_value / quantity. Limitations: - No historical price snapshots → price_effect is realized-vs-current, not realized-vs-period-plan. - No historical cost snapshots → COGS effect compares realized cost vs the latest standard cost, not vs a prior-period cost. - Mix effect is the residual; assumes plan price/cost reflects 'plan mix'. For next S&OP, Finance should provide: - monthly plan revenue + qty per SKU - cost snapshots (cost_price, valid_from) — one per cost change - price snapshots (avg_sell_price, valid_from) — one per price change