Set your low-margin line (Customer Profit rulebook)
Quick Reference
Inputs
Admin role on the tenant,A percentage between 0 and 95 for the low-margin line. A loaded Customer Profit snapshot (the header readout must be showing). Optional: your own fixed-cost share of revenue, to choose the number.
Outputs
A stored low-margin line that outranks the suggested value. The Rulebook cell relabelled to show the rulebook is edited. Customers re-split between Solid Profit Core and Low-Margin Buyers at the next daily snapshot. A confirmation stating when the change takes effect.
Outcomes
A Low-Margin Buyers tier that reflects your real overhead instead of a generic suggestion. A worklist of customers who buy without paying their share of fixed costs. Confidence that the tiers on screen were built with the rule the page reports. A one-click path back to the suggested line.
The low-margin line is the lifetime net margin under which MarginOS labels a customer a Low-Margin Buyer, and it is the one rule in the Customer Profit rulebook you set yourself. Open it with the Low-margin line button in the Customer Profit header, enter a percentage between 0 and 95, and save. The new line is applied at the next daily customer snapshot — the tiers already on screen keep the rule they were built with.
What the low-margin line is
Every customer on the Customer Profit screen carries a value tier: Profit Champions, Solid Profit Core, Low-Margin Buyers or Unprofitable. Five thresholds decide which one a customer gets. Four of them are measured from your own store — how long your customers usually wait between orders, how many orders make a Champion, and so on. The fifth is the low-margin line, and it is the only one MarginOS cannot measure for you.
The dialog says why, in its own words:
Every other threshold on this page is measured from your own customers — this one cannot be, because how thin is too thin depends on your fixed costs, which MarginOS does not see.
MarginOS sees what each order cost you to buy, ship and process. It does not see your rent, your salaries or your software bill. On a store running 65% margins, a customer at 30% is thin; on a store running 22%, that same customer is your best cohort. No rule reading only the shape of your margin curve will ever find that number, so MarginOS shows a suggestion and lets your number outrank it.
Setting the line changes labels, never money. It moves customers between Solid Profit Core and Low-Margin Buyers. It does not change anyone’s revenue, cost, gross profit or margin by a cent.
Before you start
- You need the Admin role. The Low-margin line button does not appear for members — not greyed out, simply absent.
- The Customer Profit screen must have loaded. The header readout and the button only render once the screen has a customer snapshot to show.
- Know what you want to catch. The line is a policy statement about your own business, not a number to guess at. The worked example below shows how to pick one.
- Check your cost coverage first. Where a product has no cost, its profit is calculated as if the goods were free, so margins read high and customers look better than they are. The Cost coverage cell in the same header tells you how much of your book is fully costed; store-wide cost fallbacks are one way to close the gap.
Set the low-margin line in four steps
- Open Customer Profit and look at the readout in the top right of the screen. The Rulebook cell there reads either Tuned to your store or Store defaults, with · edited appended once any threshold is your own setting. Hover it to see all five rules written out as sentences.
- Click Low-margin line, the small button directly under that readout. The dialog opens on the question What counts as thin for your store?
- Type a percentage into Net margin under. Anything from 0 to 95 is accepted. If the field is empty, the faint number inside it is the line currently in force — that is the placeholder, not your value, and leaving it alone means you are still using the suggestion.
- Click Save. A confirmation appears reading Low-margin line saved, and it tells you plainly that the change takes effect at the next daily customer snapshot.
To undo the setting, clear the field completely and save. The button relabels itself to Use the suggestion when the field is empty, and the confirmation reads Back to the suggested line.
What each part of the dialog does
| Part | What it does |
|---|---|
| Net margin under | The percentage you are setting. A customer whose lifetime net margin falls below it is labelled a Low-Margin Buyer. Accepts 0 to 95. |
| The faint number in the empty field | The line currently in force — the suggestion, or your previous setting. It is shown so an empty field reads as using the suggestion rather than as missing data. It is never submitted. |
| The line of small text below | Tells you where the current line came from: You have set this to N% if it is yours, or Currently N%, suggested from your own margin distribution, or our shipped default — your store does not have enough history for a suggestion yet. It always ends with Takes effect at the next daily snapshot. |
| Cancel | Closes without saving. Nothing you typed is kept. |
| Save / Use the suggestion | The same button, relabelled by what is in the field: Save when you have typed a number, Use the suggestion when the field is empty. It stays disabled while the value is unchanged, out of range, or still loading. |
| The red line under the field | Appears only when the number is outside the accepted range, reading Enter a percentage between 0 and 95, or clear the field to use the suggested value. |
How MarginOS applies the line
Three things are worth knowing about the mechanics, because each of them surprises somebody.
Your number outranks the suggestion, permanently. MarginOS normally treats a measurement as more trustworthy than an opinion — that is the whole point of the Defensible Profit Model, where a real landed cost beats an estimate. Here the order is reversed on purpose. For a cost, the measurement is the fact. For a policy threshold, your opinion is the fact, because it is the only input that knows about your fixed costs. Once you set a line, no suggestion overwrites it; it stays until you clear it.
Saving does not reclassify anyone on the spot. The tiers, the chips and the counts on screen were all built together in one pass, from one rulebook. Publishing a new threshold against rows that were classified with the old one would mean the page was advertising a rule it had not applied — so MarginOS refuses to do it. Your line is picked up by the next daily customer snapshot, in the same pass that re-labels everyone with it. Until then the screen keeps telling you the truth about the rule it actually used.
Unprofitable is checked before the low-margin line. A customer whose lifetime gross profit is below zero is labelled Unprofitable no matter what their margin percentage reads. The low-margin line only sorts customers who are already profitable, splitting Solid Profit Core from Low-Margin Buyers. Moving the line can never turn an Unprofitable customer into a Low-Margin Buyer.
Net margin here is lifetime gross profit measured against product net revenue — see how MarginOS calculates LTGP and how it calculates gross profit for what feeds it.
Example
A skincare brand runs healthy margins: most of its customers sit somewhere in the high fifties. Because the suggested line is measured from that distribution, it lands low — say 9% — and catches almost nobody. The Low-Margin Buyers tier holds eleven customers out of four thousand, and the owner stops looking at it.
The owner knows something MarginOS does not: rent, payroll and software cost the business roughly 40% of revenue every month. A customer clearing only 35% lifetime net margin is not a thin customer in the abstract — they are a customer this business loses money serving once the lights are paid for.
So they open the dialog and set the line to 40. Nothing on screen moves that afternoon; the confirmation says so. The next morning, after the daily snapshot, the Low-Margin Buyers tier holds about six hundred customers, and the Rulebook cell reads Tuned to your store · edited. Filtering the Explorer to that tier now produces a list worth acting on: heavy-discount buyers, oversized-basket shippers, and a cluster of people who only ever buy one loss-leading product.
Note what did not happen. No customer’s lifetime profit changed. No revenue moved. The store did not become less profitable overnight — it became honest about which relationships were carrying it.
Common questions
Why can I only change one of the five rules?
The other four are measured from your own store’s ordering patterns, and those measurements work: how long your customers usually leave between orders, and how many orders are exceptional for your catalogue, are both readable from your own data. The low-margin line is not readable that way, because it depends on costs MarginOS never sees. The other four will get inputs when real stores tell us which ones they actually need to move.
Why did nothing change on screen after I saved?
By design. The tiers on screen were built with the rule in force when the snapshot ran, and MarginOS will not display a rule it has not applied. Your new line is used by the next daily customer snapshot. The confirmation message says this, and the small print in the dialog says it too.
I cannot see the Low-margin line button. Why?
The setting is Admin-only, and the button is hidden rather than disabled for everyone else — walking a member through the whole dialog only to refuse the save would be worse. If you need to change it, ask an Admin on your team, or have your role changed.
How do I go back to the suggested line?
Open the dialog, delete everything in the field, and save. The button reads Use the suggestion when the field is empty, and the confirmation reads Back to the suggested line. Like any other change, it applies at the next daily snapshot.
Does this change how much profit MarginOS says I made?
No. It changes which label a customer carries, and therefore which tier counts and filters they fall into. Every currency figure on the screen — lifetime gross profit, net revenue, cost to serve, margin percentage — is computed from your orders and costs and is completely unaffected.
What number should I set?
Start from your own fixed costs. Work out roughly what share of revenue goes to everything MarginOS does not see — rent, payroll, software, insurance — and set the line at or a little above that share. A customer below it is not paying their part of the overhead. If that produces a tier holding half your book, that is a real finding rather than a bad setting.
Why is a customer with a thin margin labelled Unprofitable instead of Low-Margin Buyers?
Because Unprofitable is checked first. It means lifetime gross profit below zero — every order so far has cost you money — and that is a stronger statement than a thin margin. The low-margin line only sorts customers who are already making you money.
Related
- Explore customers by lifetime profit (Customer Profit) — the screen this setting labels
- Inspect one customer (profit drawer) — where a single customer’s tier and numbers are explained
- How MarginOS calculates LTGP — the lifetime gross profit behind the margin
- How MarginOS calculates Gross Profit (CM1) — what a per-order gross profit includes
- The Defensible Profit Model — why a measurement normally outranks an opinion, and why this setting reverses that
- Set your store-wide COGS, shipping and pick-pack fallbacks — closing the cost gaps that inflate margin
- Compare your Business Lines — the lens that scopes which customers you are looking at
About the author
Founder of MarginOS, a Profit & Inventory OS for Shopify DTC brands who live and die by margin. Previously 11 years at Google across Ads and Global Business Operations, building large-scale systems. Now focused on giving DTC operators true profit by product, channel, and customer after COGS, 3PL, shipping, returns, and fees, and on showing exactly how much to trust every number behind those decisions.
Read Aron's story