← Tools
RoomToProfit  ·  Finance Tool

Flow-Through & Flex Calculator

Enter two periods — actual vs. budget, or current vs. prior year. The right metric is chosen automatically based on which direction revenue moved.

Current period / actual
$
$
Prior period / budget
$
$
Revenue Variance—
GOP Variance—
—
—
Enter values above
Revenue and GOP for both periods are required.
How it works

The two formulas — and when each applies

Revenue beat → use Flow
Flow = ΔGOP ÷ ΔRevenue
How much of the revenue upside made it to profit. 55–75% is solid for select-service. Above 100% — find the missing cost.
Revenue miss → use Flex
Flex = 1 − (ΔGOP ÷ ΔRevenue)
How much of the revenue shortfall was protected by cost action. 45–65% is solid. Below 30% means costs didn't respond.
Flow above 100%
Suspicious
Profit grew faster than revenue. Almost always means a budgeted cost didn't post. Check for pending invoices before presenting to ownership.
Negative flow or flex
Two problems at once
Negative flow: revenue beat but profit still fell. Negative flex: profit fell faster than revenue — an unbudgeted expense hit on top of the miss.
Excel

Formulas to copy into your workbook

Both formulas assume the column layout below. Adjust the cell references to match your sheet — the logic is the same regardless of where your data lives.

Assumed column layout
A2
Prior / Budget Revenue
B2
Prior / Budget House Profit (GOP)
C2
Current / Actual Revenue
D2
Current / Actual House Profit (GOP)
E2
← paste the calculation formula here (format as %)
F2
← paste the verdict formula here
Calculation — returns the % result Cell E2
=IF(OR(A2="",C2=""),"—",IF(C2-A2=0,"No variance",IF(C2-A2>0,(D2-B2)/(C2-A2),1-((D2-B2)/(C2-A2)))))
Format cell E2 as Percentage. Returns "No variance" when revenue is flat, "—" when inputs are empty.
Verdict — text interpretation (Excel 365 / 2019) Cell F2
=IFS(OR(A2="",C2="",B2="",D2=""),"—",C2-A2=0,"No revenue variance — N/A",AND(C2>A2,(D2-B2)/(C2-A2)<0),"Negative flow — costs exceeded revenue gain",AND(C2>A2,(D2-B2)/(C2-A2)<0.4),"Weak flow-through (below 40%)",AND(C2>A2,(D2-B2)/(C2-A2)<0.55),"Below target flow-through",AND(C2>A2,(D2-B2)/(C2-A2)<=0.9),"Solid flow-through",AND(C2>A2,(D2-B2)/(C2-A2)<=1.3),"Elevated — verify no missing costs",C2>A2,"Suspicious — check before presenting",AND(C2
Requires Excel 2019 or Microsoft 365. See nested-IF version below for older Excel.
Verdict — nested IF version (Excel 2016 and earlier) Cell F2
=IF(OR(A2="",C2=""),"—",IF(C2-A2=0,"No variance",IF(C2>A2,IF((D2-B2)/(C2-A2)<0,"Negative flow",IF((D2-B2)/(C2-A2)<0.4,"Weak flow-through",IF((D2-B2)/(C2-A2)<0.55,"Below target",IF((D2-B2)/(C2-A2)<=0.9,"Solid flow-through",IF((D2-B2)/(C2-A2)<=1.3,"Elevated — check costs","Suspicious"))))),IF(1-((D2-B2)/(C2-A2))<0,"Negative flex",IF(1-((D2-B2)/(C2-A2))<0.3,"Poor flex",IF(1-((D2-B2)/(C2-A2))<0.45,"Below target flex",IF(1-((D2-B2)/(C2-A2))<=0.8,"Good flex","Exceptional flex")))))))
Same logic as the IFS version — compatible with Excel 2016 and earlier.
Reference

All 12 conditions the formula evaluates

MetricConditionResult textSignal
—C2 = A2No revenue variance — N/AN/A
FlowΔGOP / ΔRev < 0Negative flow — costs exceeded revenue gainBad
FlowΔGOP / ΔRev < 40%Weak flow-through (below 40%)Bad
FlowΔGOP / ΔRev < 55%Below target flow-throughWatch
FlowΔGOP / ΔRev ≤ 90%Solid flow-throughGood
FlowΔGOP / ΔRev ≤ 130%Elevated — verify no missing costsWatch
FlowΔGOP / ΔRev > 130%Suspicious — check before presentingFlag
Flex1 − (ΔGOP / ΔRev) < 0Negative flex — costs rose on revenue missBad
FlexFlex < 30%Poor flex (below 30%)Bad
FlexFlex < 45%Below target flexWatch
FlexFlex ≤ 80%Good flexGood
FlexFlex > 80%Exceptional flexGood

House Profit = Total Departmental Profit minus Undistributed Expenses (A&G, IT, Sales, POM, Utilities), before management fees and non-operating items. Use the same GOP line consistently across both periods.  ·  Questions or suggestions: will@roomtoprofit.com