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

ReaderPathTime
CEO§2 The method in one page → §8 The verdict → §10 The one-page tree10 minutes
CFO§3 The identity → §4 What each number cost → §5 Step 030 minutes
COO§6 The tree, starting with Capacity → §7 Signatures20 minutes
CRO and marketing§6 → §8 When the answer is "yes, marketing"20 minutes
Board§2 → §9 The 60-minute session10 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

  1. Before you ask "how do we sell more?", ask "where did the revenue go?"
  2. Revenue is not one number. It is six numbers multiplied together, and each has an owner.
  3. 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.
  4. 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.
  5. One cause leaves prints on more than one branch. Read the signature before you rule.
  6. 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.
  7. 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:

SymbolNameDefinitionThe question
DDemand reaching youPeople new to the brand who reached you in the periodAre new people reaching you?
cConversionNew customers ÷ DDid those who reached you buy?
PInherited baseLast period's active customersHow many customers did you inherit?
rReturn rateKnown customers who bought this period ÷ PDid they come back?
fFrequencyAttempted transactions ÷ active customersHow often did they come?
sService rate (capacity)Served transactions ÷ attempted transactionsDid you serve them when they came?
vAverage valueNet sales before VAT and after discount ÷ served transactionsWhat 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:

  1. 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.
  2. 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".
  3. 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.
  4. 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:

NumberMetricSource
RNet sales before VATPOS, reconciled with e-invoices, card settlements and platform statements
DStore-page visits, Google profile views, entriesDelivery platforms' merchant dashboards, Google Business Profile, door counters
cOpened the page then ordered; walked in then paidPlatform dashboard conversion paths; counters with POS
P, rIdentified customers and their returnLoyalty programme, app accounts, phone numbers in direct delivery, returning-customer metrics in platform dashboards
fVisits per identified customerThe same sources, with the identification rate beside them
sPaused minutes, rejected orders, cars that left the lanePlatform logs, kitchen screen, a manual peak count
vAverage ticket and items per ticketPOS, 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 yearThis yearChange
Demand reaching you D80,00084,000+5%
Conversion c25%24%
New customers D × c20,00020,160
Inherited base P40,00042,000
Return rate r55%50%
Returning P × r22,00021,000
Frequency f2.82.7
Service rate s96%88%
Average value v (SAR)58.059.5
Revenue R (SAR)6,547,9685,818,872−729,096 (−11.1%)

