Calibrating · MarginLab
Pricing intelligence · independent cafés

Every café leaves
money on the table.We tell you exactly where it's hiding — and what to do Monday.

MarginLab is a pricing engine for independent cafés. It shows what every GoFood and GrabFood order really leaves you, prices your menu with a demand model calibrated to your own sales, and rounds to prices that feel right — distilled into one decision you can act on this week.

0%
GoFood's real cut on a Rp 15.000 item
0 checks
automated tests the engine passes
0+ items
per audit, Bahasa & English
Scroll
Delivery margin auditSettlement reconciliationCalibrated demand modelSwitchback price testsPsychology thresholdsCharm endingsRole-aware guardrailsCompetitor positioning Delivery margin auditSettlement reconciliationCalibrated demand modelSwitchback price testsPsychology thresholdsCharm endingsRole-aware guardrailsCompetitor positioning
01 — The premise

Most cafés set prices by feel, copy the shop next door, and never revisit it. The margin you're missing is already on the menu.

A few cents in the wrong place compounds across thousands of cups a month. The fix isn't raising everything — it's knowing which item can take a lift, which must stay a magnet, and where a number ending changes how a price feels without changing what it earns.

Priced by intuition

Owners price from gut and competitor-glancing. Intuition is good at flavour, blind to elasticity.

Frozen for years

Costs drift up; prices don't. Margin quietly erodes one invoice at a time.

Left on the table

The gap between the price you charge and the price the math supports — that's MarginLab's entire job.


02 — The engine

Not a guess. A model — and a test to check it.

The same logic behind the screen we turn around to clients. Eight passes turn a raw menu, its costs and a month of sales into a defensible price for every item — at the counter and on the apps.

i. Calibrated demand

How sensitive is each item to price?

We calibrate a nested-logit demand model so that, at today's prices, it reproduces your actual sales item by item. Items that substitute for each other sit in the same nest, so a move on one shows up in the other.

One café's sales can't reveal price sensitivity on their own, so the engine starts from published research, says so, and shows the whole range — then a short price test (pass vii) measures it.

ε = elasticity  →  the band, until a test measures it
Demand curve · "Latte"ε = −1.50 · plausible band
ii. Lerner-optimal markup

The price that maximises profit, exactly.

For one item on its own, microeconomics hands us the answer: the Lerner rule sets the markup over cost from elasticity alone. The engine goes further and solves every price together, because raising one item moves guests to its neighbours.

The optimiser walks the curve and lands on its summit. Too cheap leaves margin behind; too dear sheds more cups than the price makes up for. We find the top.

P* = c · |ε| / (|ε| − 1)
Profit vs price · "Latte"peak → €4.20
iii. Stress-tested moves

We move as far as the data earns.

A textbook optimum from thin data is a liability. So every recommendation is re-run with price sensitivity anywhere from ×0.3 to ×2, and a move that only pays under one assumption is cut back or held.

It's the difference between a model that's right on paper and advice that's safe to act on.

How much of the move survivesrobust / partly / held
iv. Role-aware guardrails

An anchor and a magnet aren't priced the same way.

Every item plays a role on your menu. A Traffic Driver earns its keep by pulling people in — it stays cheap on purpose. A Premium Anchor can stretch. We cap each item's allowed movement to its job.

No recommendation ever pushes a magnet out of reach or holds an anchor below its worth.

Allowed price movement by roleguardrail bands
v. Psychology & charm endings

The same money, in a number that feels right.

€4.00 and €3.95 earn nearly the same, but read very differently. We round each optimum to a psychologically tuned ending and keep it clear of barrier prices — the round numbers that make a guest hesitate.

Thresholds are currency-aware: charm endings for euros, clean breaks for rupiah, never tripping a customer over a mental line.

Raw optimum → charmed pricebarrier-aware
vi. Menu-engineering quadrants

Every item, placed on the map.

Popularity against profitability sorts the menu into four well-known camps: Stars to protect, Plowhorses to quietly firm up, Puzzles to reposition, and Dogs to fix or cut.

The quadrant tells you not just what to price, but where to spend your attention. Hover any point.

Popularity × margin12 menu items
vii. Sensitivity analysis

Which assumption actually moves the answer?

Before we hand over a number, we shake it: price sensitivity, the share of app orders that are new customers, costs and commissions — so you know which figures are load-bearing and which are noise.

Then we measure the biggest one. A two-week switchback test on GoFood (one price this week, the other the next — reversible in seconds) replaces the assumption with what your customers actually did.

Impact on monthly uplift · ±20%tornado
viii. Competitor positioning

Optimal, but never out of step.

The math is calibrated against the street. We plot where your current and recommended prices sit among the cafés around you — unlimited comparison points, not a fixed three — so a move is profit-optimal and defensible to a regular.

The goal is the sweet spot: the most your menu can earn without ever looking expensive.

Market position · "Latte"7 nearby cafés
03 — Worked example

One item, start to finish.

An illustrative Latte, computed by hand. Watch a single price travel through the passes.

i

Calibrate elasticity

