Run everything you never had time to implement. Define your process once, and keep it running with Qore.

All Case Studies

Ask Three People at One Company What a Product Earns. You Will Get Three Answers.

Ask Three People at One Company What a Product Earns. You Will Get Three Answers.Ask Three People at One Company What a Product Earns. You Will Get Three Answers.

Ask three teams at an Amazon brand what one unit of its best-selling product actually earns, and you will get three numbers. All three will be defensible. None will agree. This is how Shameless Pets, a functional dog and cat treat brand, stopped having that argument, and what it found once the number finally went down to the individual product.

Three teams, three margin numbers, one channel

Shameless Pets makes functional treats for dogs and cats (dental chews, soft-baked treats, crunchy cat treats) built around real ingredients and specific benefits: teeth cleaning, immune support, skin and coat. Amazon is not a side channel for them. It is where the brand meets most of its customers, and it is run accordingly.

That maturity is also what makes the margin question hard. A single recipe ships as a value pack, a variety multi-pack and a trial size, each with its own price, its own cost per unit and its own advertising behind it. A meaningful share of units move on Subscribe & Save rather than at list price. Coupons run continuously across parts of the catalogue. Each of those choices is a deliberate growth lever, and each one quietly changes what the product earns.

Which brings up the question that should be easy. Pick the best-selling product. How much does the business keep when one unit sells?

Until this year, that question had three answers. Finance gave one figure from the monthly P&L. Operations gave another from the Seller Central export. The agency gave a third that counted advertising and nothing else. Each was internally defensible. None of them agreed, and not one of them went below the account level, which meant none of them could answer the question as asked.

Growth was never the constraint at Shameless Pets. Profitability visibility was. The P&L was reviewed at a rolled-up level, which is adequate for reporting a quarter and useless for deciding which product to discount next week.

“Prior to the CM skill, we reviewed our P&L at a rolled-up level rather than by ASIN. We realised we needed to get granular to make key shifts in our advertising, promotional, and off-Amazon activation strategies.”

Jackson Hathaway
Ecommerce Director, Shameless Pets

The gap was never arithmetic. It was that no one could get cost of goods, Subscribe & Save, coupon cost, Amazon fees and ad spend into the same place, on the same day, for the same ASIN, and then do it again the following week without starting over. Assembling it by hand meant pulls, joins and lookups coordinated across the business and accounting teams, and the answer described a period that had already closed.

Two costs made the manual approach structurally unreliable rather than merely slow. Subscribe & Save discounts are applied at the subscription level and never appear as a line item against the product that granted them. Coupons are worse: a coupon is not a rate but a window, with a start date, an end date, and a total redemption value that has to be spread across the days it ran before it can be attributed to an ASIN. Both were consistently excluded, not by choice, but because attributing them correctly is hard. The result was a margin picture that systematically overstated profitability on exactly the products that discounted most heavily.

Baseline
Retroactive
a read on investments already made, not a forward input
2 teams
business and accounting, coordinated by hand each refresh
Rolled up
lowest level of margin visibility, never by ASIN
2 of 5
major cost drivers excluded entirely: SnS and coupons

The objective was not a better report. It was a single number the whole business would accept, computed low enough to act on: contribution margin after every cost of selling one unit, per ASIN, per day, refreshed without anyone rebuilding it.

What CM3 means
Illustrative unit economics

Take the price of one unit and subtract every cost of selling it, in the order the costs occur. Three checkpoints fall out on the way down. The third is the one that tells you whether the product is worth selling at all.

Net revenue$24.00
Cost of goods−$7.44
Subscribe & Save−$0.60
Coupon cost−$1.44
CM1 after discounts$14.52
Fees−$5.04
CM2 after cost of selling$9.48
Ad spend−$4.80
CM3 the real margin$4.68

Under twenty cents on the dollar. The two costs most often left out, Subscribe & Save and coupons, account for eight and a half percent of revenue between them. Omit them and this product reports a materially healthier margin than it earns.

Build the number as a chain, not a report