Decomposition in riyals (rounded to the nearest thousand, and in points of last year's revenue):

NumberContributionPoints
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:

  1. The decline disappeared: not a problem. Record the reason, and launch nothing.
  2. 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.
  3. 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:

  1. Is the decline real? → Step 0: Is the decline real?
  2. Was demand turned away at the door? → s · Capacity: demand came and was turned away
  3. Were the item, the branch and the app available? → c2 · Not available at the moment of choice
  4. Did price change? → c1 · Price and value at the moment of choice
  5. Did the experience let people down, so they did not return? → r · Retention is down: they didn't come back at all
  6. Do those who stayed come less often? → f · Frequency is down: your customers come less often
  7. Did the ticket shrink, and why? → v · Average value is down
  8. 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:

CauseSignature across branchesLeaves
A capacity crunchs falls at peak, then r falls for cohorts met on crowded nights, then the rating, then c.s1 · r1 · c4
A price riseNominal v rises, the real basket falls, and c and f fall only where price changed.c1 · f4 · v1
Discount addictionThe discounted share rises, v falls, f rises during the offer, then r falls after it.v2 · r3
A new competitorIn one trade area: D falls against the market, f falls, r falls. Outside it, everything holds.D2 · f2 · r2
A brand being forgottenD falls against the market in every trade area, while c, s and f hold.D2
A system that does not travelr 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

LeafOwnerVerdict
D2 · You lost share of mindMarketing● Marketing problem
v2 · The discount became the priceMarketing + Finance● Marketing problem
f2 · They now split their visits with someone elseMarketing + Product & menu● Marketing problem
c4 · Reviews and what people sayOperations + Marketing◐ Shared; marketing is not the first owner
f1 · You lost one of their occasionsProduct & menu + Marketing◐ Shared; marketing is not the first owner
r2 · A new competitor took themProduct & menu + Marketing◐ Shared; marketing is not the first owner
r3 · They came for the discount and left with itPricing + Marketing◐ Shared; marketing is not the first owner
D1 · The market itself shrankFinance + Operations○ Not a marketing problem
D3 · You became harder to reachOperations + Expansion○ Not a marketing problem
D4 · The occasion shiftedProduct & menu + Operations○ Not a marketing problem
c1 · Price and value at the moment of choicePricing○ Not a marketing problem
c2 · Not available at the moment of choiceOperations○ Not a marketing problem
c3 · Ordering is hardProduct & menu + Operations○ Not a marketing problem
v1 · The mix traded downProduct & menu + Pricing○ Not a marketing problem
v3 · The basket shrankOperations + Product & menu○ Not a marketing problem
v4 · The door changed the ticketFinance + Pricing○ Not a marketing problem
f3 · Coming back became tiringOperations + Product & menu○ Not a marketing problem
f4 · Price cut the visitsPricing○ Not a marketing problem
r1 · The service let them downOperations○ Not a marketing problem
r4 · The product changed from branch to branchOperations○ Not a marketing problem
s1 · The peak is full (80% or more)Operations○ Not a marketing problem
s2 · The slowest station runs the branchOperations○ Not a marketing problem
s3 · The app is paused at peakOperations○ Not a marketing problem
s4 · Capacity on paper, not in the hourOperations○ Not a marketing problem

When the answer is "yes, marketing"

The answer is "yes" when four conditions hold together:

  1. The decline is real after Step 0.
  2. The door is sound: peak utilization below 80%, and no pause or stock-out explains the decline.
  3. Price and experience are sound: no price change in the timing, and rating and return are holding.
  4. 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

MinutesItemPresented byThe question it closes
0–5The number: like-for-like, Hijri-aligned, and the Step 0 verdictCFOIs the decline real?
5–15The decomposition: how many riyals each number tookCFOWhich door did the riyal leave through?
15–35The two largest branches, leaf by leaf, from the door to the streetThe leaf owners: operations, pricing, revenueWhat is the evidence, and what did the test show?
35–45Signatures and verdictCEOMarketing, shared or not marketing? And who is the one owner?
45–55The first 30 days, the "do not" list, and the effect on the next riyalThe ownersWhat do we start, what do we stop, and where does the money go?
55–60The record: owner, metric, test date, review dateSecretaryWhen will we know we were right?

Session rules

  1. Marketing speaks last. Not to diminish it, but because its leaf is last in the diagnosis order.
  2. A leaf with two owners has none. One first owner is named; the rest support.
  3. No campaign is approved in this session for a branch at 80% or more peak utilization (Doctrine: Principle 3).
  4. 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

  1. Are you comparing Ramadan with Ramadan, Eid with Eid, payday week with payday week?

    Checked and corrected

    How to check
    1. Evidence
      • Weekly POS sales re-cut by Hijri weeks, with the count of Thursdays, Fridays and holidays in each period
    2. 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.

    3. Diagnosis

      A season moved; demand did not disappear.

    4. Owner

      Finance

    5. 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.

    6. What not to do

      Do not launch a campaign to cure a week that was always going to be weaker.

  2. 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
    1. 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
    2. 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.

    3. Diagnosis

      A group can grow while every branch in it declines, and a branch can decline because its sibling took its customers.

    4. Owner

      Finance + Expansion

    5. 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.

    6. 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.

    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.

  3. Did the average ticket rise because prices rose, while the real basket shrank?

    Checked and corrected

    How to check
    1. Evidence
      • A same-item price index (current ÷ previous price, weighted by last period's quantities) from the POS
    2. 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.

    3. Diagnosis

      The revenue line hides two opposite movements.

    4. Owner

      Pricing + Finance

    5. 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.

    6. What not to do

      Do not read flat revenue after a price rise as flat demand.

  4. 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
    1. Evidence
      • Revenue and orders by door: dine-in, takeaway, aggregators, direct delivery, B2B
      • Platform settlement statements, and how they are booked (gross or net)
    2. 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.

    3. Diagnosis

      The customer did not leave. They changed doors.

    4. Owner

      Finance

    5. First 30 days

      Standardise booking: gross revenue before VAT for every door, with commission as a cost line. Then read contribution by channel.

    6. What not to do

      Do not punish the door your customer moved to, or reward the one they left.

  5. Does the POS reconcile with e-invoices, bank settlements and platform statements?

    Checked and corrected

    How to check
    1. 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
    2. 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.

    3. 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.

    4. Owner

      Finance

    5. First 30 days

      One source of truth and one revenue definition: net sales before VAT and after discount.

    6. What not to do

      Do not call marketing into a meeting whose number has not been reconciled.

  6. 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
    1. Evidence
      • An events log per branch, large B2B orders, and days when access to the branch was disrupted
    2. The test

      Remove one-offs from both periods, then compare again.

    3. Diagnosis

      The base was inflated, or the road was blocked.

    4. Owner

      Finance + Operations

    5. First 30 days

      A standing events log per branch, updated weekly and attached to every comparison report.

    6. What not to do

      Do not judge a branch against a number made by an order that will not repeat.

The Step 0 verdict

After the six filters, one of three verdicts remains:

The group computes its usual variation from its own history, not from a general figure.

1 Your numbers: two like-for-like periods

Like-for-like branches only (open more than 12 months), the same period on the Hijri calendar (a Hijri quarter, for example), this year against last.

Identity variant
Illustrative example

The prefilled numbers are the method's illustrative example, not a client's figures or a market average.

Demand reaching youpeople
Last period

This period

+5.0%
Where does this number come from?

People new to the brand who reached you in the period. Source: store-page visits in delivery apps' merchant dashboards, Google Business Profile views, door counters.

Conversion%
Last period

This period

−4.0%
Where does this number come from?

New customers ÷ D: opened the page then ordered; walked in then paid. Source: conversion paths in the apps' dashboards; counters with POS.

Inherited basecustomers
Last period

This period

+5.0%
Where does this number come from?

Last period's active identified customers. Source: loyalty IDs, app accounts, phone numbers in direct delivery.

Return rate%
Last period

This period

−9.1%
Where does this number come from?

Known customers who bought this period ÷ P, including those returning after a lapse. Source: loyalty programme, app accounts, returning-customer metrics in platform dashboards, with the identification rate beside it.

Frequencytimes
Last period

This period

−3.6%
Where does this number come from?

Attempted transactions ÷ active customers (new + returning). Same sources, with the identification rate beside it.

Service rate (capacity)%
Last period

This period

−8.3%
Where does this number come from?

Served ÷ attempted. Attempted = served + rejected or cancelled + (minutes paused 'due to high demand' × the usual order rate) + cars that left the lane + missed calls at peak. Source: platform logs, kitchen screen, a manual peak count.

Average valueSAR
Last period

This period

+2.6%
Where does this number come from?

Net sales before VAT, after discount ÷ served transactions. Source: POS, reconciled with ZATCA e-invoices (Fatoora), card settlements and platform statements.

Current ÷ previous price, weighted by last period's quantities, from the POS. 1.06 means prices rose 6%. Splits average value into price and real basket.

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.

What each number costFrom 6,547,968 to 5,818,872 SAR. Change −729,096. Capacity (s) −537,371; Conversion (c) −121,734; Return rate (r) −304,402; Frequency (f) −224,602; Average value (v) +157,690; Demand reaching you (D) +145,495; Inherited base (P) +155,826.−1,000k−500k0kAxis: change from last period's revenueR₀Last period6,547,968sCapacity−537,371 · −8.2cConversion−121,734 · −1.9rReturn rate−304,402 · −4.6fFrequency−224,602 · −3.4vAverage value+157,690 · +2.4DDemand reaching you+145,495 · +2.2PInherited base+155,826 · +2.4ΔRChange · R₁ 5,818,872−729,096 · −11.1
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
Decomposition in riyals, from the door to the street · Illustrative example
NumberLastThisChangeNewReturningContributionPoints
s Capacity96%88%−8.3%−259,473−277,897−537,371−8.2
c Conversion25%24%−4.0%−121,734—−121,734−1.9
r Return rate55.0%50%−9.1%—−304,402−304,402−4.6
f Frequency2.82.7−3.6%−108,451−116,151−224,602−3.4
v Average value5859.5+2.6%+76,142+81,548+157,690+2.4
D Demand reaching you80,00084,000+5.0%+145,495—+145,495+2.2
P Inherited base40,00042,000+5.0%—+155,826+155,826+2.4
Total = ΔR6,547,9685,818,872−11.1%−729,096−11.1
The count chain: from demand to revenue
Last periodThis period
New customers N = D × c20,00020,160
Returning K = P × r22,00021,000
Active A = N + K42,00041,160
Attempted X = A × f117,600111,132.00
Served T = X × s112,89697,796.16
Revenue R = T × v6,547,968.005,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|.

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.

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
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.

  1. Is the decline real?

    The decline is real (verdict 3)

  2. Was demand turned away at the door? Open firstLargest leak

    Fell: −537,371

  3. Were the item, the branch and the app available?

    Fell: −121,734

  4. Did price change?

    Fell: −121,734 · Price index +6.0%

  5. Did the experience let people down, so they did not return?

    Fell: −304,402

  6. Do those who stayed come less often?

    Fell: −224,602

  7. Did the ticket shrink, and why?

    Did not fall: +157,690

  8. 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
Does a pause or stock-out explain the decline?
Is the rating holding?

For example +3 or −2. From an external market source, not your own numbers.

  1. 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. 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. 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. 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.

The full method; the arithmetic is published and verified by a script (54 checks). Logarithmic decomposition: B. W. Ang (2005). The identity is not an estimate; it is a set of definitions, so it always holds.

All numbers in examples are illustrative (hypothetical). No client, market or platform figures; the only external market figure in the method is Keeta's ~10% of order volume within months of entering in late 2024 (Redseer).

Version 1.0 · October 2026 · Prototype · Seifelden Alhajj / سيف الدين الحاج

To draw your group's tree together, book a 30-minute Scale Review →

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

  1. Isolate like-for-like: restate revenue for branches open more than 12 months, on the same Hijri weeks as last year.
  2. Reconcile the number: POS against e-invoices against settlements, for the five largest branches.
  3. Count the shut door: paused app minutes and rejected orders over the last two Thursday nights, and U for the peak window.
  4. Separate price from basket: a same-item price index, then the real basket.
  5. Hold any new campaign until these four steps are done.

Cite this

Code: RE-FG1 1.0What changed

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

  1. 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)

  2. 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

  3. 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

  4. 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)

  5. 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)

  6. Byron Sharp, How Brands Grow, Oxford University Press, 2010 (Ehrenberg-Bass Institute). 12

  7. 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)

  8. Kantar Worldpanel, penetration and consumer choices in Brand Footprint. kantar.com/uki/campaigns/2022-wp-brand-footprint/home/cop… (opens in a new tab)

  9. 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)

  10. 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)

  11. Eliyahu M. Goldratt & Jeff Cox, The Goal: A Process of Ongoing Improvement, North River Press, 1984.

  12. 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)

  13. 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)