Demand reproduces today's 315 cups; sensitivity starts at ε = −1.50 until a test measures it.

ii

Find the optimum

Marginal cost €1.40 → P* = 1.40 · 1.5/0.5 = €4.20.

iii

Shrink the move

€3.80 → €4.20 is +€0.40. Apply confidence → a measured +€0.20.

iv

Check the role cap

"Core" item, band −3%…+9%. A +5.3% move sits well inside.

v

Charm the ending

€4.00 holds — clean, below the next barrier, no friction.

vi–viii

Place, stress-test, position

A "Star". Uplift survives ±20%. Sits mid-pack vs 7 neighbours.

◦ Illustrative example
€3.80 → €4.00

A twenty-cent move, fully defensible — and that's before a single other item is touched.

+€0/mo
added margin · this item
+0%
price · −7% volume
0%
gross margin at P*
€0/yr
annualised · one line

The audit does this for every item at once, on the counter and on every delivery app — and a price test confirms it before you commit.

04 — The Lab

Drive the engine yourself.

A single-item slice of the maths — the classic Lerner rule. Set an item's economics and watch the recommendation, the profit curve and the margin shift in real time.

marginlab · optimizer
€3.80
€1.40
1.50
315
Recommended price €3.80 → €4.00 +5.3%
+€63/mo
margin uplift
€4.20
unconstrained P*
65%
Lerner @ rec
−7%
volume response
€756/yr
annualised
inside
role guardrail
Profit curve · livecurrent · rec · optimum

↳ Headline uplift holds volume; the curve and "volume response" show the elasticity-adjusted reality. The full engine prices every item together, checks your delivery margins and stress-tests price sensitivity — that's the audit.

05 — Honest by design

Three things a model can't see.

We're upfront about the edges of the math. These aren't oversights — they're deliberately left out, because each one needs a human who knows your café. That's the conversation.

L·01

How strongly your guests react to price

The model knows your sales, costs and platform fees. What one menu can't reveal is how hard your guests push back on a price rise — that comes from research until we test it.

So we talk: which item to test first, and what result would change the plan.
L·02

The basket & attach rate

A coffee often pulls a pastry with it. Firm up the coffee and you might quietly suppress the attached sale. The per-item optimum can't see the whole receipt.

So we talk: your attach patterns, and where a held price protects a bigger basket.
L·03

Day-part & weekday mix

Morning rush and a quiet Tuesday afternoon behave nothing alike. The model averages a month into one figure — it doesn't split the clock or the calendar.

So we talk: when your real margin lives, and whether timing changes the call.

These three gaps are precisely why the audit isn't a PDF you read alone.

See the engagements →
06 — Engagements

Three ways to work together.

Start with a single conversation, run a full implementation, or keep the menu tuned as costs move. No retainers you can't leave.

Tier I
Delivery Margin Audit
Rp 1,8jtone-off
  • Every item on GoFood, GrabFood & ShopeeFood
  • Your settlement statement reconciled
  • New app price list · PDF, phone page & workbook
  • 60-minute walkthrough, Bahasa or English
Book the audit
Most chosen
Tier II
Implementation Sprint
Rp 7,5jt/ 3 minggu
  • Everything in the Audit, plus the full menu
  • We roll out the top 3 changes with you
  • A two-week price test, read with you
  • Prices re-run on what your guests actually did
Start a sprint →
Tier III
Ongoing Pricing Partner
Rp 2,5jt/ bulan
  • Quarterly full re-audit of the menu
  • Monthly check-in on the numbers
  • Repricing as costs & menu shift
  • Priority line for quick questions
Become a partner

Serving independent cafés in Jakarta · Amsterdam · Almere · and remotely worldwide


07 — How it runs

Seven steps, one screen turned around.

From your menu to a decision you act on. The whole flow is built so the moment we turn the laptop toward you, the answer is already obvious.

Client

Your café, your market, your currency, your goals.

Menu & Cost

Items, prices and unit costs go in.

Analysis

Delivery margins, demand and roles, calibrated.

Opportunities

Where the money is sitting, ranked.

Recommendations

A defensible price for every item.

Scenarios

Tune assumptions, watch outcomes move.

Final Review

PDF, phone page and workbook — Bahasa & English.

Built in the Netherlands · for Jakarta & the EU
08 — Who's behind it

A model built the hard way, so the advice is easy.

MarginLab grew out of a stubborn spreadsheet — version eleven of a pricing model rebuilt until it was right. A calibrated nested-logit demand model, a delivery audit that reconciles against your own settlement statement, price tests for what a model can't know, role caps, the lot — checked by hundreds of automated tests before it touches a real menu.

The discipline is quantitative; the delivery is human. Independent café owners don't need a dashboard to babysit — they need one clear, defensible move, explained in plain language, on a call. That's the whole company.

Felix Sean Founder · MarginLab
09 — Let's find it

The margin's already
on your menu.

Start free: a one-page analysis from your public GoFood and GrabFood prices. The full audit — every item, every platform, a new app price list and a 60-minute walkthrough — is Rp 1,8jt.

Response in 24 hours Remote worldwide Bahasa & English