Channel
Amazon US, 1P + 3P
Skills deployed
Nine, one dependency chain
Granularity
ASIN-day CM1 / CM2 / CM3
Cadence
Weekly, unattended

A single model asked to produce a margin figure is a black box: when the number looks wrong, there is nowhere to look. So the calculation was decomposed into nine discrete skills wired into one dependency chain, each doing one job, each reading the output of the step before it. Every step can be opened to see what it read, what it computed, and what it passed on.

Stage 1: Inputs

Rates & Methods and Subscribe & Save Revenue Impact draw on two sheets the team already maintained, so the chain reflects how the business accounts for itself rather than imposing a schema. Coupon Cost by ASIN and the Cost Data Engine ingest Amazon's own reports automatically.

Stage 2: The waterfall

Three sequential skills walk each ASIN-day down the margin ladder. CM1 nets cost of goods, Subscribe & Save and coupon cost out of revenue. CM2 subtracts fees: co-op, freight, damage and deductions. CM3 subtracts the advertising behind the sale. Each stage consumes the one before it, so a correction at the bottom propagates upward by construction.

Stage 3: Reporting

A weekly per-ASIN margin dashboard for operating decisions, and a trailing twelve-month account waterfall that reconciles the bottom-up detail against the channel P&L: the check that keeps the two views honest.

Stage 4: Delivery

The combined widget exports into the Google Sheet the team already opens. No new tool to adopt, no migration, no login to remember.

Two implementation details did most of the work, and both are the kind of thing that decides whether a margin model survives contact with real data.

Coupons are spread before they are attributed. Rather than treating a coupon as a percentage, the skill builds a 365-day scaffold, one row per ASIN-day, distributes the total redemption cost across only the days the coupon ran, and lands it on the product that carried it. Computed once, reused by every skill downstream. This is the single largest source of hidden margin erosion in the category, and it is the step most tools skip.

Rates are matched as-of, never as-current. Cost and fee rates change. A margin figure computed with today's rates against last quarter's sales is not a margin figure. Each ASIN-day is joined to the rate that was in force on that day, which is what makes historical comparison meaningful instead of merely available.

The coupons were unprofitable, and nobody could see it

The first thing that changed was who has to be in the room. Compiling this view previously took coordinated effort from both the business and accounting teams, and what it produced was retroactive: a read on investments already made, reviewed after the fact and ahead of the next strategic shift.

Hathaway describes the old report as giving, at best, a retroactive view of investments, something reviewed after the fact, before making any strategic shifts. The automated version inverts that: because it connects to other areas of the business in Qore, it now directs investment toward the places where the return is known to reach the bottom line.

Across the trailing twelve months the channel returns a contribution margin just under twenty percent of net revenue. Not an estimate, and not an average of averages, but a figure recomputed from summed dollars against the rates in force on each day. For the first time the number is the same in finance, in operations and in the agency review.

The waterfall also settles a question the brand could not previously answer: coupons cost more than twice what Subscribe & Save does. Coupon discount accounts for 6.0% of net revenue against Subscribe & Save at 2.5%, together eight and a half cents of every revenue dollar, and both were absent from every margin view the business had before this.

Account CM3 waterfall · trailing twelve months
Bars are share of net revenue · illustrative figures
Net Rev$6.40M100.0%
less COGS$1.98M31.0%
less SnS$160K2.5%
less Coupon$384K6.0%
CM1$3.87M60.5%
less Fees$1.34M21.0%
CM2$2.53M39.5%
less Ads$1.28M20.0%
CM3$1.25M19.5%

Recomputed from summed dollars rather than averaged percentages, against the cost and fee rates in force on each day. This is the view that reconciles the bottom-up ASIN detail against the channel P&L. Figures illustrative.

Underneath the account figure, the per-ASIN detail is where the decisions are. An account-level margin number tells you how the channel performed. A per-ASIN number tells you what to do on Monday: which products to reprice, which to pull advertising from, which discount programs are buying revenue at a loss, and which apparent underperformers are the most profitable things in the catalogue.

