Sales then and now
Measured as an annual run rate of net sales, a distributor’s Amazon channel stood at about €150k in 2023 and above €1m in 2026. Net sales here means monthly sales net of VAT, as shown in a paid seller analytics tool. They are not reconciled against refunds or the accounts. The 2023 figure annualises the €12.7k September month, and the 2026 figure annualises approximate readings from January to August, with several months above €100k. Both figures are run-rate snapshots in a seasonal category, not a trailing-twelve-month comparison. We started work on the channel in March 2024. In the trend, most of the rise came that year, after delivery was fixed and the first range tests ran. The later builds kept the operation ahead of that volume and turned to margin, stock and cash.
These figures are sales, not profit, and the business, its suppliers and the market all contributed to them. This post describes our part, which was the order in which the channel was built, the reasons for that order, and the systems that carry it today.
Delivery, range, stock and margin were fixed in the order the channel ran into them.
-
Amazon net sales, annual run rate2023 annualises the Sep month (€12.7k × 12). 2026 annualises approximate Jan–Aug readings. Revenue, not profit.several months above €100k
- Before
- about €150k 2023
- After
- above €1m 2026
-
Delivery promiseFrom 2024. The first constraint was the buying experience. Delivery came before range and margin, and the promise shown to customers was tightened once seller metrics held.Delivery fixed first
- Before
- No reliable delivery promise
- After
- Next-day delivery negotiated, daily pickups, tracked parcels
-
FulfillmentChosen over FBA-only and in-house-only. Bundles stay in-house, where margin and a distinct offer count for more than speed.Speed where the volume is
- Before
- In-house for everything
- After
- Best sellers on FBA, bundles in-house
-
Replenishment decisionIn production since April 2026. The run proposes, and people decide.Reorders at the unit purchasing buys
- Before
- A listing tracker kept by hand
- After
- One planning run, calculated per component
-
Economics viewProduct cost is still partly estimated.Contribution visible per order
- Before
- Rate card and estimates
- After
- Contribution per order from payment reports
-
AdvertisingEffect to be measured over full windows.Budget follows margin and stock
- Before
- Bids without a break-even
- After
- Bids and targets tied to contribution and stock
The commercial question
The account was not empty but underused. The trend bars show sales had been higher in 2022 and had slipped by early 2024, so part of the early rise won back lost ground. Listings existed, and the existing supplier agreements could cover much more of the range. We wanted to know how large the channel could become with the team, stock and suppliers the business already had.
A second question mattered more over time: how much of each sale the business keeps, and how much cash the growth ties up. A channel that grows on thin margins and slow stock can eat the cash it earns.
Growth first, then the fulfillment mix
On a small base, margin work moves few euros, and cost data is usually thin at that stage. Growing first makes every later margin point worth more, as long as the operation can carry the volume. We grew revenue first and built the operation right behind it.
Fulfillment came next. FBA brings the Prime badge and fast delivery, at a higher cost per bundle and with cash tied up at Amazon. Sellers who ship themselves can also offer Prime, but only after a trial period and under strict delivery targets. In-house shipping keeps control and margin on bundles, and its speed depends on the seller’s own logistics. Best sellers went to FBA for speed. Bundles and volume packs stayed in-house for margin and a distinct offer.
How we worked
We worked inside the client’s own accounts: Seller Central, the ERP, the shop and the ad console. Instead of handing over a strategy and leaving, we ran the channel together with the team, week by week.
Every build lives in the client’s name. The ERP stays the master record, and our tools read it without writing to it. Changes to stock, orders and ads go live through the client’s own tools after a person has approved them. We designed and built the systems and made the channel decisions together with the client’s management.
Every stage moves the constraint
Growth does not remove a bottleneck, it moves it somewhere else. Each build answered the constraint of its stage and exposed the next one.
- Make it buyable. The first constraint was delivery, not advertising. We negotiated next-day delivery with the logistics provider, set up daily pickups with parcel tracking and wrote service and returns procedures with the team. Once the seller metrics held, we tightened the delivery promise shown to customers.
- Widen the range. We looked for products the existing supplier agreements could already supply. Each one got a starting stock level and a test of a few weeks, and live sales decided what stayed.
- Split fulfillment. Best sellers moved to FBA, while bundles and volume packs stayed in-house.
- Connect stock. All sales channels moved onto one ERP, JTL-Wawi. Stock became live across Amazon, the shop and eBay, and orders were routed automatically.
- Know the economics. More sales raised a harder question, namely what each order leaves after fees, shipping and returns. We rebuilt that answer from the payment data.
- Plan replenishment. With hundreds of listings, checking each one by hand stopped working. A planning run now proposes what to reorder and what to send to FBA.
- Steer ads and cash. With contribution per product known, ads could follow margin and stock, and seasonal purchasing could follow cash.
The economics
Contribution is what the channel keeps: revenue minus fees, fulfillment, advertising, returns and product cost. Revenue is sessions times conversion times price. Cash adds a third branch, which is how many days of stock the business holds at purchase cost.
Our first builds pulled on revenue, since delivery and availability lift conversion and a wider tested range lifts sessions. Once volume was there, the cost branch mattered more. The fulfillment mix, recomputed fees and break-even bidding each move one cost driver, and stock planning moves cash.
Break-even bidding needs contribution before advertising, meaning revenue minus fees, fulfillment, returns and product cost. A campaign breaks even when its return on ad spend equals the average price divided by that contribution per unit. Put the other way, ad spend as a share of sales may not exceed the margin before advertising. Below that line, the sales the ads bring cost more than they directly earn. Any ranking benefit then has to justify the gap. Above it, budget can rise in steps, and only while the last euro still earns more than it costs.
Moving best sellers to FBA also changed how the numbers looked. Amazon’s fulfillment fees appear in the payment data, while in-house shipping costs never did. Contribution can therefore fall on paper while costs stay the same. We read those numbers side by side before anyone drew a conclusion.
One example
Replenishment shows how a technical build serves the commercial goal. Stockouts cost sales today and ranking tomorrow, and overstock ties up cash. The run has to find the line between them for every product, every week.
Why the old view missed it. A hand-kept tracker cannot keep up with hundreds of listings, and it counted stock per listing. A bundle and its single items draw on the same parts, and purchasing orders parts, not listings.
The build. The run reads FBA stock, active listings and daily sales and traffic from Amazon. From the ERP it reads stock, open purchase orders and bills of material. It uses product and stock data only and reads no customer records. Demand stays with the listing that customers buy until the bill of materials turns it into components. The output is one line per component: reorder this much, send this much to FBA.
The demand math is a service-level model that sets how much stock covers demand at a chosen level of availability. It runs as live spreadsheet formulas, so the team can change an assumption and watch the proposal move.
In use. One run replaced manual monitoring of every listing. People still decide: the run proposes, operations packs the FBA shipments and purchasing places the orders.
Next. The same logic later moved into an operating data platform, where it now feeds a seasonal plan for stock, orders and payments.
The report that counted every day twice
The most instructive check concerned our requests and Amazon’s own sales report.
The run went into production in April 2026 on sales data from a paid seller tool. A few weeks later we moved it onto Amazon’s own report, which we pull one day at a time. Each request names a start and an end. Our requests excluded the end date, and the report included it. So each one-day request returned two days of sales.
Nothing looked broken, and the numbers were plausible, just too high. Our line-by-line comparison of the new feed with the paid tool it replaced caught it. Sales and sessions in the feed doubled, but the effect on reorder proposals was smaller. They came out about 12% too high against the replaced tool. That would have tied up cash in stock nobody needed. We fixed the requests before the switch, and the figures then matched the old tool one to one.
The same check exposed a second trap inside the demand average. A simple forecast divides the last 30 days of sales by 30, but on days a listing is out of stock or has lost the Buy Box, it cannot sell. Those zero days pull the average down. The plan then orders less, the listing runs out again, and the next average falls further. We divide sales by the days the listing could actually sell.
working notes · thread
-
Team
Demand on the top listings looks low today. The stock figures look normal.
-
Capcelerate systemSystem
The sales window ends a week ago. The report fetch hit Amazon’s quota before the transform step ran.
-
Team
So stock is fresh and demand is stale. Nothing in the file shows it.
-
Capcelerate systemSystem
Correct. Proposal: stop the build when the demand window is older than five days. Retry the fetch from cache.
-
Team
Do it. A list that only looks current is worse than no list.
Guardrails
- The ERP stays the master. Our tools read JTL-Wawi without writing to it.
- People approve. No tool places an order, sends a shipment or changes a price on its own.
- Stale data stops the run. If the demand window is more than five days old, the build refuses to produce a list.
- New tools run beside the old ones first. The run was reconciled against the tool it replaced before the switch.
- A promise is not a delivery date. A supplier date enters the plan only once it is confirmed.
“A missed refresh must not produce a list that merely looks current.”
What it unlocked
Replenishment became one planning run instead of manual checks of every listing, and ad budgets can now rise in steps as soon as the numbers allow. We measure these builds by what they make possible.
Each stage made the next one possible. Volume made margin work worth doing, connected stock made a planning run possible, and known contribution made break-even bidding and stock priorities by margin possible.
For a channel at this stage, an own range is the next step up, and it can lift margin per sale on the same traffic. Known contribution per product shows where one would pay before any tooling is bought.
What we measure next is the effect of ad changes over complete windows, along with contribution per product as purchase prices are joined.
Principles for your business
- Sell first, then carry, then keep. Fix delivery and range before margin, because on a small base margin work moves few euros.
- Choose fulfillment per product, not per company. Put speed where the volume is and keep margin where the offer is yours.
- Plan stock at the unit you buy. Demand lives at the listing, while purchasing lives at the component.
- Bid to a break-even, not a habit. Raise budget in steps while the last euro still earns more than it costs.
- Run new tools beside the old ones. Plausible numbers can still be wrong, and the old tool is your best test.
If your channel waits on the operation somewhere today, whether on delivery, range, stock or ad budget, that stage is where we would start and remove the constraint with you.
Credits
Built and run by Capcelerate together with the client’s operations, purchasing and management team.