Hugo Galvao de Franca Filho often discusses with sellers who scale too fast for their own supply chain about cases like this: a mid-size pet supplement seller ran a coordinated push across Mercado Livre and Shopee, utilizing sponsored ads, a limited-time discount, and a placement in the marketplace’s own promotional calendar. Sales for the flagship joint-supplement bottle tripled in ten days, exactly as planned. However, on day eleven, the listing sold out and remained out of stock for almost three weeks while new inventory cleared customs.
The campaign did exactly what it was built to do. What it was not built to handle was the impact on a listing’s ranking after the promoted product disappears from the shelf, and that second half of the story usually costs more than the campaign earned.
What ran out first?
The bottle that sold fastest was also the one with the thinnest safety stock, since it had been priced aggressively to drive volume rather than held back as a buffer. The seller had built the campaign budget around ad spend and discount depth, but the inventory plan behind it was still sized for a normal month, not for the demand a successful push was designed to create.
Slower-moving sizes in the same product line still had inventory left when the best-seller ran dry, but a marketplace search does not substitute one size for another automatically. A buyer searching for the exact bottle that sold out sees an unavailable listing, not a helpful nudge toward the smaller size sitting untouched in the same warehouse.
By the time the seller noticed the stockout, three days had passed. Sales data showed the spike clearly in hindsight, but nobody had been tracking days-of-cover against the campaign’s daily sales rate while the push was live, so the warning arrived as an empty product page instead of a number that could have flagged the risk earlier.
What the algorithm did next?
Marketplaces track stockouts, cancellations, and delivery delays as part of a seller’s performance score, and a listing that goes dark after a strong run does not simply pause where it left off. Search ranking drops, and the promotional slots the campaign had earned reset once the listing comes back in stock, as if the previous three weeks of sales history mattered less than the gap that followed them.
The recovery period tends to run longer than the stockout itself, since a marketplace does not restore visibility the moment inventory does. To Hugo Galvao, the listing has to rebuild the sales velocity and review activity that justified its earlier ranking, this time without the promotional push that created the spike in the first place, which makes the second climb slower than the first.
What the cancellations added on top?
Buyers who tried to order during the stockout and had their purchase cancelled also count against the seller’s reputation score, turning a supply problem into cancellation-rate metrics that linger for months. Each cancelled order looks identical to the platform, whether it came from a fulfillment failure or a seller who simply stopped trying.
That score feeds into the same ranking system the campaign had just spent its budget trying to climb. Hugo Galvao points to this loop as the real cost of the case: the metric a good week is supposed to improve is the same one a bad week afterward drags back down, often further than where it started.
What does the case actually teach?
The instinct after a stockout like this is to blame the campaign for working too well, but the actual failure sits earlier, in a safety-stock calculation that assumed normal demand during a period built specifically to break it. A campaign designed to triple sales needs a supply plan built for triple sales, not the average week that came before it.
Hugo Galvao mentions that growth and inventory planning tend to live in separate parts of a seller’s operation, run by different people on different timelines. The listings that hold their ranking through a successful push are usually the ones where someone connected the two before the campaign launched, not after the shelf went empty.