---
name: sales_and_operations_planning
description: "Run sales and operations planning as one monthly cycle: product and data review, demand review, supply review, reconciliation with priced gap scenarios, and an executive session that locks one plan in units and money. Ships the cycle design, meeting inputs and outputs, a gap and forecast accuracy calculator, and a worked gap decision. Triggers on S&OP, sales and operations planning, IBP, integrated business planning, demand review, supply review, executive S&OP, consensus demand plan, or balancing demand and supply."
metadata: { "includeInPrompt": true }
---

# Sales and Operations Planning

## Purpose
Run S&OP as a monthly decision cycle that ends in one authorised plan, not as a set of department forecasts that happen to share a meeting. Sales, marketing, product, operations, procurement and finance each bring their own plan in. One plan comes out, in units and money, at product family level, over a rolling horizon. Every gap between demand and supply gets a priced option, an owner, and a decision date.

## Workflow

1. **Set the frame before the cycle starts.** Fix the planning families, the horizon, the calendar and the decision rights. Horizon is commonly 18 to 24 months for S&OP and 24 months or more for integrated business planning. Plan volume at family level. Mix and SKU detail belong to master scheduling after S&OP locks. Read `references/cycle-design.md` for the full design.

2. **Gather data and review the product portfolio.** Close last month actuals for sales, production, inventory and orders. List launch, phase out and portfolio changes since last cycle. Log data problems openly. IBP cycles start with this product step. Classic S&OP cycles fold it into data gathering.

3. **Run the demand review.** Start with forecast accuracy for the closed month and the rolling quarter, using `bin/sop_tools.py accuracy` on a CSV with columns family, period, forecast, actual. Then build the unconstrained demand plan: statistical baseline plus sales and marketing overlays, each overlay named, owned and explained in writing. End with one demand number per family and period, in units and revenue.

4. **Run the supply review.** Test the demand plan against demonstrated capacity, material constraints, supplier lead times and inventory. Do not renegotiate demand in this room. Produce one feasible supply plan and a constraint list that says which constraint blocks how much demand, in which period.

5. **Compute the gaps.** Run `bin/sop_tools.py gaps` on a CSV with columns family, period, demand_units, supply_units, begin_inventory, target_inventory, unit_price, unit_cost. Read gap, utilisation, projected ending inventory against target, served and unserved units, revenue and margin for every family and period. A gap counts if demand beats supply, if ending inventory misses target, or if revenue or margin misses budget, even when units balance.

6. **Reconcile and build gap scenarios.** Resolve every gap the cross functional team can resolve. For the rest, build two or three scenarios from the four response families: add supply, build ahead, shape demand, allocate or accept. Price each one in units, extra cost, service effect and margin. Put the accuracy result next to the gap before pricing overtime: a family with strong positive forecast bias may need a forecast fix, not more capacity. Read `references/gap-decisions.md` for the decision page format and the worked Pumps example.

7. **Reconcile the money.** Finance restates the base plan and each scenario as revenue, margin and inventory value, against budget and against last month plan. A plan that meets demand and misses margin is a gap and goes on the executive decision list with the rest.

8. **Run the executive session and lock the plan.** The chair holds authority over sales, operations and finance trade offs. The pack goes out in advance: headline numbers, gap table, scenarios, one recommendation per decision, and the cost of deciding nothing. Decide in the room, record owner and date for each decision, and publish the locked plan within one working day. Post lock changes go through the process owner and get logged.

9. **Close the loop next month.** Open the next cycle by comparing actuals to the locked plan, in units and money. Carry open actions and accepted gaps forward with their predicted cost, and check whether that cost arrived. A cycle that never looks back at its own plan teaches nobody anything.

## Output Contract
- Every full cycle produces: the unconstrained demand plan, the feasible supply plan, the gap table from the tool, the financial reconciliation, the scenario pages for unresolved gaps, the executive decision log, and the one locked operating plan.
- Numbers reconcile across the pack: demand minus supply equals the gap, opening stock plus supply minus demand equals ending inventory, and scenario money ties to the gap table revenue and margin. A pack that does not tie out does not go to executives.
- Each gap decision names its family, period, units, money at stake, cause, priced options, one recommendation, owner, and latest decision date. No decision page ships without all of those.
- Worked example in `references/gap-decisions.md` uses `assets/sample_gaps.csv` and `assets/sample_accuracy.csv`, and its figures match the tool output shown there. Replace the sample overtime and promotion assumptions with real figures before using the format live, and label any assumption that is still an estimate.

## Operating Rules
- One set of numbers. After the lock, no function works to a private plan. Disagreement is recorded in the decision log, not acted out through a second forecast.
- Unconstrained demand first, feasible supply second, in that order. Constraining the demand plan early to what supply can already do hides the real gap and the real market.
- Bias sign convention in this skill: forecast minus actual. Positive bias means over forecasting. State the convention whenever you report bias, since other teams use the reverse.
- Tracking signal is cumulative signed error divided by mean absolute deviation. Treat a signal outside minus 4 to plus 4 as out of control and requiring a forecast process fix. That band is a widely taught control rule, not a guarantee about any one business.
- Never invent capacity, lead times, prices, costs or accuracy history. Use the numbers the business gives you, run the tool on them, and mark missing inputs as missing. A gap table built on guessed capacity will produce confident, wrong decisions.
- Keep executive time for decisions that need executive authority: spending, priority between customers or families, and accepting risk. Routine balancing stays in reconciliation.
- Thresholds for what counts as material, such as a gap size or an inventory miss that must escalate, are decisions for the business using this skill. Set them in step 1 and apply them consistently. Do not present them as industry standards.