Discount cost turns out to be the least evenly distributed input of all. Among the top SKUs, several absorbed no coupon discount in the period while one carried the better part of sixty thousand dollars on its own. A blended margin figure spreads that cost across every product; the attributed figure puts it on the SKU that granted it, which is what makes the resulting margin comparable between products.

Per-ASIN margin waterfall
Six of the catalogue's top SKUs · selected range · illustrative figures, identifiers removed
ProductUnitsNet RevSnSCouponCOGSCM1 $CM1 %
Dental chews, 32-count
Value
62,400$902K$37.8K$58.4K$228K$578K64.1%
Soft-baked treats, 5-pack
Variety
18,900$293K$7.4K—$84.1K$201K68.6%
Cat treats, trial size
Trial
104,200$237K$5.6K—$64.6K$167K70.5%
Dental chews, 4-pack
Variety
16,800$260K$10.6K$3.1K$87.5K$159K61.2%
Cat treats, 3-pack
Variety
40,100$245K$6.3K—$86.9K$152K62.0%
Soft-baked treats, trial
Trial
81,700$279K$5.5K$15.2K$65.0K$193K69.2%

The weekly per-ASIN view. Every product carries its own Subscribe & Save and coupon cost. Three of these six absorbed no coupon discount at all in the period, while the top SKU absorbed $58.4K. Figures illustrative; comparison badges omitted.

That attribution produced the finding that changed how the brand operates. Shameless Pets has long used periodic couponing to drive incremental sales and acquire customers: a standard, sensible play, and one whose cost had never been traced to the products carrying it. Once it was, the picture was uncomfortable: at many of the discount depths they were running, the coupons were unprofitable.

Not all of them, and that distinction matters. The question was never whether to coupon; it was how deep, on which products, and at what point the incremental volume stops paying for itself. Without per-ASIN contribution margin, that question has no answer and the programme runs on assumption.

What they did about it

“The insights revealed that we were unprofitable at many of the depths we were running. As we look to expand both our top and bottom lines in 2027, the CM skill is critical infrastructure behind every business decision we make.”

Jackson Hathaway
Ecommerce Director, Shameless Pets
“It has become my channel P&L. And because the data feeds our other skills, every growth decision we make now ties back to profitability.”

Jackson Hathaway
Ecommerce Director, Shameless Pets

Operationally, the chain reruns itself on a weekly cadence. New rates, new coupons, new advertising spend, same nine steps, same auditable answer. Nobody rebuilds it, and the figure the business argues about is now the same figure in every room.

Most brands are not bad at margin math. They are blocked from doing it

The reason so few brands know their true per-product profitability is not negligence or a missing formula. It is that the inputs arrive in different systems, at different grains, on different schedules, and two of the largest cost drivers (Subscribe & Save and coupons) are structurally hostile to attribution. Anyone can define contribution margin. Almost nobody can compute it at the ASIN-day level twice in a row without the numbers drifting.

What made this work was not sophistication but decomposition. Nine narrow steps, each inspectable, wired so the output of one is the input of the next, running on a schedule against a rate history that respects time. When a number looks wrong, there is a specific node to open. That auditability is why the figure became the business's shared number rather than another competing estimate, and it is the part worth copying whether or not you ever use our software.

The uncomfortable implication for anyone selling on Amazon is in the coupon finding. Shameless Pets was not running a careless promotional programme; it was running a normal one, on the same rolled-up view almost everyone uses. The depths were unprofitable anyway, and there was no level of diligence at the account level that would have surfaced it. If your discounting is set against a blended margin figure, you are not choosing your depths. You are inheriting them.

This margin chain runs in Qore, where each step is a node you can open and inspect. See how it works →
Spending too much time managing prices by hand?
Trellis’Dynamic Pricing automates adjustments daily - helping you sell more, raise prices smartly, and grow revenue.
Schedule a Demo

eCommerce News You'll Actually Use

The Climb is Trellis’ monthly newsletter, giving you quick updates and insightful content designed to help your eCommerce business grow. Uncover new ways to unlock profitability for your business.
Thanks for joining the Trellis email list!
Something went wrong while submitting. Please try again.