Do not stop at “labor was over budget.” Walk the miss backwards: EBITDA → revenue → gross margin → labor hours → wage rate → overtime → productivity → other opex. A miss almost always lives in one of four places: the wrong revenue mix, hours out of sync with volume, wage rate creep from open positions filled at market, or a single site or branch pulling the number down. Ask better questions and the real story falls out.
Every CFO learns to read a variance report. Not every CFO learns to diagnose the miss. There is a difference between saying “labor was $340K over” and being able to tell the sponsor exactly why the P&L moved and what changes on Monday. This is the framework I run when EBITDA misses and I need to know the real story before the MBR call.
Start at the top and walk down
An EBITDA miss is a summary line. It is the compressed version of what actually happened across revenue, margin, labor, and opex. If you try to explain it from the summary line, you are guessing. If you decompose it into its parts and walk down, the answer usually presents itself.
The order matters. Revenue moves gross profit dollars. Gross margin moves gross profit percent. Labor moves both cost and productivity. Opex moves the fixed base. Walk in that order and you will not chase the wrong lever.
The variance waterfall
| Layer | What to look at | Question that unlocks it |
|---|---|---|
| 1. EBITDA miss | Total dollar variance vs budget | Is this a revenue problem, a margin problem, or a cost problem? |
| 2. Revenue variance | Dollars, units, mix, price | Did we miss on volume, price, or product mix? |
| 3. Gross margin variance | GM percent vs budget, by segment | Is the mix hurting us or is unit margin down? |
| 4. Labor hours | Hours worked vs standard hours for actual volume | Are we running more hours than the volume supports? |
| 5. Wage rate | Average hourly rate, blended, by role | Did we fill open positions at above-budget rate? |
| 6. Overtime | OT hours as a percent of total, by site | Is one location driving the OT? |
| 7. Productivity | Revenue per hour, units per FTE | Is the operating system showing what payroll is showing? |
| 8. Other opex | By department, by GL account | Is one line item (workers comp, IT, professional fees) pulling the whole department? |
Layer 1: Is it revenue, margin, or cost?
Before you look at labor, run the three-line test. Compare budget to actual for revenue, gross profit dollars, and opex dollars. Whichever line moved the most on a percentage basis is the story. It is almost never all three.
Example: revenue was down 3 percent, gross profit dollars were down 12 percent, opex was flat. That is a margin problem, not a revenue problem. Walking further down the revenue line is a waste of time. Walk down gross margin.
Layer 2: Decompose revenue
Revenue variance breaks into four components: volume, price, mix, and timing. Every miss is one of these, or two of them. Never all four at once at material magnitude.
- Volume: Did we ship fewer units than budgeted, at the same price? If so, why. Demand, supply, sales team?
- Price: Did we ship the same units at a lower average price? Discounting, promo, contract renewal at lower rate?
- Mix: Did we sell more low-margin SKUs and fewer high-margin SKUs? This looks like a margin problem but the cause is a revenue mix problem.
- Timing: Did a $600K order slip from the last week of the month to the first week of next month? This looks bad in September and is invisible in Q3.
Timing variances are the ones sponsors will accept without follow-up. Structural variances are the ones you need a plan for.
Layer 3: Gross margin bridge
Gross margin percent has three moving parts: mix, price, and input cost. Walk from budgeted GM to actual GM, and quantify each.
Budget GM: 38.4 percent. Actual GM: 34.9 percent. Bridge: mix hurt 1.8 points (more industrial less commercial), price hurt 0.9 points (one large contract renewed lower), input cost hurt 0.8 points (steel up 6 percent). Bridge reconciles to the 3.5 point miss. Now you have three levers to talk about instead of a red number.
Layer 4: Are the labor hours supported by volume?
This is the question that most variance reports never answer. Labor was $340K over budget. Fine. But budget was built at a certain volume. If actual volume was 12 percent higher, some of the labor overage is justified. If actual volume was 8 percent lower, the labor overage is worse than it looks.
Run standard hours: budgeted hours per unit x actual units = expected hours. Compare to actual hours. The delta is unexplained.
Example: budget was 42,000 hours at 100,000 units. Actual was 46,500 hours at 92,000 units. Expected hours at 92,000 units = 38,640. Actual overage vs standard: 7,860 hours. At a $28 blended rate, that is $220K of labor that has nothing to do with volume. That is the number the sponsor should hear.
Layer 5: Wage rate creep
Open positions filled at market rate when budget was built at prior-year rate is the silent labor variance. Look at average wage rate for the largest cost center, month over month. If it drifted from $24.10 to $24.90 over three months, that 3.3 percent creep on 25,000 hours is $200K annualized. That is a run-rate story, not a one-month story, and the sponsor needs to know.
Layer 6: Overtime by site
Aggregated overtime rarely tells the story. Split OT by location. Nine times out of ten one branch or one plant is doing 60 percent of the OT. That is a management issue at that site, not a labor market issue. Walk into the MBR knowing which location and why.
Layer 7: Productivity, cross-checked against operations
Payroll shows 46,500 hours. What does the operating system show? Route optimizer, MES, dispatch board. If payroll shows 46,500 and ops shows 42,000, you have a payroll coding problem. If they agree, you have a real hours problem. Either way you learned something.
Revenue per hour and units per FTE should trend with volume. When they diverge from budget, ops has degraded productivity or the mix has shifted to more labor-intense product. Both explanations matter, and neither is “labor was over.”
Layer 8: Opex is usually the small story
By the time you get here, you have usually explained 80 percent of the miss. Opex variance is often insurance renewals, professional fees, IT hosting, or one large marketing event. Look at the top 5 GL accounts inside each department that moved. Do not walk every line.
The four places you find the real story
- Revenue mix. The reported miss is usually margin, but the cause is often a mix shift that started 2 or 3 months earlier.
- Labor hours vs volume. Standard hours vs actual hours at actual volume is the single most useful ratio in an EBITDA diagnosis.
- Wage rate creep. Fills at market vs budget. Silent. Structural. Compounds.
- One site or branch. Aggregated numbers hide operational problems. Split by location before drawing any conclusion.
Diagnostic-question checklist
The questions I ask my team, in order, when EBITDA misses:
- Which line moved the most, in percent terms: revenue, gross profit, or opex?
- Break the revenue variance into volume, price, mix, timing. Which is the story?
- What was the GM bridge from budget to actual? Mix, price, input cost, quantify each.
- What were budgeted hours at actual volume? Compare to actual hours worked.
- What was the average wage rate this month vs last month vs budget?
- Split overtime by location. Is one site driving it?
- Does payroll hours agree with the operating system’s hours?
- Which department is the opex variance, and which single GL account inside it?
- Is this a one-month issue or a run-rate issue?
- What action are we taking, and by when?
What this looks like in the MBR
The variance page in the MBR should have one paragraph per material variance, in the format: what moved, why it moved, and what you are doing about it. Not five bullets. One paragraph. If the paragraph runs longer than four sentences, the diagnosis is not tight enough.
See the piece on the PE-backed CFO board reporting package for where the variance page sits, and the monthly finance cadence for when variance commentary gets drafted.
What this connects to
Once you have diagnosed the miss, you need to know whether it changes the forecast. That is a scenario planning conversation. And the ongoing measurement lives in the KPI dashboard, which is where variance patterns become trends.
Push back on this.
Every operator’s situation is a little different. If you run this differently, disagree with the methodology, or think we got something wrong, tell us. We publish the best counter-approaches on our Reader Contributions page, credited or anonymous, your call. Email hello@thepragmaticcfo.com.
FAQ
What if the operating system and payroll do not agree?
Investigate before drawing conclusions. Common causes: PTO coded to a different cost center, floaters not assigned to a site, overtime spread across multiple projects. Reconciliation usually surfaces a coding problem worth fixing regardless.
How granular should the standard-hours calculation be?
As granular as your budget was built. If budget was built at plant level, run standard hours at plant level. If it was built at department, do that. Do not go finer than the budget or you are inventing precision.
What if the sponsor asks about a $50K variance the CFO does not have a story for?
Say so. “I do not have a diagnosis yet. I will have it by Friday.” A CFO who says “I will get you the answer” beats one who improvises a wrong one.
How much of this can AI help with?
The bridge math and standard-hours calc, yes. The interpretation, no. AI can compute the wage rate creep. It cannot tell you whether one branch manager is the reason.
What about mix vs volume in gross margin?
Mix hurts GM percent without changing revenue much. Volume hurts revenue without changing GM percent much. If both moved, quantify separately, do not lump.
Sources
- AICPA and CIMA, “FP&A Best Practices for Variance Analysis,” 2025
- AFP, “FP&A Guide to Business Performance Analysis,” 2025
- McKinsey, “Finance 2030: Four Imperatives for the Next Decade,” 2025
- AlixPartners, “CFO Excellence in PE Portfolio Companies,” 2025
Written by The Pragmatic CFO. 15+ years running FP&A and finance operations across PE-backed portfolio companies.