:root{–orange:#C75B22;–orange-bright:#E2761A;–orange-faint:rgba(199,91,34,0.10);–red:#D11F4B;–green:#1C7A57;–ink:#1A1714;–ink-2:#4A4138;–muted:#756859;–muted-2:#9A8E7E;–paper:#F3EEE4;–paper-2:#EDE6D8;–surface:#FBF9F3;–line:#DCD3C2;–line-2:#C9BEAA;–night:#1A1714;–night-2:#211D17;–night-line:rgba(255,255,255,0.12);}.cnp-redesign .serif{font-family:’Newsreader’,Georgia,serif;font-weight:400;}.cnp-redesign .mono{font-family:’IBM Plex Mono’,ui-monospace,monospace;}.cnp-redesign a{color:var(–ink);text-decoration:none;}.cnp-redesign a:hover{color:var(–orange);}.cnp-redesign .wrap{max-width:1240px;margin:0 auto;padding:0 40px;}.cnp-redesign .wrap-narrow{max-width:940px;margin:0 auto;padding:0 40px;}@media (max-width:740px){.cnp-redesign .wrap,.cnp-redesign .wrap-narrow{padding:0 22px;}}.cnp-redesign h1,.cnp-redesign h2,.cnp-redesign h3,.cnp-redesign h4{font-family:’Newsreader’,Georgia,serif;font-weight:400;color:var(–ink);letter-spacing:-0.018em;margin:0;text-wrap:balance;}.cnp-redesign h1{font-size:clamp(40px,5vw,68px);line-height:1.04;letter-spacing:-0.022em;}.cnp-redesign h2{font-size:clamp(30px,3.6vw,46px);line-height:1.12;}.cnp-redesign h3{font-size:clamp(22px,2.2vw,28px);line-height:1.2;font-weight:500;}.cnp-redesign h1 em,.cnp-redesign h2 em,.cnp-redesign h3 em{font-style:italic;color:var(–orange);}.cnp-redesign p{margin:0;}.cnp-redesign p + p{margin-top:1.1em;}.cnp-redesign .eyebrow{display:inline-flex;align-items:center;gap:12px;font-family:’IBM Plex Mono’,monospace;font-size:12px;font-weight:500;letter-spacing:0.18em;text-transform:uppercase;color:var(–muted);}.cnp-redesign .eyebrow::before{content:”;width:26px;height:1px;background:var(–orange);}.cnp-redesign .eyebrow.dark{color:rgba(255,255,255,0.55);}.cnp-redesign .section{padding:96px 0;}.cnp-redesign .section-dark{background:var(–night);color:rgba(255,255,255,0.86);}.cnp-redesign .section-dark h2,.cnp-redesign .section-dark h3{color:#fff;}.cnp-redesign .section-paper-2{background:var(–paper-2);}@media (max-width:740px){.cnp-redesign .section{padding:64px 0;}}.cnp-redesign .lede{font-size:19px;line-height:1.62;color:var(–ink-2);max-width:62ch;}.cnp-redesign .section-head{margin-bottom:56px;}.cnp-redesign .section-head h2{margin-top:18px;max-width:24ch;}.cnp-redesign .section-head .sub{margin-top:16px;max-width:58ch;color:var(–muted);font-size:17px;}.cnp-redesign .btn{display:inline-flex;align-items:center;gap:10px;padding:15px 24px;font-family:’Hanken Grotesk’,sans-serif;font-size:14.5px;font-weight:600;border-radius:2px;border:1px solid transparent;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .22s,color .22s,border-color .22s;}.cnp-redesign .btn-primary{background:var(–orange);color:#fff;border-color:var(–orange);}.cnp-redesign .btn-primary:hover{background:#A8481A;border-color:#A8481A;color:#fff;}.cnp-redesign .btn-ghost{background:transparent;color:var(–ink);border-color:var(–line-2);}.cnp-redesign .btn-ghost:hover{background:var(–ink);color:#fff;border-color:var(–ink);}.cnp-redesign .btn-ghost-dark{background:transparent;color:#fff;border-color:rgba(255,255,255,0.25);}.cnp-redesign .btn-ghost-dark:hover{background:#fff;color:var(–ink);border-color:#fff;}.cnp-redesign .dim-hero{padding:84px 0 92px;border-bottom:1px solid var(–line);}.cnp-redesign .dim-hero .grid{display:grid;grid-template-columns:1.15fr 0.85fr;gap:72px;align-items:center;}.cnp-redesign .dim-hero h1{margin-top:26px;}.cnp-redesign .dim-hero .lede{margin-top:26px;}.cnp-redesign .dim-hero .hero-meta{margin-top:40px;display:flex;align-items:center;gap:18px;font-family:’IBM Plex Mono’,monospace;font-size:11.5px;letter-spacing:0.14em;text-transform:uppercase;color:var(–muted);}.cnp-redesign .dim-hero .hero-meta .sep{width:1px;height:13px;background:var(–line-2);}.cnp-redesign .dim-hero .fig{border:1px solid var(–line);background:var(–surface);border-radius:3px;padding:30px 30px 24px;}.cnp-redesign .dim-hero .fig .cap{margin-top:18px;display:flex;justify-content:space-between;font-family:’IBM Plex Mono’,monospace;font-size:10.5px;letter-spacing:0.14em;text-transform:uppercase;color:var(–muted-2);}@media (max-width:980px){.cnp-redesign .dim-hero .grid{grid-template-columns:1fr;gap:48px;}.cnp-redesign .dim-hero .fig{max-width:560px;}}.cnp-redesign .dim-define{display:grid;grid-template-columns:1fr 1fr;gap:72px;}.cnp-redesign .dim-define .col h2{font-size:clamp(26px,2.6vw,34px);}.cnp-redesign .dim-define .col p{margin-top:22px;}.cnp-redesign .dim-define .col .k{color:var(–ink);font-weight:600;}@media (max-width:880px){.cnp-redesign .dim-define{grid-template-columns:1fr;gap:52px;}}.cnp-redesign .maturity{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(–night-line);border-radius:3px;overflow:hidden;}.cnp-redesign .m-level{position:relative;background:var(–night-2);padding:30px 26px 34px;display:flex;flex-direction:column;}.cnp-redesign .m-level + .m-level{border-left:1px solid var(–night-line);}.cnp-redesign .m-level .m-badge{font-family:’IBM Plex Mono’,monospace;font-size:11px;font-weight:500;letter-spacing:0.16em;text-transform:uppercase;color:rgba(255,255,255,0.45);}.cnp-redesign .m-level .m-num{font-family:’IBM Plex Mono’,monospace;font-size:52px;font-weight:300;line-height:1;color:rgba(255,255,255,0.18);margin-top:18px;}.cnp-redesign .m-level .m-name{font-family:’Newsreader’,Georgia,serif;font-size:24px;color:#fff;margin-top:14px;}.cnp-redesign .m-level .m-desc{font-size:14.5px;line-height:1.6;color:rgba(255,255,255,0.6);margin-top:12px;flex:1;}.cnp-redesign .m-level .m-ticks{display:flex;gap:5px;margin-top:26px;}.cnp-redesign .m-level .m-ticks i{height:4px;flex:1;background:rgba(255,255,255,0.12);border-radius:1px;}.cnp-redesign .m-level[data-level=”1″] .m-ticks i:nth-child(-n+1),.cnp-redesign .m-level[data-level=”2″] .m-ticks i:nth-child(-n+2),.cnp-redesign .m-level[data-level=”3″] .m-ticks i:nth-child(-n+3),.cnp-redesign .m-level[data-level=”4″] .m-ticks i:nth-child(-n+4){background:var(–orange-bright);}.cnp-redesign .m-level[data-level=”4″]{background:rgba(226,118,26,0.10);}.cnp-redesign .m-level[data-level=”4″] .m-num{color:rgba(226,118,26,0.55);}.cnp-redesign .m-level[data-level=”4″] .m-badge{color:var(–orange-bright);}@media (max-width:980px){.cnp-redesign .maturity{grid-template-columns:1fr 1fr;}.cnp-redesign .m-level:nth-child(3){border-left:0;}.cnp-redesign .m-level:nth-child(n+3){border-top:1px solid var(–night-line);}}@media (max-width:560px){.cnp-redesign .maturity{grid-template-columns:1fr;}.cnp-redesign .m-level + .m-level{border-left:0;border-top:1px solid var(–night-line);}}.cnp-redesign .steps{border-top:1px solid var(–line);}.cnp-redesign .step{display:grid;grid-template-columns:150px 1fr 1.4fr;gap:40px;align-items:baseline;padding:44px 0;border-bottom:1px solid var(–line);}.cnp-redesign .step .s-num{font-family:’IBM Plex Mono’,monospace;font-size:58px;font-weight:300;line-height:1;color:var(–orange);}.cnp-redesign .step .s-title{font-family:’Newsreader’,Georgia,serif;font-size:27px;color:var(–ink);}.cnp-redesign .step .s-desc{font-size:16.5px;color:var(–ink-2);max-width:52ch;}@media (max-width:880px){.cnp-redesign .step{grid-template-columns:80px 1fr;}.cnp-redesign .step .s-num{font-size:42px;}.cnp-redesign .step .s-desc{grid-column:2;}}.cnp-redesign .compare{width:100%;border-collapse:collapse;}.cnp-redesign .compare th,.cnp-redesign .compare td{padding:22px 24px;text-align:left;}.cnp-redesign .compare thead th{font-family:’IBM Plex Mono’,monospace;font-size:11.5px;font-weight:500;letter-spacing:0.14em;text-transform:uppercase;color:var(–muted);border-bottom:1px solid var(–line-2);}.cnp-redesign .compare tbody tr{border-bottom:1px solid var(–line);}.cnp-redesign .compare tbody th{font-family:’Newsreader’,Georgia,serif;font-size:20px;font-weight:400;color:var(–ink);}.cnp-redesign .compare tbody th .note{display:block;font-family:’Hanken Grotesk’,sans-serif;font-size:13px;color:var(–muted);margin-top:3px;}.cnp-redesign .compare td{text-align:center;}.cnp-redesign .compare th:first-child{text-align:left;}.cnp-redesign .compare tr.is-hero{background:var(–surface);}.cnp-redesign .compare tr.is-hero tbody th{color:var(–ink);}.cnp-redesign .mark{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;font-size:14px;font-weight:600;line-height:1;}.cnp-redesign .mark.yes{background:rgba(28,122,87,0.12);color:var(–green);}.cnp-redesign .mark.no{background:rgba(209,31,75,0.10);color:var(–red);}.cnp-redesign .mark.part{background:rgba(199,91,34,0.12);color:var(–orange);}.cnp-redesign .compare-legend{margin-top:20px;display:flex;gap:28px;flex-wrap:wrap;font-family:’IBM Plex Mono’,monospace;font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(–muted);}.cnp-redesign .compare-legend span{display:inline-flex;align-items:center;gap:8px;}.cnp-redesign .compare-wrap{overflow-x:auto;}@media (max-width:740px){.cnp-redesign .compare th,.cnp-redesign .compare td{padding:16px 12px;}.cnp-redesign .compare tbody th{font-size:17px;}}.cnp-redesign .faq-list{border-top:1px solid var(–line);}.cnp-redesign .faq-item{border-bottom:1px solid var(–line);}.cnp-redesign .faq-item summary{list-style:none;cursor:pointer;padding:28px 0;display:flex;align-items:center;justify-content:space-between;gap:30px;}.cnp-redesign .faq-item summary::-webkit-details-marker{display:none;}.cnp-redesign .faq-item .q{font-family:’Newsreader’,Georgia,serif;font-size:22px;font-weight:500;color:var(–ink);line-height:1.3;flex:1;}.cnp-redesign .faq-item .plus{width:22px;height:22px;flex:0 0 22px;position:relative;color:var(–orange);}.cnp-redesign .faq-item .plus::before,.cnp-redesign .faq-item .plus::after{content:”;position:absolute;background:currentColor;}.cnp-redesign .faq-item .plus::before{left:0;right:0;top:50%;height:1.5px;transform:translateY(-50%);}.cnp-redesign .faq-item .plus::after{top:0;bottom:0;left:50%;width:1.5px;transform:translateX(-50%);transition:transform .25s;}.cnp-redesign .faq-item[open] .plus::after{transform:translateX(-50%) scaleY(0);}.cnp-redesign .faq-item .a{padding:0 0 30px;max-width:70ch;color:var(–ink-2);}.cnp-redesign .related{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}.cnp-redesign .rel-card{display:flex;flex-direction:column;gap:30px;background:var(–surface);border:1px solid var(–line);border-radius:3px;padding:26px 26px 24px;transition:border-color .2s,transform .2s;}.cnp-redesign .rel-card:hover{border-color:var(–orange);transform:translateY(-2px);color:inherit;}.cnp-redesign .rel-card .r-idx{font-family:’IBM Plex Mono’,monospace;font-size:11px;letter-spacing:0.16em;color:var(–muted-2);}.cnp-redesign .rel-card .r-name{font-family:’Newsreader’,Georgia,serif;font-size:22px;color:var(–ink);display:flex;align-items:center;justify-content:space-between;gap:14px;}.cnp-redesign .rel-card .r-name svg{flex:0 0 auto;color:var(–orange);transition:transform .2s;}.cnp-redesign .rel-card:hover .r-name svg{transform:translateX(4px);}.cnp-redesign .rel-card.is-cta{background:var(–night);border-color:var(–night);}.cnp-redesign .rel-card.is-cta .r-idx{color:rgba(255,255,255,0.45);}.cnp-redesign .rel-card.is-cta .r-name{color:#fff;}.cnp-redesign .rel-card.is-cta .r-name svg{color:var(–orange-bright);}@media (max-width:980px){.cnp-redesign .related{grid-template-columns:1fr 1fr;}}@media (max-width:620px){.cnp-redesign .related{grid-template-columns:1fr;}}.cnp-redesign .cta-band{background:var(–night);color:#fff;position:relative;overflow:hidden;padding:110px 0;}.cnp-redesign .cta-band::before{content:”;position:absolute;top:-180px;right:-180px;width:520px;height:520px;background:radial-gradient(circle,rgba(226,118,26,0.30) 0%,rgba(226,118,26,0) 60%);pointer-events:none;}.cnp-redesign .cta-band .wrap{position:relative;z-index:2;}.cnp-redesign .cta-band h2{color:#fff;max-width:22ch;}.cnp-redesign .cta-band h2 em{color:var(–orange-bright);}.cnp-redesign .cta-band p{color:rgba(255,255,255,0.7);margin-top:22px;max-width:56ch;font-size:18px;}.cnp-redesign .cta-band .cta-row{margin-top:40px;display:flex;gap:14px;flex-wrap:wrap;}.cnp-redesign{font-family:’Hanken Grotesk’,system-ui,-apple-system,sans-serif;background:var(–paper);color:var(–ink-2);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;}.cnp-redesign *,.cnp-redesign *::before,.cnp-redesign *::after{box-sizing:border-box;}.cnp-redesign::selection{background:var(–orange);color:#fff;}.seo-body{max-width:none !important;padding:0 !important;}.seo-content{width:100% !important;max-width:none !important;}.cnp-redesign .section{padding:64px 0;}.cnp-redesign .related{grid-template-columns:repeat(3,1fr);gap:16px;align-items:stretch;}.cnp-redesign .rel-card{gap:14px;padding:24px;justify-content:flex-start;}@media (max-width:980px){.cnp-redesign .related{grid-template-columns:1fr 1fr;}}@media (max-width:620px){.cnp-redesign .related{grid-template-columns:1fr;}}.cnp-redesign .dim-hero{padding:32px 0 56px !important;}.cnp-redesign .step{padding:30px 0 !important;}.seo-hero{display:none !important;}
Retail Find the margin behind every basket. List price tells you almost nothing. Markdowns, returns, promotions and channel costs quietly erode the margin on every line. ABC / TDABC shows the true net margin by product, category and channel.
INDUSTRY · RETAIL COST & PROFITABILITY
LIST PRICE → NET MARGIN
LIST−MARKDOWN−RETURNS−CHANNELNET
Fig. — Price to net margin TDABC
The problem The list-price illusion. Retailers track gross margin on list price, but the real margin is what survives markdowns, returns, shrinkage, promotions and the cost of serving each channel. Best-selling lines are often the thinnest earners once those costs are traced.
Why it matters Range and channel decisions in the dark. Without true net margin by SKU and channel, ranging, promotion and channel-mix decisions are guesses. You promote the wrong lines and grow the wrong channels — and the P&L never explains why.
Cost visibility maturity
How well do you see net margin?
Level 1 01
Reactive
Margin tracked on list price only. Markdowns and returns lost in aggregate.
Level 2 02
Structured
Category-level margins after markdown. Channel and returns cost still blended.
Level 3 03
Analytical
Activity-based costing of fulfilment, returns and channel. Net margin by SKU emerging.
Level 4 04
Optimised
TDABC net margin by SKU, category and channel — live for ranging and promo decisions.
How we engage
Three steps to true net margin.
01
Profit Check
A free diagnostic estimating how much margin markdowns, returns and channel cost are hiding in your current reporting.
02
ProfitAudit 360
A 5–25 day engagement delivering net margin by SKU, category and channel, plus a ranging and promotion roadmap.
03
Ongoing advisory
We embed the model in your merchandising and finance cycle, so range, promo and channel decisions are made on true margin.
Comparing approaches
List margin, ABC, or TDABC?
Approach Net-Margin Accuracy Channel & Returns Updates at Scale
List-Price MarginGross on list price ✕ ✕ ✕
ABCActivity-Based Costing ✓ ~ ~
TDABCTime-Driven Activity-Based Costing ✓ ✓ ✓
✓ Strong~ Partial✕ Weak
FAQ
Frequently asked questions.
Can you cost by channel — store, online, marketplace? Yes. The model traces fulfilment, returns and channel-specific costs, so you see true net margin per channel, not a blended average.
Do returns and markdowns get included? Yes — they are usually the biggest hidden drains. We trace markdown, return-handling and shrinkage cost to the SKUs and categories that incur them.
Will this work with our POS and ERP? Yes. We build on the sales, returns and cost data you already capture — no new systems required.
How fast do we get category-level results? A ProfitAudit 360 typically delivers net margin by category and channel within 5–25 working days.