The Revenue Engineering LibraryField guideRE-FG1 1.0
The Growth Diagnosis Tree
Does the company even have a marketing problem?
Before you ask for a campaign, ask which door the riyal left through.
Abstract
When revenue falls, the first sentence in the meeting is "we need a campaign". This method postpones that sentence by sixty minutes. It starts with a question: is the decline even real? Then it breaks revenue into six numbers multiplied together, calculates in riyals how much of the decline each one caused, and walks each branch down to its leaves: the evidence, the test, the diagnosis, the owner, the first 30 days, and what not to do. It ends with a plain verdict: is this a marketing problem, or a capacity, availability, pricing or experience problem dressed as one?
Before you sign a campaign budget, settle one thing first: is the problem the branch or the marketing? The tree answers it in riyals before any ad.
How to use this method
| Reader | Path | Time |
|---|---|---|
| CEO | §2 The method in one page → §8 The verdict → §10 The one-page tree | 10 minutes |
| CFO | §3 The identity → §4 What each number cost → §5 Step 0 | 30 minutes |
| COO | §6 The tree, starting with Capacity → §7 Signatures | 20 minutes |
| CRO and marketing | §6 → §8 When the answer is "yes, marketing" | 20 minutes |
| Board | §2 → §9 The 60-minute session | 10 minutes |
A note on numbers
Every number in the examples is an illustrative example: it shows the arithmetic and is not a client's figure, a market average or a platform's rate. Thresholds are taken unchanged from the Revenue Engineering Doctrine, and each group calibrates them in writing. Composite scenes are labelled "composite example". Every calculation is verified by a script published with the method.
The sentence said in every meeting
Composite example, not a specific client: Sunday morning. The CEO opens the report: revenue is down 11% on the same quarter last year. He turns to the head of marketing: "Where are the campaigns?" Marketing shows the reach numbers: higher than last year. Finance says: "The problem is sales." Operations says nothing, because nobody asked.
Two weeks later the campaign launches. Demand does rise. Branches that were already full get fuller, the app is paused "due to high demand", and the rating drops. Next quarter, revenue is down again.
The campaign was not the problem. The first question was. It was never "how do we bring in more people?" It was: "where did the revenue go?"
The method in one page
- Before you ask "how do we sell more?", ask "where did the revenue go?"
- Revenue is not one number. It is six numbers multiplied together, and each has an owner.
- Step 0 comes before the tree. A decline that disappears once calendar, comparison, price, channel and data are corrected is not a problem, and is not treated with a campaign.
- Diagnose from the door to the street, not from the street to the door. Capacity, availability, price and experience first; demand last. A shut door distorts every number after it.
- One cause leaves prints on more than one branch. Read the signature before you rule.
- This tree has 24 leaves; marketing owns 3 of them. A campaign is the right cure for a specific illness, not a painkiller for every ache.
- Advertising does not add a chair. At 80% of peak capacity, no campaign before capacity is added or demand redirected; above 100%, no campaign for that branch.
The identity
Six numbers make revenue
R = (D × c + P × r) × f × s × v
Read it left to right, the way the customer lives it:
| Symbol | Name | Definition | The question |
|---|---|---|---|
| D | Demand reaching you | People new to the brand who reached you in the period | Are new people reaching you? |
| c | Conversion | New customers ÷ D | Did those who reached you buy? |
| P | Inherited base | Last period's active customers | How many customers did you inherit? |
| r | Return rate | Known customers who bought this period ÷ P | Did they come back? |
| f | Frequency | Attempted transactions ÷ active customers | How often did they come? |
| s | Service rate (capacity) | Served transactions ÷ attempted transactions | Did you serve them when they came? |
| v | Average value | Net sales before VAT and after discount ÷ served transactions | What did they pay each time? |
The bracket is the active customers: new (D × c) and returning (P × r). Multiplied by f, it gives the transactions people tried to make. Multiplied by s, what you actually served. Multiplied by v, revenue. The identity is not an estimate; it is a set of definitions, so it always holds.
It is applied to like-for-like branches only, those open more than 12 months (Doctrine: like-for-like sales growth), against the same period on the Hijri calendar. New and closed branches are read in a separate bridge (§5).
Tie-break rules
A tree is useless if its branches overlap. Four rules prevent it:
- A pause caused by pressure is capacity; every other pause is conversion. An app paused "due to high demand" and an order rejected at peak go to s. A sold-out item, a branch closed against its published hours and an app offline for a technical fault go to c.
- Retention is a yes-or-no question; frequency is a how-many question. r asks: did the known customer buy at all this period? f asks: how often did those who bought, buy? A customer is counted once in r, and their intensity is measured in f. This ends the old confusion between "repeat" and "retention".
- A lapsed customer who returns is returning, not new. A known customer who was away more than one period and came back counts in r, not in D × c.
- Fix the period length before the comparison. A Hijri quarter, for example. If the period length changes, f and r change meaning.
Where the numbers live
A Saudi group has most of these numbers, spread across systems that do not talk to each other:
| Number | Metric | Source |
|---|---|---|
| R | Net sales before VAT | POS, reconciled with e-invoices, card settlements and platform statements |
| D | Store-page visits, Google profile views, entries | Delivery platforms' merchant dashboards, Google Business Profile, door counters |
| c | Opened the page then ordered; walked in then paid | Platform dashboard conversion paths; counters with POS |
| P, r | Identified customers and their return | Loyalty programme, app accounts, phone numbers in direct delivery, returning-customer metrics in platform dashboards |
| f | Visits per identified customer | The same sources, with the identification rate beside them |
| s | Paused minutes, rejected orders, cars that left the lane | Platform logs, kitchen screen, a manual peak count |
| v | Average ticket and items per ticket | POS, by branch, door and daypart |
Two notes. First, r and f need an identified customer. If the identification rate is low, you are measuring a small part of your customers, so use the anonymous variant below and raise identification as a parallel plan (Channel Ledger: Demand Ownership Ratio). Second, the platform map itself moves fast: Keeta, entering in late 2024, reached around 10% of order volume within months.1 So every period asks: are you in the app your customer opens?
The anonymous dine-in and retail variant
When you do not know your customer by name, the identity runs on traffic instead of customers:
R = Traffic × Conversion × s × v
Traffic: entries, cars entering the lane, or page visits. Conversion: transactions ÷ traffic. Illustrative example: traffic from 150,000 to 156,000, conversion from 70% to 64%, service rate flat at 97%, ticket from 45 to 46. Revenue falls by about 128,000 : traffic added about 177,000 and the ticket about 99,000, while conversion took about 405,000. More people came and fewer bought. The problem is inside the door.
The FMCG variant
In FMCG there is no branch, only a shelf. The identity used in consumer panels (Kantar-style):
Value = Households × Penetration × Frequency × Volume per trip × Price per unit
Penetration corresponds to D × c + P × r combined, frequency to f, volume and price to v. s becomes shelf availability: numeric and weighted distribution, and out-of-stocks.
Illustrative example: a universe of one million households. Penetration from 20% to 18%, frequency from 4.0 to 4.1, volume flat at 1.5, price from 12.0 to 12.6. Value falls only 3.1%, from 14.4 million to 13.95 million. But the decomposition says: penetration took about 1.49 million, price gave back about 0.69 million, and frequency about 0.35 million. A 5% price rise covered the loss of a tenth of the buyers.
And here is a rule from Ehrenberg's research: double jeopardy. Smaller brands have fewer buyers, and those buyers buy them slightly less often.2 So do not read weak frequency in a small brand as a "loyalty problem" before you look at penetration. In Byron Sharp's reading, brands grow mainly by gaining more buyers, not more loyal ones.6
What each number cost
The formula
It is not enough for the tree to say "this number fell". The board wants to know how many riyals each number took. Because the numbers are multiplied, they cannot simply be subtracted. The method that gives an exact answer with no residual is logarithmic decomposition (the logarithmic mean Divisia index, LMDI):3
Contribution of x = L(R₁, R₀) × ln(x₁ ÷ x₀)
where L(a, b) = (a − b) ÷ (ln a − ln b), and L(a, a) = a.
Because the identity contains a sum (new + returning), each part is computed separately and a number's contributions are added:
R = R_new + R_returning, where R_new = D × c × f × s × v and R_returning = P × r × f × s × v
Contribution of x = Σ L(R_part,1, R_part,0) × ln(x₁ ÷ x₀) over every part in which x appears.
The contributions sum to the change in revenue exactly, because for each part the sum of L × ln equals that part's change. No residual, and no "joint effect" left without an owner.
Illustrative example: demand rose, revenue fell
:::example
Illustrative example with hypothetical numbers: a group of 12 like-for-like branches, the same Hijri quarter this year against last year.
| Last year | This year | Change | |
|---|---|---|---|
| Demand reaching you D | 80,000 | 84,000 | +5% |
| Conversion c | 25% | 24% | |
| New customers D × c | 20,000 | 20,160 | |
| Inherited base P | 40,000 | 42,000 | |
| Return rate r | 55% | 50% | |
| Returning P × r | 22,000 | 21,000 | |
| Frequency f | 2.8 | 2.7 | |
| Service rate s | 96% | 88% | |
| Average value v (SAR) | 58.0 | 59.5 | |
| Revenue R (SAR) | 6,547,968 | 5,818,872 | −729,096 (−11.1%) |
Decomposition in riyals (rounded to the nearest thousand, and in points of last year's revenue):
| Number | Contribution | Points |
|---|---|---|
| Capacity s | −537,000 | −8.2 |
| Return rate r | −304,000 | −4.6 |
| Frequency f | −225,000 | −3.4 |
| Conversion c | −122,000 | −1.9 |
| Demand reaching you D | +145,000 | +2.2 |
| Inherited base P | +156,000 | +2.4 |
| Average value v | +158,000 | +2.4 |
| Total | −729,000 | −11.1 |
The reading. Demand rose 5%, and the whole new-customer side (demand and conversion together) added about 24,000 . The street did not let you down. The biggest leak is at the door: demand came and was turned away, and that alone took 8.2 of the 11.1 points. Then retention, and the signature (§7) raises a question: are the customers who did not return the ones who met you on choked nights?
And the average value that looks positive hides two movements: price rose 6% (adding about 360,000), and the real basket shrank 3.2% (taking about 202,000). The business sold less at a higher price.
The verdict. This is not a marketing problem. A new campaign would lift D and push demand at a door that cannot hold it, so s would fall further, and r after it. The cure starts in the Capacity branch.
:::
Why logarithms?
The usual method changes the numbers one at a time and records the effect of each change. The total is right, but each number's share depends on the order you chose. In the example above, that method gives capacity about 516,000 in one order and about 560,000 in the reverse order. A 44,000 difference settled in the meeting by whoever speaks first. Logarithmic decomposition gives the same answer in any order, with no residual. It has one condition: every number must be above zero, which is why the tree runs on like-for-like branches only; a branch that started from zero belongs in the bridge in §5.
Step 0: Is the decline real?
Before you open the tree, pass the number through six filters. Much of the decline disappears here, and with it the campaign that was about to be launched to cure it.
0.1 · Calendar: compare Hijri with Hijri
The question. Are you comparing Ramadan with Ramadan, Eid with Eid, payday week with payday week?
Evidence.
- Weekly POS sales re-cut by Hijri weeks, with the count of Thursdays, Fridays and holidays in each period
The test. Re-run the comparison on matching Hijri weeks. The Hijri year is about 11 days shorter than the Gregorian year, so the same Gregorian month carries a different season each year. If the decline disappears, it was the calendar.
Diagnosis. A season moved; demand did not disappear.
Owner. Finance
First 30 days. Make the Hijri calendar the basis of every comparison report, and redraw the capacity and campaign plan on next season's waves.
What not to do. Do not launch a campaign to cure a week that was always going to be weaker.
Verdict. ○ Not a marketing problem
Links. Doctrine: like-for-like sales growth · Essay: Your customer circles a roundabout
0.2 · Like-for-like: existing branches or new ones?
The question. Is the decline in branches open more than 12 months, or does the total mix old, new and closed branches?
Evidence.
- Monthly sales per branch, with opening and closing dates and refurbishment closure days
- Delivery orders by customer address, to measure overlap between branch radii
The test. Build the bridge: group growth = new-branch sales − the like-for-like decline. Then split the like-for-like decline into what moved to the new branches (cannibalization) and what was genuinely lost.
Diagnosis. A group can grow while every branch in it declines, and a branch can decline because its sibling took its customers.
Owner. Finance + Expansion
First 30 days. A board report with three separate lines: like-for-like, new, and cannibalized. Re-measure cannibalization at months 3 and 6 after every opening.
What not to do. Do not celebrate group growth before you see the like-for-like line, and do not advertise your way out of a sibling's cannibalization.
Verdict. ○ Not a marketing problem
Links. Doctrine: like-for-like sales growth · Doctrine: the Branch Satiety Curve · Playbook: Gate 4, satiety and cannibalization · Channel Ledger: radius overlap is cannibalization · Cannibalization rate · Branch Satiety Curve · Essay: Choose the neighbour before the house… unless it's your own branch
0.3 · Price: did what customers pay change, or what they take?
The question. Did the average ticket rise because prices rose, while the real basket shrank?
Evidence.
- A same-item price index (current ÷ previous price, weighted by last period's quantities) from the POS
The test. Split the average ticket: v = price index × real basket. If the nominal ticket rose and the real basket fell, you are selling less at a higher price.
Diagnosis. The revenue line hides two opposite movements.
Owner. Pricing + Finance
First 30 days. Add a price line and a volume line to the monthly revenue report, and give every price change a date the results are read against.
What not to do. Do not read flat revenue after a price rise as flat demand.
Verdict. ○ Not a marketing problem
Links. Channel Ledger: channel price architecture · Reference price · Essay: Why isn't 29 riyals on the app the same as at the branch?
0.4 · Mix and channel: did the customer move from dine-in to the app?
The question. Did revenue fall in the books because the same demand moved to a door that is booked at net settlement after commission?
Evidence.
- Revenue and orders by door: dine-in, takeaway, aggregators, direct delivery, B2B
- Platform settlement statements, and how they are booked (gross or net)
The test. Compare total orders across all doors before revenue. If orders held and revenue fell, look at booking method and door mix before anything else.
Diagnosis. The customer did not leave. They changed doors.
Owner. Finance
First 30 days. Standardise booking: gross revenue before VAT for every door, with commission as a cost line. Then read contribution by channel.
What not to do. Do not punish the door your customer moved to, or reward the one they left.
Verdict. ○ Not a marketing problem
Links. Doctrine: channel contribution · Doctrine: channel-margin illusion · Channel Ledger: five doors, five P&Ls · Channel contribution · Essay: Delivery isn't extra sales. It's an ad with a commission
0.5 · Data: is the number itself right?
The question. Does the POS reconcile with e-invoices, bank settlements and platform statements?
Evidence.
- Count and value of simplified e-invoices from the e-invoicing system (Fatoora, ZATCA)
- Card and mada settlements, platform statements, voids and refunds log, and POS offline days
The test. Reconcile three sources per branch per week: POS, e-invoices and settlements. Any gap larger than usual is explained before it is discussed.
Diagnosis. Some declines are recording errors: menu codes changed, a branch moved between regions, or VAT counted inside the number one year and outside it the next.
Owner. Finance
First 30 days. One source of truth and one revenue definition: net sales before VAT and after discount.
What not to do. Do not call marketing into a meeting whose number has not been reconciled.
Verdict. ○ Not a marketing problem
Links. Doctrine: the 30-day diagnostic · Signal purity
0.6 · One-offs: was last year the odd one?
The question. Did the comparison period hold a one-off: a large catering order, a launch spike, a competitor's closure, or road works outside the branch this year?
Evidence.
- An events log per branch, large B2B orders, and days when access to the branch was disrupted
The test. Remove one-offs from both periods, then compare again.
Diagnosis. The base was inflated, or the road was blocked.
Owner. Finance + Operations
First 30 days. A standing events log per branch, updated weekly and attached to every comparison report.
What not to do. Do not judge a branch against a number made by an order that will not repeat.
Verdict. ○ Not a marketing problem
Illustrative example: the group grows while every branch declines
:::example
Illustrative example with hypothetical numbers: ten like-for-like branches, each selling 1 million a month. This year every one of them fell 6%, to 940,000 . The group also opened three new branches, each selling 600,000 .
- The group: from 10.0 million to 11.2 million: +12%.
- Every like-for-like branch: −6%.
- The bridge: 1.8 million from new branches − 0.6 million like-for-like decline = +1.2 million.
- Cannibalization: if 25% of the new branches' sales would otherwise have happened at the existing branches, then 450,000 of the like-for-like decline moved rather than disappeared, and only 150,000 was genuinely lost (−1.5%). The new branches created 1.35 million of new demand, not 1.8.
A report that shows only the group line celebrates 12% growth. A report that shows only the like-for-like line launches a campaign to cure a 6% decline. The truth is in all three lines together.
:::
Illustrative example: revenue fell and the customers didn't change
:::example
Illustrative example with hypothetical numbers; the commission rate is not any platform's rate: a thousand orders at 60 each. Two hundred move from dine-in to the app, and the app is booked at net settlement after a 25% commission. The books show a 5% decline, from 60,000 to 57,000, with the same customers and the same orders. That is not a fall in demand. It is another door and another booking method, and it belongs in channel contribution, not in the marketing plan.
:::
The Step 0 verdict
After the six filters, one of three verdicts remains:
- The decline disappeared: not a problem. Record the reason, and launch nothing.
- The decline remains, but within the branch's usual variation in comparable weeks: watch one more cycle before you rule. The group computes its usual variation from its own history, not from a general figure.
- The decline remains and exceeds the usual variation: open the tree.
The tree
Diagnosis order: from the door to the street
Start inside. A shut door distorts every number after it: turned-away demand lowers conversion, a bad experience lowers return, and low return is misread as weak demand. So the branches are examined in this order, not in the order of the identity:
- Is the decline real? → Step 0: Is the decline real?
- Was demand turned away at the door? → s · Capacity: demand came and was turned away
- Were the item, the branch and the app available? → c2 · Not available at the moment of choice
- Did price change? → c1 · Price and value at the moment of choice
- Did the experience let people down, so they did not return? → r · Retention is down: they didn't come back at all
- Do those who stayed come less often? → f · Frequency is down: your customers come less often
- Did the ticket shrink, and why? → v · Average value is down
- Only now: are fewer people reaching you? → D · Demand reaching you is down
s · Capacity: demand came and was turned away
Did demand arrive that you could not serve?
s = served ÷ attempted transactions. What is not served because of throughput limits: the app paused 'due to high demand', rejected orders, cars that left the lane.
Where the evidence lives.
- Minutes in 'busy' or paused mode on each platform, with the reason
- Orders rejected or cancelled by the restaurant, missed calls, cars that left the lane
- Peak utilization U = peak orders ÷ (V × H), delivery included, from POS and kitchen-screen timestamps (the Doctrine's D in that formula is peak demand, not the tree's D)
s1 · The peak is full (80% or more)
The question. Does the branch run at 80% or more of its capacity in the peak hour, delivery included?
Evidence.
- U = peak orders from all doors ÷ (orders the kitchen serves per hour × peak hours)
The test. Compute U for each branch and each peak window, and for the two Ramadan windows separately. At 80% or more, any fall in s, r or the rating is read first as capacity.
Diagnosis. The hall is full. The invitations worked; the chairs did not multiply.
Owner. Operations
First 30 days. Redirect demand to quieter hours, a nearby branch or pickup; narrow the peak delivery radius when a sister branch has room.
What not to do. At 80%, no new campaign before capacity is added or demand redirected. Above 100%, no campaign for that branch at all.
Verdict. ○ Not a marketing problem
Links. Doctrine: Principle 3, scale follows capacity (80% and 100%) · Doctrine: capacity deficit · Channel Ledger: peak utilization across all doors · Channel Ledger: the peak capacity charge · Peak utilization · Little's Law · Essay: The campaign worked. The branch collapsed.
s2 · The slowest station runs the branch
The question. Where do orders pile up: the grill, the payment window, or the riders' shelf?
Evidence.
- Per-station timestamps from the kitchen screen and POS, and a manual count every fifteen minutes on Thursday night
The test. The station with the longest queue in front and the shortest behind is the constraint. By Little's law, the queue = arrival rate × time in the system; a campaign raises the first, the constraint sets the second.
Diagnosis. The branch moves at the speed of its slowest station.
Owner. Operations
First 30 days. The five focusing steps: identify the constraint, exploit it fully, subordinate the other stations to it, elevate it, then look for the next one.
What not to do. Do not add staff or equipment at a station that is not the constraint.
Verdict. ○ Not a marketing problem
Links. Doctrine: Principle 3, scale follows capacity (80% and 100%) · Channel Ledger: the peak capacity charge · Constraint · Little's Law · Essay: The campaign worked. The branch collapsed.
s3 · The app is paused at peak
The question. How many minutes was the app paused 'due to high demand' over the last two Thursday nights?
Evidence.
- Busy-mode and pause log on each platform, by minute and reason, with rejected orders
The test. Multiply paused minutes by the usual order rate in those minutes: that is the demand turned away. Compare it with what was spent to bring demand in the same week.
Diagnosis. The advertising knocks, and the app says: busy.
Owner. Operations
First 30 days. Set an order cap per window instead of a full pause, a separate riders' lane, and a visible expected time for the customer.
What not to do. Do not run paid visibility on a platform you are pausing in the same hour.
Verdict. ○ Not a marketing problem
Links. Doctrine: revenue leakage · Doctrine: channel rules · Channel Ledger: peak utilization across all doors · Peak utilization · Essay: The campaign worked. The branch collapsed. · Essay: Your customer circles a roundabout
s4 · Capacity on paper, not in the hour
The question. Is the capacity there across the day, but not in the hour people come?
Evidence.
- The shift roster against the hourly demand curve, with the two Ramadan windows (before iftar, around suhoor) separately
The test. If peak U is above 80% while the daily average is low, the problem is how hours are spread, not how big the team is.
Diagnosis. The team is big enough, but in the wrong hour.
Owner. Operations
First 30 days. Rebuild rosters on the Hijri demand curve, and decide automation versus hiring with one written rule.
What not to do. Do not staff for the daily average; the peak is what governs.
Verdict. ○ Not a marketing problem
Links. Doctrine: Principle 3, scale follows capacity (80% and 100%) · Playbook: the Saudization–Automation balance model · Saudization–Automation balance model · Essay: The campaign worked. The branch collapsed.
c · Conversion is down: they saw you and didn't buy
Did they reach you and then choose someone else at the last moment?
c = new customers ÷ demand reaching you. On the app: opened the page, then ordered. In retail: walked in, then paid.
Where the evidence lives.
- The conversion path in the platform dashboard: page visit, then basket, then order
- Entries ÷ transactions in retail; cars entering the lane ÷ orders at the drive-thru
c1 · Price and value at the moment of choice
The question. Did the customer see your app price, hold it against the menu board they remember, and walk away?
Evidence.
- Conversion by item and door before and after the price-change date
- The app-to-branch price gap on 'ruler' items, and direct competitors' prices
The test. Branches or platforms that changed price against those that did not, in the same weeks. If conversion fell only where price changed, it is price.
Diagnosis. Customers do not read your price. They compare it.
Owner. Pricing
First 30 days. Protect the ruler items, move channel cost into items and boxes designed for delivery, and name the gap where terms allow.
What not to do. Do not fix a price problem with a temporary offer; you teach the customer to wait for the discount.
Verdict. ○ Not a marketing problem
Links. Channel Ledger: channel price architecture · Doctrine: channel rules · Reference price · Value-based pricing · Essay: Why isn't 29 riyals on the app the same as at the branch?
c2 · Not available at the moment of choice
The question. Did the customer reach you and find the item sold out, the branch closed against its published hours, or the app offline for a reason unrelated to demand?
Evidence.
- A sold-out log by hour, published vs actual hours, and pause reasons on each platform
The test. The tie-break rule: a pause because of order pressure goes to Capacity; every other pause or stock-out stays here. Then compare conversion in clean hours with disrupted hours.
Diagnosis. The door is shut, and the advertising is sending people to it.
Owner. Operations
First 30 days. Measure lost orders ÷ attempted orders for two weeks at the five highest-volume branches, and fix the top three stock-out causes.
What not to do. Do not raise spend to bring people to an item that is not there.
Verdict. ○ Not a marketing problem
Links. Doctrine: revenue leakage · Physical availability · Essay: Your customer circles a roundabout
c3 · Ordering is hard
The question. Did the path from wanting to a paid order get longer: a long menu, failing payments, missing photos?
Evidence.
- Steps and minutes from page open to payment, payment failure rate, abandoned baskets
The test. If conversion fell after an app, menu or payment update, and recovered where the update was rolled back, it is friction.
Diagnosis. The customer wanted it; the system wore them out.
Owner. Product & menu + Operations
First 30 days. Remove one step from the highest-volume path this month, and fix the top cause of payment failure.
What not to do. Do not drive more visits to a page people fall out of.
Verdict. ○ Not a marketing problem
Links. Doctrine: order friction · Messy middle · Essay: Your customer circles a roundabout
c4 · Reviews and what people say
The question. Did your rating fall, or complaints go unanswered, so people see you and hesitate?
Evidence.
- Rating trend over the last 4 weeks on Google and each platform, complaints open more than 24 hours, and the most repeated reason
The test. Check whether the rating fell before conversion did. Then ask: is the most repeated complaint operational (lateness, wrong orders, cold food) or about communication (expectations, photos)?
Diagnosis. The rating is a symptom. The cause is usually in the kitchen; the reply is in marketing's hands.
Owner. Operations + Marketing
First 30 days. Operations fixes the most repeated cause; marketing answers every complaint within 24 hours.
What not to do. Do not buy reviews or bury complaints; the credibility of the reply matters more than the count of negatives.
Verdict. ◐ Shared; marketing is not the first owner
Links. Doctrine: churn decay · Essay: Your customer circles a roundabout
r · Retention is down: they didn't come back at all
How many of last period's customers did not buy from you even once this period?
r = known customers who bought this period ÷ last period's active customers. A yes-or-no question per customer, not how often.
Where the evidence lives.
- 90-day repeat rate by acquisition cohort
- Returning-customer metrics in platform dashboards, and the loyalty record
r1 · The service let them down
The question. Are the customers who came on a bad night (lateness, wrong order, refund) the ones who did not return?
Evidence.
- 90-day repeat by first-visit conditions: utilization that hour, wait time, and any error or refund
The test. Compare the return rate of two cohorts: first visit clean, versus first visit at a choked peak or with an error. The gap is the price of service.
Diagnosis. The campaign chose the night the customer met you, and it was your worst night.
Owner. Operations
First 30 days. Fix the top cause of errors and refunds, and contact every let-down customer within 24 hours.
What not to do. Do not buy new customers to replace the ones service drove away.
Verdict. ○ Not a marketing problem
Links. Doctrine: churn decay · Doctrine: repeat rate by cohort (90 days) · Doctrine: Principle 3, scale follows capacity (80% and 100%) · Psychology of waiting · Essay: The campaign worked. The branch collapsed.
r2 · A new competitor took them
The question. Is the non-return concentrated in a trade area where a competitor opened?
Evidence.
- Return rate by trade area, against a map of competitor openings and dates
The test. If return fell only in the competitor's trade area and held elsewhere, it is the competitor. If it fell everywhere, look at service or value.
Diagnosis. People tried the new option, and some stayed there.
Owner. Product & menu + Marketing
First 30 days. Identify what the competitor offers that you do not, and close the gap in the product before the message.
What not to do. Do not answer a competitor's opening with a citywide discount.
Verdict. ◐ Shared; marketing is not the first owner
Links. Doctrine: Principle 2, saturation and marginal CAC · Essay: Why do people drive past three cafés to get to yours?
r3 · They came for the discount and left with it
The question. Do customers acquired with a deep discount fail to return at full price?
Evidence.
- 90-day return by first-visit discount depth and by door
The test. If deep-discount customers return clearly less than full-price customers through the same door, the discount bought a visit, not a customer.
Diagnosis. The value that attracted them was not yours. It was the discount's.
Owner. Pricing + Marketing
First 30 days. Redesign the acquisition offer to reward the second visit, not the first, and compute CAC payback on the cohort.
What not to do. Do not count discount customers as acquired before you see them return.
Verdict. ◐ Shared; marketing is not the first owner
Links. Doctrine: repeat rate by cohort (90 days) · Channel Ledger: 90-day repeat by door · Channel Ledger: subsidised habit · CAC payback · LTV : CAC ratio · Essay: The offer brought in sales… or would they have come anyway?
r4 · The product changed from branch to branch
The question. Do new branches fail to repeat the reference branches' experience, so customers try once and do not return?
Evidence.
- Return rate by branch age against the reference cohort at the same age, and the Geographic Replication Index
The test. If weak return is concentrated in the latest opening wave, the system is not travelling.
Diagnosis. Branch 30 does not taste like branch 3.
Owner. Operations
First 30 days. Find what is not travelling (recipe, training, supplier) and fix it before the next wave.
What not to do. Do not open branch 31 before branch 30 performs like branch 3.
Verdict. ○ Not a marketing problem
Links. Doctrine: the Geographic Replication Index · Playbook: Gate 5, replication · Geographic Replication Index
f · Frequency is down: your customers come less often
Is the same active customer visiting fewer times?
f = attempted transactions ÷ active customers. It measures how intensely those who bought in the period bought, not who stayed away.
Where the evidence lives.
- Visits per identified customer through loyalty, app accounts or phone numbers
- Identification rate: identified orders ÷ all orders
f1 · You lost one of their occasions
The question. Do they still come to you for dinner, but no longer for lunch?
Evidence.
- Visits per identified customer by daypart and occasion
The test. If frequency fell in one occasion and held in the rest, the problem is that occasion: its hours, its menu, or its speed.
Diagnosis. The customer did not leave you. They stopped hiring you for one job.
Owner. Product & menu + Marketing
First 30 days. Product fixes the offer for the lost occasion; then marketing ties it to its buying moment.
What not to do. Do not advertise an occasion whose offer you have not fixed.
Verdict. ◐ Shared; marketing is not the first owner
Links. Doctrine: Principle 1 · Occasion segmentation · Category entry points · Essay: The lunch customer isn't the late-night customer
f2 · They now split their visits with someone else
The question. Is the same customer now giving a new competitor some of their visits?
Evidence.
- Frequency decline by trade area, against competitor opening dates
- A short question to a customer sample: where else did you eat this week?
The test. Remember double jeopardy: smaller brands have fewer buyers who buy less often. If frequency fell alone while penetration held, that is a strong signal of a specific competitor in a specific trade area.
Diagnosis. They did not drop you. They started sharing you.
Owner. Marketing + Product & menu
First 30 days. In the affected trade areas only: remind people of the buying moments you win, and protect what makes your product different.
What not to do. Do not start a citywide price war with the new competitor.
Verdict. ● Marketing problem
Links. Doctrine: Principle 2, saturation and marginal CAC · Mental availability · Distinctive brand assets · Essay: Why do people drive past three cafés to get to yours?
f3 · Coming back became tiring
The question. Did repeat visits get harder: less parking, longer peak waits, a clumsy reorder in the app, a loyalty programme that ended?
Evidence.
- Average peak wait, reorder steps, and the date of any loyalty programme change
The test. Compare identified customers' frequency before and after the change in affected branches against unaffected ones.
Diagnosis. The customer likes you, but the way to you got longer.
Owner. Operations + Product & menu
First 30 days. Remove the single biggest obstacle to the second visit this month.
What not to do. Do not give a come-back discount to a customer bothered by the journey, not the price.
Verdict. ○ Not a marketing problem
Links. Doctrine: order friction · Psychology of waiting · Essay: The campaign worked. The branch collapsed.
f4 · Price cut the visits
The question. After the price rise, does the same customer now come twice instead of three times?
Evidence.
- Identified customers' frequency before and after the price-change date
The test. If frequency fell only where price changed, and the nominal ticket rose, the customer is spending their usual budget in fewer visits.
Diagnosis. The customer did not change their budget. They changed their number of visits.
Owner. Pricing
First 30 days. Judge the price rise on contribution, not on ticket, and revisit the ruler items first.
What not to do. Do not celebrate a higher ticket before you see frequency.
Verdict. ○ Not a marketing problem
Links. Channel Ledger: channel price architecture · Reference price · Mental accounting · Essay: Why isn't 29 riyals on the app the same as at the branch?
v · Average value is down
Is each visit worth less?
v = net sales before VAT and after discount ÷ served transactions. It splits into price index × real basket.
Where the evidence lives.
- Average ticket and items per ticket from the POS, by branch, door and daypart
v1 · The mix traded down
The question. Did customers move to cheaper items or sizes, or to a daypart with a smaller ticket?
Evidence.
- A price–volume–mix analysis from the POS, by item and daypart
The test. Hold prices at last period's level and recompute the ticket with today's mix. If it falls, the mix is the cause.
Diagnosis. The customer stayed, but picks cheaper.
Owner. Product & menu + Pricing
First 30 days. Re-engineer the menu: put high-contribution items where the eye lands, and design a middle meal between the cheapest and the dearest.
What not to do. Do not raise the cheap items' prices to compensate; you will speed up the exit.
Verdict. ○ Not a marketing problem
Links. Channel Ledger: channel price architecture · Contribution margin · Essay: Why isn't 29 riyals on the app the same as at the branch?
v2 · The discount became the price
The question. Has the share of discounted orders risen until full price is the exception?
Evidence.
- The discounted share of each door's orders and its trend, and brand-funded discount from platform statements
- The increment ratio in the latest holdout test
The test. If the discounted share rises while the increment ratio falls, you are subsidising a habit, not building demand. Switch the offer off in half the pairs and measure what remains.
Diagnosis. Here marketing is not the cure; it is the cause.
Owner. Marketing + Finance
First 30 days. No offer without a pre-set increment test, and an exit test on the recurring offers this month.
What not to do. Do not read an offer on before-and-after, and do not stop every offer at once.
Verdict. ● Marketing problem
Links. Doctrine: weak margin firewall · Doctrine: channel rules · Channel Ledger: the increment test · Channel Ledger: subsidised habit · Promotion increment test · Incrementality · Holdout group · Essay: The offer brought in sales… or would they have come anyway?
v3 · The basket shrank
The question. Are there fewer items per ticket: fewer drinks, fewer sides, broken combos?
Evidence.
- Items per ticket and drink and side attach rates, by branch and shift
The test. If the drop is concentrated in certain shifts or branches, it is counter behaviour or combo design, not a customer decision.
Diagnosis. It was not offered, so it was not bought.
Owner. Operations + Product & menu
First 30 days. One suggestion line at the counter and in the app, a combo designed for attachment, and a daily attach-rate check.
What not to do. Do not turn the suggestion into pressure; one suggestion is enough.
Verdict. ○ Not a marketing problem
Links. Doctrine: Principle 1
v4 · The door changed the ticket
The question. Did orders move to a door with a smaller ticket or less left over, with the same customer?
Evidence.
- Average ticket and contribution per order by door
The test. Compute the ticket for each door separately. If it held within every door and the total average fell, it is the mix between doors.
Diagnosis. The ticket did not shrink; the door changed.
Owner. Finance + Pricing
First 30 days. Price each door to its cost within the terms, and design delivery boxes and baskets that carry its cost.
What not to do. Do not grow a door whose contribution you do not know.
Verdict. ○ Not a marketing problem
Links. Doctrine: channel contribution · Doctrine: channel-margin illusion · Channel Ledger: five doors, five P&Ls · Channel contribution · Channel floor test · Essay: Delivery isn't extra sales. It's an ad with a commission
D · Demand reaching you is down
Are fewer new people putting you among their options?
D: people new to the brand who reached you in the period: opened your app page, walked into a branch, or searched for you.
Where the evidence lives.
- Store-page impressions and visits in the delivery platforms' merchant dashboards
- Google Business Profile views, direction requests and calls
- Passer-by and entry counters in retail
D1 · The market itself shrank
The question. Did the whole category fall in your city, not just you?
Evidence.
- SAMA's weekly point-of-sale data for restaurants and cafés by city (card-terminal payments only; not cash or in-app payments)
The test. Compare your like-for-like growth with the sector's growth in your city for the same Hijri weeks. If you fell as much as the market, your share held.
Diagnosis. The tide went out; the boat held its place.
Owner. Finance + Operations
First 30 days. Reset costs, rosters and stock to the new market size, protect margin, and send the next riyal to the occasions still growing.
What not to do. Do not buy share with discounts in a shrinking market; you pay the discount on every order that was coming anyway.
Verdict. ○ Not a marketing problem
Links. Doctrine: the next-riyal rule · Doctrine: Principle 2, saturation and marginal CAC · Next-riyal rule · Essay: Your customer circles a roundabout
D2 · You lost share of mind
The question. When the family group asks 'where shall we go?', does your name come up less often?
Evidence.
- A small monthly sample: which brand they name first for each buying moment (after isha, lunch, unexpected guests)
- Branded search and Google profile views, against the market's trend
- Competitor openings in your trade area
The test. Three conditions together: the market is flat or growing, your share is falling, and conversion and capacity are sound. If any condition fails, the problem is elsewhere.
Diagnosis. People did not reject you. They forgot you.
Owner. Marketing
First 30 days. Name the three biggest buying moments in your category, tie your name to them with consistent distinctive assets, and aim reach at those moments, not at follower counts.
What not to do. Do not measure success in followers, and do not manage average CAC; watch the marginal one.
Verdict. ● Marketing problem
Links. Doctrine: Principle 2, saturation and marginal CAC · Mental availability · Category entry points · Distinctive brand assets · Fully loaded CAC · Essay: Why do people drive past three cafés to get to yours? · Essay: Your customer circles a roundabout
D3 · You became harder to reach
The question. Did you become harder to find or reach: a narrower delivery radius, shorter hours, a lower app ranking, a blocked road?
Evidence.
- Actual visible hours on each platform × delivery radius in km
- Published branch data (hours, location, menu) on Google, the apps and AI assistants
- In FMCG: numeric and weighted distribution from the retail audit
The test. Match the date demand fell with the date of any change in visibility, radius, hours or distribution.
Diagnosis. People look for you and cannot find the way.
Owner. Operations + Expansion
First 30 days. Restore hours and radius where capacity allows, correct the branch data on every platform, and give it one owner.
What not to do. Do not compensate with advertising for a door you closed yourself.
Verdict. ○ Not a marketing problem
Links. Doctrine: revenue leakage · Channel Ledger: radius overlap is cannibalization · Physical availability · Essay: Your customer circles a roundabout · Essay: Before they visit, they ask the AI
D4 · The occasion shifted
The question. After the calendar is corrected, did demand move from one occasion to another: late night to lunch, the dining room to the home?
Evidence.
- Sales by daypart and door, on matching Hijri weeks
The test. If one daypart fell and another grew by about the same, it is an occasion migration, not a demand loss.
Diagnosis. The same customer, with a different job to do.
Owner. Product & menu + Operations
First 30 days. Redesign menu, rosters and format around the rising occasion.
What not to do. Do not push an occasion whose time has passed with advertising.
Verdict. ○ Not a marketing problem
Links. Doctrine: Principle 1 · Occasion segmentation · Jobs to be done · Essay: The lunch customer isn't the late-night customer
The inherited base
P is not a branch to diagnose this period. It is the result of last period's tree: how many customers you came out of it with. In the illustrative example it added 156,000 because last period was better. It also means that part of today's decline was decided yesterday, and that this year's return rate is next year's inherited base.
One cause, many prints
The tree separates symptoms so they do not overlap. But causes do not respect branches: one cause can hit three numbers at once. Before the verdict, read the signature:
| Cause | Signature across branches | Leaves |
|---|---|---|
| A capacity crunch | s falls at peak, then r falls for cohorts met on crowded nights, then the rating, then c. | s1 · r1 · c4 |
| A price rise | Nominal v rises, the real basket falls, and c and f fall only where price changed. | c1 · f4 · v1 |
| Discount addiction | The discounted share rises, v falls, f rises during the offer, then r falls after it. | v2 · r3 |
| A new competitor | In one trade area: D falls against the market, f falls, r falls. Outside it, everything holds. | D2 · f2 · r2 |
| A brand being forgotten | D falls against the market in every trade area, while c, s and f hold. | D2 |
| A system that does not travel | r and v are weaker in the new branches only; the reference branches are sound. | r4 · v3 |
If the signature is complete, treat the cause, not the symptoms. In the illustrative example, s and r falling together while D held is the signature of a capacity crunch, and a new campaign makes it worse.
The verdict: when is it a marketing problem?
The reading
3 of 24 leaves are marketing's to own; 4 are shared, with marketing not the first owner; 17 belong to operations, pricing, product, finance or expansion.
That is a count of the map's leaves, not a survey of companies. But it says something: there are far more ways for revenue to leak than there are ways for advertising to fix it.
And my reading from practice, not a statistic: most of what reaches a board as "a marketing problem" is really a shut door, a sold-out item, a price the customer measured against their ruler, or an experience they did not come back from. Marketing gets called because its number is the easiest to see, not because it is closest to the cause.
The verdict matrix
| Leaf | Owner | Verdict |
|---|---|---|
| D2 · You lost share of mind | Marketing | ● Marketing problem |
| v2 · The discount became the price | Marketing + Finance | ● Marketing problem |
| f2 · They now split their visits with someone else | Marketing + Product & menu | ● Marketing problem |
| c4 · Reviews and what people say | Operations + Marketing | ◐ Shared; marketing is not the first owner |
| f1 · You lost one of their occasions | Product & menu + Marketing | ◐ Shared; marketing is not the first owner |
| r2 · A new competitor took them | Product & menu + Marketing | ◐ Shared; marketing is not the first owner |
| r3 · They came for the discount and left with it | Pricing + Marketing | ◐ Shared; marketing is not the first owner |
| D1 · The market itself shrank | Finance + Operations | ○ Not a marketing problem |
| D3 · You became harder to reach | Operations + Expansion | ○ Not a marketing problem |
| D4 · The occasion shifted | Product & menu + Operations | ○ Not a marketing problem |
| c1 · Price and value at the moment of choice | Pricing | ○ Not a marketing problem |
| c2 · Not available at the moment of choice | Operations | ○ Not a marketing problem |
| c3 · Ordering is hard | Product & menu + Operations | ○ Not a marketing problem |
| v1 · The mix traded down | Product & menu + Pricing | ○ Not a marketing problem |
| v3 · The basket shrank | Operations + Product & menu | ○ Not a marketing problem |
| v4 · The door changed the ticket | Finance + Pricing | ○ Not a marketing problem |
| f3 · Coming back became tiring | Operations + Product & menu | ○ Not a marketing problem |
| f4 · Price cut the visits | Pricing | ○ Not a marketing problem |
| r1 · The service let them down | Operations | ○ Not a marketing problem |
| r4 · The product changed from branch to branch | Operations | ○ Not a marketing problem |
| s1 · The peak is full (80% or more) | Operations | ○ Not a marketing problem |
| s2 · The slowest station runs the branch | Operations | ○ Not a marketing problem |
| s3 · The app is paused at peak | Operations | ○ Not a marketing problem |
| s4 · Capacity on paper, not in the hour | Operations | ○ Not a marketing problem |
When the answer is "yes, marketing"
The answer is "yes" when four conditions hold together:
- The decline is real after Step 0.
- The door is sound: peak utilization below 80%, and no pause or stock-out explains the decline.
- Price and experience are sound: no price change in the timing, and rating and return are holding.
- Your share is falling while the market holds or grows: people are reaching someone else.
Only then is a campaign the cure. And even then, it is measured by its increment against a holdout (Channel Ledger: the increment test), and it stops when marginal CAC exceeds what the payback threshold allows (Doctrine: Principle 2).
There is one leaf where marketing is the cause, not the cure: the discount became the price. There, the fix is for marketing to stop something, not start something.
The 60-minute board session
Before the session
One page, sent 48 hours ahead, with four things: the Step 0 verdict, the decomposition table in riyals, the two largest branches with their evidence, and the proposed owner of each leaf. The session does not open if the number has not been reconciled.
The agenda
| Minutes | Item | Presented by | The question it closes |
|---|---|---|---|
| 0–5 | The number: like-for-like, Hijri-aligned, and the Step 0 verdict | CFO | Is the decline real? |
| 5–15 | The decomposition: how many riyals each number took | CFO | Which door did the riyal leave through? |
| 15–35 | The two largest branches, leaf by leaf, from the door to the street | The leaf owners: operations, pricing, revenue | What is the evidence, and what did the test show? |
| 35–45 | Signatures and verdict | CEO | Marketing, shared or not marketing? And who is the one owner? |
| 45–55 | The first 30 days, the "do not" list, and the effect on the next riyal | The owners | What do we start, what do we stop, and where does the money go? |
| 55–60 | The record: owner, metric, test date, review date | Secretary | When will we know we were right? |
Session rules
- Marketing speaks last. Not to diminish it, but because its leaf is last in the diagnosis order.
- A leaf with two owners has none. One first owner is named; the rest support.
- No campaign is approved in this session for a branch at 80% or more peak utilization (Doctrine: Principle 3).
- Every intervention has a test and a date. Whatever cannot be measured after 30 days is not extended.
What comes out of the session
A three-line memo: the verdict (do we have a marketing problem?), the owner (who owns the largest leaf?), and the decision (what do we start, what do we stop, and where does the next riyal go?).
The tree on one page
For printing, and for the meeting-room wall.
Interactive toolIllustrative example
Everything is computed in your browser. Your numbers are never sent anywhere.
Revenue Engineering · Interactive tool
The Growth Diagnosis Tree
Does the company even have a marketing problem?
Before you ask for a campaign, ask which door the riyal left through.
Everything is computed in your browser. Your numbers are not sent anywhere or saved, and they disappear when you close the page.
0 Step 0 · Is the decline real?
Before you open the tree, pass the number through six filters. Much of the decline disappears here, and with it the campaign that was about to be launched to cure it.
6 of 6 filters checked
Are you comparing Ramadan with Ramadan, Eid with Eid, payday week with payday week?
Checked and corrected
How to check
Evidence
- Weekly POS sales re-cut by Hijri weeks, with the count of Thursdays, Fridays and holidays in each period
The test
Re-run the comparison on matching Hijri weeks. The Hijri year is about 11 days shorter than the Gregorian year, so the same Gregorian month carries a different season each year. If the decline disappears, it was the calendar.
Diagnosis
A season moved; demand did not disappear.
Owner
Finance
First 30 days
Make the Hijri calendar the basis of every comparison report, and redraw the capacity and campaign plan on next season's waves.
What not to do
Do not launch a campaign to cure a week that was always going to be weaker.
Read more
Is the decline in branches open more than 12 months, or does the total mix old, new and closed branches?
Checked and corrected
How to check
Evidence
- Monthly sales per branch, with opening and closing dates and refurbishment closure days
- Delivery orders by customer address, to measure overlap between branch radii
The test
Build the bridge: group growth = new-branch sales − the like-for-like decline. Then split the like-for-like decline into what moved to the new branches (cannibalization) and what was genuinely lost.
Diagnosis
A group can grow while every branch in it declines, and a branch can decline because its sibling took its customers.
Owner
Finance + Expansion
First 30 days
A board report with three separate lines: like-for-like, new, and cannibalized. Re-measure cannibalization at months 3 and 6 after every opening.
What not to do
Do not celebrate group growth before you see the like-for-like line, and do not advertise your way out of a sibling's cannibalization.
Read more
Group filter: the group grows while every branch declines
Group bridge = new-branch sales − the like-for-like decline − closed branches. Then the like-for-like decline is split into what moved to the new branches (cannibalization) and what was genuinely lost. Only like-for-like enters the tree.
Group 10,000,000 → 11,200,000 +12.0% Like-for-like −6.0% Bridge +1,200,000 Moved to new branches (cannibalized) 450,000 Genuinely lost 150,000 −1.5% New demand created by new branches 1,350,000 ✓ The bridge reconciles: ΔG = net new demand − genuine loss − closed
The group grows while like-for-like falls. A report with only the group line celebrates; a report with only the like-for-like line launches a campaign. The truth is in all three lines together.
Did the average ticket rise because prices rose, while the real basket shrank?
Checked and corrected
How to check
Evidence
- A same-item price index (current ÷ previous price, weighted by last period's quantities) from the POS
The test
Split the average ticket: v = price index × real basket. If the nominal ticket rose and the real basket fell, you are selling less at a higher price.
Diagnosis
The revenue line hides two opposite movements.
Owner
Pricing + Finance
First 30 days
Add a price line and a volume line to the monthly revenue report, and give every price change a date the results are read against.
What not to do
Do not read flat revenue after a price rise as flat demand.
Read more
Did revenue fall in the books because the same demand moved to a door that is booked at net settlement after commission?
Checked and corrected
How to check
Evidence
- Revenue and orders by door: dine-in, takeaway, aggregators, direct delivery, B2B
- Platform settlement statements, and how they are booked (gross or net)
The test
Compare total orders across all doors before revenue. If orders held and revenue fell, look at booking method and door mix before anything else.
Diagnosis
The customer did not leave. They changed doors.
Owner
Finance
First 30 days
Standardise booking: gross revenue before VAT for every door, with commission as a cost line. Then read contribution by channel.
What not to do
Do not punish the door your customer moved to, or reward the one they left.
Read more
Does the POS reconcile with e-invoices, bank settlements and platform statements?
Checked and corrected
How to check
Evidence
- Count and value of simplified e-invoices from the e-invoicing system (Fatoora, ZATCA)
- Card and mada settlements, platform statements, voids and refunds log, and POS offline days
The test
Reconcile three sources per branch per week: POS, e-invoices and settlements. Any gap larger than usual is explained before it is discussed.
Diagnosis
Some declines are recording errors: menu codes changed, a branch moved between regions, or VAT counted inside the number one year and outside it the next.
Owner
Finance
First 30 days
One source of truth and one revenue definition: net sales before VAT and after discount.
What not to do
Do not call marketing into a meeting whose number has not been reconciled.
Read more
Did the comparison period hold a one-off: a large catering order, a launch spike, a competitor's closure, or road works outside the branch this year?
Checked and corrected
How to check
Evidence
- An events log per branch, large B2B orders, and days when access to the branch was disrupted
The test
Remove one-offs from both periods, then compare again.
Diagnosis
The base was inflated, or the road was blocked.
Owner
Finance + Operations
First 30 days
A standing events log per branch, updated weekly and attached to every comparison report.
What not to do
Do not judge a branch against a number made by an order that will not repeat.
1 Your numbers: two like-for-like periods
2 The diagnosis
What each number cost
Logarithmic decomposition (LMDI): each number's contribution in riyals, from last period's revenue to this period's. The contributions sum to the change exactly, with no residual, in any order.
The check: the sum equals the change exactly
- Sum of contributions
- −729,096.48
- ΔR = R₁ − R₀
- 5,818,871.52 − 6,547,968.00 = −729,096.48
- Difference
- 0.00 ✓ Matches
Grouped
- New-customer side (D + c) +23,762
- Customer-base side (P + r + f) −373,178
- The door (s) −537,371
- The ticket (v) +157,690
Average value hides two movements
Nominal ticket +2.6%, price +6.0%, real basket −3.2%.
- Price +359,861
- Real basket −202,171
Show the numbers as a table
| Number | Last | This | Change | New | Returning | Contribution | Points |
|---|---|---|---|---|---|---|---|
| s Capacity | 96% | 88% | −8.3% | −259,473 | −277,897 | −537,371 | −8.2 |
| c Conversion | 25% | 24% | −4.0% | −121,734 | — | −121,734 | −1.9 |
| r Return rate | 55.0% | 50% | −9.1% | — | −304,402 | −304,402 | −4.6 |
| f Frequency | 2.8 | 2.7 | −3.6% | −108,451 | −116,151 | −224,602 | −3.4 |
| v Average value | 58 | 59.5 | +2.6% | +76,142 | +81,548 | +157,690 | +2.4 |
| D Demand reaching you | 80,000 | 84,000 | +5.0% | +145,495 | — | +145,495 | +2.2 |
| P Inherited base | 40,000 | 42,000 | +5.0% | — | +155,826 | +155,826 | +2.4 |
| Total = ΔR | 6,547,968 | 5,818,872 | −11.1% | −729,096 | −11.1 |
The count chain: from demand to revenue
| Last period | This period | |
|---|---|---|
| New customers N = D × c | 20,000 | 20,160 |
| Returning K = P × r | 22,000 | 21,000 |
| Active A = N + K | 42,000 | 41,160 |
| Attempted X = A × f | 117,600 | 111,132.00 |
| Served T = X × s | 112,896 | 97,796.16 |
| Revenue R = T × v | 6,547,968.00 | 5,818,871.52 |
The tree: where did the riyal go?
Each branch lights up in proportion to its share of the change. Tap a branch to open its leaves, then a leaf to open its card. Keyboard: arrow keys to move, Enter to open.
Values under each branch are in thousands of riyals; the percentage is of the size of the change |ΔR|.
Capacity: demand came and was turned away
Did demand arrive that you could not serve?
s = served ÷ attempted transactions. What is not served because of throughput limits: the app paused 'due to high demand', rejected orders, cars that left the lane.
Its contribution: −537,371 · −73.7% |ΔR| · −8.2 pts
new −259,473 · returning −277,897
Where the evidence lives
- Minutes in 'busy' or paused mode on each platform, with the reason
- Orders rejected or cancelled by the restaurant, missed calls, cars that left the lane
- Peak utilization U = peak orders ÷ (V × H), delivery included, from POS and kitchen-screen timestamps (the Doctrine's D in that formula is peak demand, not the tree's D)
Leaves
The whole tree as a list
- ΔR Revenue is down
- 0 Step 0: Is the decline real? Does the decline survive once calendar, comparison, price, channel and data are corrected?
0.1 Calendar: compare Hijri with Hijri Finance · Not a marketing problem
Are you comparing Ramadan with Ramadan, Eid with Eid, payday week with payday week?
Evidence
- Weekly POS sales re-cut by Hijri weeks, with the count of Thursdays, Fridays and holidays in each period
The test
Re-run the comparison on matching Hijri weeks. The Hijri year is about 11 days shorter than the Gregorian year, so the same Gregorian month carries a different season each year. If the decline disappears, it was the calendar.
Diagnosis
A season moved; demand did not disappear.
Owner
Finance
First 30 days
Make the Hijri calendar the basis of every comparison report, and redraw the capacity and campaign plan on next season's waves.
What not to do
Do not launch a campaign to cure a week that was always going to be weaker.
Read more
0.2 Like-for-like: existing branches or new ones? Finance + Expansion · Not a marketing problem
Is the decline in branches open more than 12 months, or does the total mix old, new and closed branches?
Evidence
- Monthly sales per branch, with opening and closing dates and refurbishment closure days
- Delivery orders by customer address, to measure overlap between branch radii
The test
Build the bridge: group growth = new-branch sales − the like-for-like decline. Then split the like-for-like decline into what moved to the new branches (cannibalization) and what was genuinely lost.
Diagnosis
A group can grow while every branch in it declines, and a branch can decline because its sibling took its customers.
Owner
Finance + Expansion
First 30 days
A board report with three separate lines: like-for-like, new, and cannibalized. Re-measure cannibalization at months 3 and 6 after every opening.
What not to do
Do not celebrate group growth before you see the like-for-like line, and do not advertise your way out of a sibling's cannibalization.
Read more
0.3 Price: did what customers pay change, or what they take? Pricing + Finance · Not a marketing problem
Did the average ticket rise because prices rose, while the real basket shrank?
Evidence
- A same-item price index (current ÷ previous price, weighted by last period's quantities) from the POS
The test
Split the average ticket: v = price index × real basket. If the nominal ticket rose and the real basket fell, you are selling less at a higher price.
Diagnosis
The revenue line hides two opposite movements.
Owner
Pricing + Finance
First 30 days
Add a price line and a volume line to the monthly revenue report, and give every price change a date the results are read against.
What not to do
Do not read flat revenue after a price rise as flat demand.
Read more
0.4 Mix and channel: did the customer move from dine-in to the app? Finance · Not a marketing problem
Did revenue fall in the books because the same demand moved to a door that is booked at net settlement after commission?
Evidence
- Revenue and orders by door: dine-in, takeaway, aggregators, direct delivery, B2B
- Platform settlement statements, and how they are booked (gross or net)
The test
Compare total orders across all doors before revenue. If orders held and revenue fell, look at booking method and door mix before anything else.
Diagnosis
The customer did not leave. They changed doors.
Owner
Finance
First 30 days
Standardise booking: gross revenue before VAT for every door, with commission as a cost line. Then read contribution by channel.
What not to do
Do not punish the door your customer moved to, or reward the one they left.
Read more
0.5 Data: is the number itself right? Finance · Not a marketing problem
Does the POS reconcile with e-invoices, bank settlements and platform statements?
Evidence
- Count and value of simplified e-invoices from the e-invoicing system (Fatoora, ZATCA)
- Card and mada settlements, platform statements, voids and refunds log, and POS offline days
The test
Reconcile three sources per branch per week: POS, e-invoices and settlements. Any gap larger than usual is explained before it is discussed.
Diagnosis
Some declines are recording errors: menu codes changed, a branch moved between regions, or VAT counted inside the number one year and outside it the next.
Owner
Finance
First 30 days
One source of truth and one revenue definition: net sales before VAT and after discount.
What not to do
Do not call marketing into a meeting whose number has not been reconciled.
Read more
0.6 One-offs: was last year the odd one? Finance + Operations · Not a marketing problem
Did the comparison period hold a one-off: a large catering order, a launch spike, a competitor's closure, or road works outside the branch this year?
Evidence
- An events log per branch, large B2B orders, and days when access to the branch was disrupted
The test
Remove one-offs from both periods, then compare again.
Diagnosis
The base was inflated, or the road was blocked.
Owner
Finance + Operations
First 30 days
A standing events log per branch, updated weekly and attached to every comparison report.
What not to do
Do not judge a branch against a number made by an order that will not repeat.
- s Capacity: demand came and was turned away Did demand arrive that you could not serve?
s1 The peak is full (80% or more) Operations · Not a marketing problem
Does the branch run at 80% or more of its capacity in the peak hour, delivery included?
Evidence
- U = peak orders from all doors ÷ (orders the kitchen serves per hour × peak hours)
The test
Compute U for each branch and each peak window, and for the two Ramadan windows separately. At 80% or more, any fall in s, r or the rating is read first as capacity.
Diagnosis
The hall is full. The invitations worked; the chairs did not multiply.
Owner
Operations
First 30 days
Redirect demand to quieter hours, a nearby branch or pickup; narrow the peak delivery radius when a sister branch has room.
What not to do
At 80%, no new campaign before capacity is added or demand redirected. Above 100%, no campaign for that branch at all.
Read more
s2 The slowest station runs the branch Operations · Not a marketing problem
Where do orders pile up: the grill, the payment window, or the riders' shelf?
Evidence
- Per-station timestamps from the kitchen screen and POS, and a manual count every fifteen minutes on Thursday night
The test
The station with the longest queue in front and the shortest behind is the constraint. By Little's law, the queue = arrival rate × time in the system; a campaign raises the first, the constraint sets the second.
Diagnosis
The branch moves at the speed of its slowest station.
Owner
Operations
First 30 days
The five focusing steps: identify the constraint, exploit it fully, subordinate the other stations to it, elevate it, then look for the next one.
What not to do
Do not add staff or equipment at a station that is not the constraint.
Read more
s3 The app is paused at peak Operations · Not a marketing problem
How many minutes was the app paused 'due to high demand' over the last two Thursday nights?
Evidence
- Busy-mode and pause log on each platform, by minute and reason, with rejected orders
The test
Multiply paused minutes by the usual order rate in those minutes: that is the demand turned away. Compare it with what was spent to bring demand in the same week.
Diagnosis
The advertising knocks, and the app says: busy.
Owner
Operations
First 30 days
Set an order cap per window instead of a full pause, a separate riders' lane, and a visible expected time for the customer.
What not to do
Do not run paid visibility on a platform you are pausing in the same hour.
Read more
s4 Capacity on paper, not in the hour Operations · Not a marketing problem
Is the capacity there across the day, but not in the hour people come?
Evidence
- The shift roster against the hourly demand curve, with the two Ramadan windows (before iftar, around suhoor) separately
The test
If peak U is above 80% while the daily average is low, the problem is how hours are spread, not how big the team is.
Diagnosis
The team is big enough, but in the wrong hour.
Owner
Operations
First 30 days
Rebuild rosters on the Hijri demand curve, and decide automation versus hiring with one written rule.
What not to do
Do not staff for the daily average; the peak is what governs.
Read more
- c Conversion is down: they saw you and didn't buy Did they reach you and then choose someone else at the last moment?
c1 Price and value at the moment of choice Pricing · Not a marketing problem
Did the customer see your app price, hold it against the menu board they remember, and walk away?
Evidence
- Conversion by item and door before and after the price-change date
- The app-to-branch price gap on 'ruler' items, and direct competitors' prices
The test
Branches or platforms that changed price against those that did not, in the same weeks. If conversion fell only where price changed, it is price.
Diagnosis
Customers do not read your price. They compare it.
Owner
Pricing
First 30 days
Protect the ruler items, move channel cost into items and boxes designed for delivery, and name the gap where terms allow.
What not to do
Do not fix a price problem with a temporary offer; you teach the customer to wait for the discount.
Read more
c2 Not available at the moment of choice Operations · Not a marketing problem
Did the customer reach you and find the item sold out, the branch closed against its published hours, or the app offline for a reason unrelated to demand?
Evidence
- A sold-out log by hour, published vs actual hours, and pause reasons on each platform
The test
The tie-break rule: a pause because of order pressure goes to Capacity; every other pause or stock-out stays here. Then compare conversion in clean hours with disrupted hours.
Diagnosis
The door is shut, and the advertising is sending people to it.
Owner
Operations
First 30 days
Measure lost orders ÷ attempted orders for two weeks at the five highest-volume branches, and fix the top three stock-out causes.
What not to do
Do not raise spend to bring people to an item that is not there.
Read more
c3 Ordering is hard Product & menu + Operations · Not a marketing problem
Did the path from wanting to a paid order get longer: a long menu, failing payments, missing photos?
Evidence
- Steps and minutes from page open to payment, payment failure rate, abandoned baskets
The test
If conversion fell after an app, menu or payment update, and recovered where the update was rolled back, it is friction.
Diagnosis
The customer wanted it; the system wore them out.
Owner
Product & menu + Operations
First 30 days
Remove one step from the highest-volume path this month, and fix the top cause of payment failure.
What not to do
Do not drive more visits to a page people fall out of.
Read more
c4 Reviews and what people say Operations + Marketing · Shared; marketing is not the first owner
Did your rating fall, or complaints go unanswered, so people see you and hesitate?
Evidence
- Rating trend over the last 4 weeks on Google and each platform, complaints open more than 24 hours, and the most repeated reason
The test
Check whether the rating fell before conversion did. Then ask: is the most repeated complaint operational (lateness, wrong orders, cold food) or about communication (expectations, photos)?
Diagnosis
The rating is a symptom. The cause is usually in the kitchen; the reply is in marketing's hands.
Owner
Operations + Marketing
First 30 days
Operations fixes the most repeated cause; marketing answers every complaint within 24 hours.
What not to do
Do not buy reviews or bury complaints; the credibility of the reply matters more than the count of negatives.
Read more
- r Retention is down: they didn't come back at all How many of last period's customers did not buy from you even once this period?
r1 The service let them down Operations · Not a marketing problem
Are the customers who came on a bad night (lateness, wrong order, refund) the ones who did not return?
Evidence
- 90-day repeat by first-visit conditions: utilization that hour, wait time, and any error or refund
The test
Compare the return rate of two cohorts: first visit clean, versus first visit at a choked peak or with an error. The gap is the price of service.
Diagnosis
The campaign chose the night the customer met you, and it was your worst night.
Owner
Operations
First 30 days
Fix the top cause of errors and refunds, and contact every let-down customer within 24 hours.
What not to do
Do not buy new customers to replace the ones service drove away.
Read more
r2 A new competitor took them Product & menu + Marketing · Shared; marketing is not the first owner
Is the non-return concentrated in a trade area where a competitor opened?
Evidence
- Return rate by trade area, against a map of competitor openings and dates
The test
If return fell only in the competitor's trade area and held elsewhere, it is the competitor. If it fell everywhere, look at service or value.
Diagnosis
People tried the new option, and some stayed there.
Owner
Product & menu + Marketing
First 30 days
Identify what the competitor offers that you do not, and close the gap in the product before the message.
What not to do
Do not answer a competitor's opening with a citywide discount.
Read more
r3 They came for the discount and left with it Pricing + Marketing · Shared; marketing is not the first owner
Do customers acquired with a deep discount fail to return at full price?
Evidence
- 90-day return by first-visit discount depth and by door
The test
If deep-discount customers return clearly less than full-price customers through the same door, the discount bought a visit, not a customer.
Diagnosis
The value that attracted them was not yours. It was the discount's.
Owner
Pricing + Marketing
First 30 days
Redesign the acquisition offer to reward the second visit, not the first, and compute CAC payback on the cohort.
What not to do
Do not count discount customers as acquired before you see them return.
Read more
r4 The product changed from branch to branch Operations · Not a marketing problem
Do new branches fail to repeat the reference branches' experience, so customers try once and do not return?
Evidence
- Return rate by branch age against the reference cohort at the same age, and the Geographic Replication Index
The test
If weak return is concentrated in the latest opening wave, the system is not travelling.
Diagnosis
Branch 30 does not taste like branch 3.
Owner
Operations
First 30 days
Find what is not travelling (recipe, training, supplier) and fix it before the next wave.
What not to do
Do not open branch 31 before branch 30 performs like branch 3.
Read more
- f Frequency is down: your customers come less often Is the same active customer visiting fewer times?
f1 You lost one of their occasions Product & menu + Marketing · Shared; marketing is not the first owner
Do they still come to you for dinner, but no longer for lunch?
Evidence
- Visits per identified customer by daypart and occasion
The test
If frequency fell in one occasion and held in the rest, the problem is that occasion: its hours, its menu, or its speed.
Diagnosis
The customer did not leave you. They stopped hiring you for one job.
Owner
Product & menu + Marketing
First 30 days
Product fixes the offer for the lost occasion; then marketing ties it to its buying moment.
What not to do
Do not advertise an occasion whose offer you have not fixed.
Read more
f2 They now split their visits with someone else Marketing + Product & menu · Marketing problem
Is the same customer now giving a new competitor some of their visits?
Evidence
- Frequency decline by trade area, against competitor opening dates
- A short question to a customer sample: where else did you eat this week?
The test
Remember double jeopardy: smaller brands have fewer buyers who buy less often. If frequency fell alone while penetration held, that is a strong signal of a specific competitor in a specific trade area.
Diagnosis
They did not drop you. They started sharing you.
Owner
Marketing + Product & menu
First 30 days
In the affected trade areas only: remind people of the buying moments you win, and protect what makes your product different.
What not to do
Do not start a citywide price war with the new competitor.
Read more
f3 Coming back became tiring Operations + Product & menu · Not a marketing problem
Did repeat visits get harder: less parking, longer peak waits, a clumsy reorder in the app, a loyalty programme that ended?
Evidence
- Average peak wait, reorder steps, and the date of any loyalty programme change
The test
Compare identified customers' frequency before and after the change in affected branches against unaffected ones.
Diagnosis
The customer likes you, but the way to you got longer.
Owner
Operations + Product & menu
First 30 days
Remove the single biggest obstacle to the second visit this month.
What not to do
Do not give a come-back discount to a customer bothered by the journey, not the price.
Read more
f4 Price cut the visits Pricing · Not a marketing problem
After the price rise, does the same customer now come twice instead of three times?
Evidence
- Identified customers' frequency before and after the price-change date
The test
If frequency fell only where price changed, and the nominal ticket rose, the customer is spending their usual budget in fewer visits.
Diagnosis
The customer did not change their budget. They changed their number of visits.
Owner
Pricing
First 30 days
Judge the price rise on contribution, not on ticket, and revisit the ruler items first.
What not to do
Do not celebrate a higher ticket before you see frequency.
Read more
- v Average value is down Is each visit worth less?
v1 The mix traded down Product & menu + Pricing · Not a marketing problem
Did customers move to cheaper items or sizes, or to a daypart with a smaller ticket?
Evidence
- A price–volume–mix analysis from the POS, by item and daypart
The test
Hold prices at last period's level and recompute the ticket with today's mix. If it falls, the mix is the cause.
Diagnosis
The customer stayed, but picks cheaper.
Owner
Product & menu + Pricing
First 30 days
Re-engineer the menu: put high-contribution items where the eye lands, and design a middle meal between the cheapest and the dearest.
What not to do
Do not raise the cheap items' prices to compensate; you will speed up the exit.
Read more
v2 The discount became the price Marketing + Finance · Marketing problem
Has the share of discounted orders risen until full price is the exception?
Evidence
- The discounted share of each door's orders and its trend, and brand-funded discount from platform statements
- The increment ratio in the latest holdout test
The test
If the discounted share rises while the increment ratio falls, you are subsidising a habit, not building demand. Switch the offer off in half the pairs and measure what remains.
Diagnosis
Here marketing is not the cure; it is the cause.
Owner
Marketing + Finance
First 30 days
No offer without a pre-set increment test, and an exit test on the recurring offers this month.
What not to do
Do not read an offer on before-and-after, and do not stop every offer at once.
Read more
- Doctrine
- Channel Ledger
- Lexicon
v3 The basket shrank Operations + Product & menu · Not a marketing problem
Are there fewer items per ticket: fewer drinks, fewer sides, broken combos?
Evidence
- Items per ticket and drink and side attach rates, by branch and shift
The test
If the drop is concentrated in certain shifts or branches, it is counter behaviour or combo design, not a customer decision.
Diagnosis
It was not offered, so it was not bought.
Owner
Operations + Product & menu
First 30 days
One suggestion line at the counter and in the app, a combo designed for attachment, and a daily attach-rate check.
What not to do
Do not turn the suggestion into pressure; one suggestion is enough.
Read more
v4 The door changed the ticket Finance + Pricing · Not a marketing problem
Did orders move to a door with a smaller ticket or less left over, with the same customer?
Evidence
- Average ticket and contribution per order by door
The test
Compute the ticket for each door separately. If it held within every door and the total average fell, it is the mix between doors.
Diagnosis
The ticket did not shrink; the door changed.
Owner
Finance + Pricing
First 30 days
Price each door to its cost within the terms, and design delivery boxes and baskets that carry its cost.
What not to do
Do not grow a door whose contribution you do not know.
Read more
- D Demand reaching you is down Are fewer new people putting you among their options?
D1 The market itself shrank Finance + Operations · Not a marketing problem
Did the whole category fall in your city, not just you?
Evidence
- SAMA's weekly point-of-sale data for restaurants and cafés by city (card-terminal payments only; not cash or in-app payments)
The test
Compare your like-for-like growth with the sector's growth in your city for the same Hijri weeks. If you fell as much as the market, your share held.
Diagnosis
The tide went out; the boat held its place.
Owner
Finance + Operations
First 30 days
Reset costs, rosters and stock to the new market size, protect margin, and send the next riyal to the occasions still growing.
What not to do
Do not buy share with discounts in a shrinking market; you pay the discount on every order that was coming anyway.
Read more
D2 You lost share of mind Marketing · Marketing problem
When the family group asks 'where shall we go?', does your name come up less often?
Evidence
- A small monthly sample: which brand they name first for each buying moment (after isha, lunch, unexpected guests)
- Branded search and Google profile views, against the market's trend
- Competitor openings in your trade area
The test
Three conditions together: the market is flat or growing, your share is falling, and conversion and capacity are sound. If any condition fails, the problem is elsewhere.
Diagnosis
People did not reject you. They forgot you.
Owner
Marketing
First 30 days
Name the three biggest buying moments in your category, tie your name to them with consistent distinctive assets, and aim reach at those moments, not at follower counts.
What not to do
Do not measure success in followers, and do not manage average CAC; watch the marginal one.
Read more
D3 You became harder to reach Operations + Expansion · Not a marketing problem
Did you become harder to find or reach: a narrower delivery radius, shorter hours, a lower app ranking, a blocked road?
Evidence
- Actual visible hours on each platform × delivery radius in km
- Published branch data (hours, location, menu) on Google, the apps and AI assistants
- In FMCG: numeric and weighted distribution from the retail audit
The test
Match the date demand fell with the date of any change in visibility, radius, hours or distribution.
Diagnosis
People look for you and cannot find the way.
Owner
Operations + Expansion
First 30 days
Restore hours and radius where capacity allows, correct the branch data on every platform, and give it one owner.
What not to do
Do not compensate with advertising for a door you closed yourself.
Read more
D4 The occasion shifted Product & menu + Operations · Not a marketing problem
After the calendar is corrected, did demand move from one occasion to another: late night to lunch, the dining room to the home?
Evidence
- Sales by daypart and door, on matching Hijri weeks
The test
If one daypart fell and another grew by about the same, it is an occasion migration, not a demand loss.
Diagnosis
The same customer, with a different job to do.
Owner
Product & menu + Operations
First 30 days
Redesign menu, rosters and format around the rising occasion.
What not to do
Do not push an occasion whose time has passed with advertising.
Read more
- P The inherited base How many active customers did you inherit from last period?
- 0 Step 0: Is the decline real? Does the decline survive once calendar, comparison, price, channel and data are corrected?
Diagnosis order: from the door to the street
Start inside. A shut door distorts every number after it: turned-away demand lowers conversion, a bad experience lowers return, and low return is misread as weak demand.
Is the decline real?
The decline is real (verdict 3)
Was demand turned away at the door? Open firstLargest leak
Fell: −537,371
Were the item, the branch and the app available?
Fell: −121,734
Did price change?
Fell: −121,734 · Price index +6.0%
Did the experience let people down, so they did not return?
Fell: −304,402
Do those who stayed come less often?
Fell: −224,602
Did the ticket shrink, and why?
Did not fall: +157,690
Only now: are fewer people reaching you?
Did not fall: +145,495
Is it a marketing problem?
The answer is "yes" when four conditions hold together. Some are read from your numbers; you confirm the rest.
Peak orders from all doors ÷ (orders the kitchen serves per hour × peak hours).
Compute it: peak orders, capacity per hour V, peak hours H
For example +3 or −2. From an external market source, not your own numbers.
1. The decline is real after Step 0 Holds
- Revenue fell −729,096 (−11.1%).
- Step 0 verdict: the decline remains and exceeds the usual variation.
2. The door is sound: peak utilization below 80%, and no pause or stock-out explains the decline Fails
- Service rate fell from 96% to 88%: demand came and was turned away ( −537,371).
- Enter peak utilization U to know.
- Confirm: does a pause or stock-out explain the decline?
3. Price and experience are sound: no price change in the timing, and rating and return are holding Fails
- Price changed in the timing (+6.0%).
- Return rate fell from 55.0% to 50% ( −304,402).
- Confirm: is the rating holding?
4. Your share is falling while the market holds or grows: people are reaching someone else Fails
- Demand reaching you (D) did not fall (80,000 → 84,000, +5.0%): people are reaching you.
No. This is not a marketing problem.
The cure starts in .
A new campaign would lift D and push demand at a door that cannot hold it, so s would fall further, and r after it.
There is one leaf where marketing is the cause, not the cure: v2 · The discount became the price. There, the fix is for marketing to stop something, not start something.
The map of leaves
3 Marketing problem
4 Shared; marketing is not the first owner
17 Not a marketing problem
3 of 24 leaves are marketing's to own; 4 are shared, with marketing not the first owner; 17 belong to operations, pricing, product, finance or expansion.
That is a count of the map's leaves, not a survey of companies. But it says something: there are far more ways for revenue to leak than there are ways for advertising to fix it.
3 The board memo
A three-line memo: the verdict, the owner, and the decision. A draft to review in the 60-minute session, not a substitute for it.
Revenue is down · Does the company even have a marketing problem? │ ├─ 0 · Is the decline real? │ ├─ 0.1 Calendar: compare Hijri with Hijri │ ├─ 0.2 Like-for-like: existing branches or new ones? │ ├─ 0.3 Price: did what customers pay change, or what they take? │ ├─ 0.4 Mix and channel: did the customer move from dine-in to the app? │ ├─ 0.5 Data: is the number itself right? │ ├─ 0.6 One-offs: was last year the odd one? │ ├─ s · Capacity: demand came and was turned away │ ├─ ○ s1 The peak is full (80% or more) [Operations] │ ├─ ○ s2 The slowest station runs the branch [Operations] │ ├─ ○ s3 The app is paused at peak [Operations] │ ├─ ○ s4 Capacity on paper, not in the hour [Operations] │ ├─ c · Conversion is down: they saw you and didn't buy │ ├─ ○ c1 Price and value at the moment of choice [Pricing] │ ├─ ○ c2 Not available at the moment of choice [Operations] │ ├─ ○ c3 Ordering is hard [Product & menu] │ ├─ ◐ c4 Reviews and what people say [Operations] │ ├─ r · Retention is down: they didn't come back at all │ ├─ ○ r1 The service let them down [Operations] │ ├─ ◐ r2 A new competitor took them [Product & menu] │ ├─ ◐ r3 They came for the discount and left with it [Pricing] │ ├─ ○ r4 The product changed from branch to branch [Operations] │ ├─ f · Frequency is down: your customers come less often │ ├─ ◐ f1 You lost one of their occasions [Product & menu] │ ├─ ● f2 They now split their visits with someone else [Marketing] │ ├─ ○ f3 Coming back became tiring [Operations] │ ├─ ○ f4 Price cut the visits [Pricing] │ ├─ v · Average value is down │ ├─ ○ v1 The mix traded down [Product & menu] │ ├─ ● v2 The discount became the price [Marketing] │ ├─ ○ v3 The basket shrank [Operations] │ ├─ ○ v4 The door changed the ticket [Finance] │ ├─ D · Demand reaching you is down │ ├─ ○ D1 The market itself shrank [Finance] │ ├─ ● D2 You lost share of mind [Marketing] │ ├─ ○ D3 You became harder to reach [Operations] │ ├─ ○ D4 The occasion shifted [Product & menu] │ └─ P · The inherited base ● marketing ◐ shared ○ not marketing [first owner]
Where the ideas come from
Nothing here is new except the Saudi reading. Breaking one large number into multiplied drivers goes back to the DuPont company around 1914, when return was split into margin × turnover; the formula is usually credited to F. Donaldson Brown, and it is one of the earliest "driver trees" in management.4 The rule that branches must not overlap and must cover every possibility (MECE) comes from Barbara Minto at McKinsey and her book The Pyramid Principle.5 Residual-free logarithmic decomposition is borrowed from energy economics, from the work of B. W. Ang.3 Penetration, frequency and double jeopardy come from Andrew Ehrenberg and colleagues;2 mental and physical availability from Byron Sharp and the Ehrenberg-Bass Institute;6 category entry points from Jenni Romaniuk and Byron Sharp.7 Measuring penetration, frequency, spend per trip and price is the language of consumer panels such as Kantar's.8 The arithmetic of the queue is John Little's;9 waiting that multiplies near full capacity is John Kingman's;10 the slowest station is Eliyahu Goldratt's.11 That the reasons customers leave show a company where it falls short is Frederick Reichheld and Earl Sasser's.12 And that a customer who cannot find an item buys it elsewhere, substitutes, delays or gives up comes from Gruen, Corsten and Bharadwaj.13
I have only arranged them into one tree, and read them in a drive-thru line after isha, in payday week, and in Ramadan's two peaks.
What to do this week
- Isolate like-for-like: restate revenue for branches open more than 12 months, on the same Hijri weeks as last year.
- Reconcile the number: POS against e-invoices against settlements, for the five largest branches.
- Count the shut door: paused app minutes and rejected orders over the last two Thursday nights, and U for the peak window.
- Separate price from basket: a same-item price index, then the real basket.
- Hold any new campaign until these four steps are done.
Cite this
English
Alhajj, S. (2026). The Growth Diagnosis Tree (RE-FG1 1.0). seiflden.com. https://seiflden.com/library/growth-tree/
Arabic
الحاج، سيف الدين (2026). «شجرة تشخيص النمو» (RE-FG1 1.0). seiflden.com. https://seiflden.com/ar/library/growth-tree/
Appendices
Companion pages to this paper; read them with it, not instead of it.
Sources and notes
Redseer, on Keeta reaching about 10% of Saudi food-delivery market share by volume within five months of launch. redseer.com/articles/keeta-has-gained-10-market-share-in-… (opens in a new tab)
G. J. Goodhardt, A. S. C. Ehrenberg & C. Chatfield, "The Dirichlet: A Comprehensive Model of Buying Behaviour", Journal of the Royal Statistical Society, Series A 147(5), 1984, pp. 621–643, doi.org/10.2307/2981696 (opens in a new tab) ; A. S. C. Ehrenberg, G. J. Goodhardt & T. P. Barwise, "Double Jeopardy Revisited", Journal of Marketing 54(3), 1990. journals.sagepub.com/doi/10.1177/002224299005400307 (opens in a new tab) ; Ehrenberg-Bass Institute on the double jeopardy law: marketingscience.info/news-and-insights/what-causes-the-d… (opens in a new tab) 12
B. W. Ang, "The LMDI approach to decomposition analysis: a practical guide", Energy Policy 33(7), 2005, pp. 867–871. doi.org/10.1016/j.enpol.2003.10.010 (opens in a new tab) 12
DuPont analysis: attributed to the DuPont company around 1914; the formula is usually credited to F. Donaldson Brown. en.wikipedia.org/wiki/DuPont_analysis (opens in a new tab)
Barbara Minto, The Pyramid Principle: Logic in Writing and Thinking; and her McKinsey alumni interview on MECE: mckinsey.com/alumni/news-and-events/global-news/alumni-ne… (opens in a new tab)
Byron Sharp, How Brands Grow, Oxford University Press, 2010 (Ehrenberg-Bass Institute). 12
Jenni Romaniuk & Byron Sharp, How Brands Grow Part 2, Oxford University Press. marketingscience.info/how-brands-grow-part-2-revised/ (opens in a new tab)
Kantar Worldpanel, penetration and consumer choices in Brand Footprint. kantar.com/uki/campaigns/2022-wp-brand-footprint/home/cop… (opens in a new tab)
John D. C. Little, "A Proof for the Queuing Formula: L = λW", Operations Research 9(3), 1961, pp. 383–387. doi.org/10.1287/opre.9.3.383 (opens in a new tab)
J. F. C. Kingman, "The single server queue in heavy traffic", Mathematical Proceedings of the Cambridge Philosophical Society 57(4), 1961, pp. 902–904. doi.org/10.1017/S0305004100036094 (opens in a new tab)
Eliyahu M. Goldratt & Jeff Cox, The Goal: A Process of Ongoing Improvement, North River Press, 1984.
Frederick F. Reichheld & W. Earl Sasser Jr., "Zero Defections: Quality Comes to Services", Harvard Business Review 68(5), 1990, pp. 105–111. hbr.org/1990/09/zero-defections-quality-comes-to-services (opens in a new tab)
Thomas W. Gruen, Daniel S. Corsten & Sundar Bharadwaj, Retail Out-of-Stocks: A Worldwide Examination of Extent, Causes and Consumer Responses, Grocery Manufacturers of America, 2002. supplychain247.com/images/pdfs/GMA_2002_Worldwide_OOS_Stu… (opens in a new tab)