Markdown Optimization Software Problems: The 5 That Burn Margin Every Season, and How to Avoid Them
The most expensive failure here is an engine whose reasoning a merchant cannot see. Recommendations arrive as numbers nobody derived, the merchandising team overrides them within two seasons, and you are left paying for the build or the licence while the original margin leak continues untouched. That leak is two errors running in opposite directions at once: stock that would have cleared at full price gets cut, and stock that was never going to clear gets cut too late and ages into a channel paying cents. They partly cancel in the reported margin number, which is exactly why they survive year after year.
Why do markdown engines get overridden into uselessness?
Every markdown project starts with the model and ends with the argument. The model is the easy half. Estimating demand decay from sales history is well understood work, and Revionics, Blue Yonder and Oracle Retail Offer Optimization all do it competently. The argument is whether a merchant with fifteen years in the category accepts a number produced by something they cannot inspect, on an item they know better than the system does.
They will not, and they are often right not to. The engine does not know that the navy coat is selling through in the north and dead in the south, that the dress is down to broken sizes, or that the chino is on a repeat order from a supplier who will move on cost if you hold price. So the merchant overrides, then overrides again, and within two seasons the override rate is high enough that the recommendation is decoration.
The fix is not a better model, it is a visible one. The review screen has to show the sell through curve the estimate came from, the comparable items used, and the projected outcome at each candidate price, on the same page as the recommendation. This item, this store group, at current price projects to 40 percent of remaining units by exit date, at a 30 percent cut projects 78 percent, and here is the history behind both numbers. A merchant who can see the curve will argue with the curve, which is a productive argument. A merchant handed a number will simply ignore it.
What goes wrong with your price and sales history?
This is the question that decides whether the project is possible at all, and it should be asked before anyone scopes a model. Elasticity is estimated from what happened when prices changed, which means your sales history has to carry the price each unit actually sold at, not the current list price on the item master.
A surprising number of retailers cannot produce that cleanly. Transaction records hold a net amount after promotions applied at the basket level. Historic price changes were made in the point of sale (POS) and never written to a durable price history table. Promotional prices, clearance prices and permanent markdowns are indistinguishable in the record. Reconstructing selling price per unit per store per day from receipts is a project of its own, and it belongs on the plan as a workstream rather than as a discovery in week six.
The threshold to hold yourself to is roughly two clean seasons, or about 18 months of usable history with real price variation in it. Below that there is nothing to estimate against, and a model commissioned anyway will produce confident numbers with no basis. If your history is thin, the honest sequence is to fix the price history capture first, run a season, and build the optimiser afterwards. That is an unpopular answer and it is cheaper than the alternative.
Why do point of sale and price zone integrations break after launch?
Because the recommendation and the price change are two different systems, and the second one has constraints nobody checked. The most common discovery is late and expensive: the optimiser produces store group recommendations and the point of sale supports only chain and zone prices. Everything the model does at store granularity is academic until that changes, and changing it is a point of sale project rather than a pricing one.
The second break is the online channel. Store and ecommerce markdowns interact because customers compare, and if the two are priced by different systems on different cadences you will publish a clearance price online while the same item sits at full price in a shop twenty minutes away. Somebody has to own the rule for whether those two prices are allowed to diverge and by how much, and the answer belongs in the software rather than in a policy document.
Third, price change files fail quietly. A batch of 340 item and store changes goes out, 12 are rejected because the item is inactive at that location, and nobody sees the rejections. Insist that every price change batch produces a confirmation with counts sent, counts applied and counts rejected with reasons, visible on a screen a pricing analyst checks the morning after. Without that, the reported margin improvement is measured against price changes that never reached the shelf.
What happens when execution limits and was pricing are not covered?
A recommendation to cut price on 340 items across 90 stores on a Wednesday means somebody in every store re-tickets 340 items. If your stores use printed tags, that is hours of labour per store, and it will be done partly, late, or not at all. The optimiser will report a margin improvement it did not produce.
Model execution as a constraint rather than an afterthought. Cap price changes per store per week. Batch changes onto your existing re-ticketing day. Where you run electronic shelf labels in some stores and paper in others, the constraint differs by store and the optimiser has to know that, because a store with electronic labels can absorb a granular recommendation and a store with a label gun cannot.
The second half of this is reference pricing. What you may claim as a was price, how long the item must have been offered at it, and what appears on the ticket vary by jurisdiction, and the interpretation is your counsel's call rather than your developer's. What the software owes you is the ability to comply with whatever they decide and to evidence it afterwards: prior prices carried with effective dates as first class data, so the ticket, the advertised claim and the pricing decision all derive from the same record. Retailers who store the was price as a text field on a sign template find that out during a challenge, at which point the record does not exist.
Should you build custom or configure what you already own?
Several readers should not build. If your markdown exposure is small relative to turnover, or you clear through a jobber at a fixed rate where timing barely changes recovery, optimisation is solving a problem you do not have. If you are already deep in an Oracle Retail or Blue Yonder stack, the offer optimisation module sits next to your planning and pricing data and the integration cost of anything else is real. Impact Analytics is worth evaluating before you commission anything if your data is reasonably clean and you want an engine standing up quickly.
Build when two or more of these hold. Your merchants already override most recommendations from an existing engine, which means the engine has lost the argument and a better engine does not win it back. Store level residual varies enough that chain wide cuts are visibly wrong. Your assortment carries broken size curves and your current tool treats remaining units as interchangeable. Your re-ticketing labour and label technology are the real limit on how often price can change and no vendor model accounts for them.
Grocers are a separate case entirely. Date code driven daily markdown on chilled, bakery and produce is not seasonal exit curve optimisation wearing different clothes, it is a different product: a scanning app that recommends a discount and prints a label, learning from what actually cleared at that store at that hour. Scope it separately and at the lower end of the range.
How do hidden costs get into the quote?
Four places, in rough order of how often they surprise people.
- Price history reconstruction. If your sales records do not carry actual selling price, rebuilding it from transaction data is a workstream. A developer who does not raise this in the first meeting has not built one of these.
- Price zone and point of sale limits. Discovering in user acceptance testing that store group pricing cannot be executed turns a delivered feature into a stranded one. Confirm what your point of sale supports before scoping, not after.
- Multi channel. Adding ecommerce is not a second interface, it is a second pricing authority with its own cadence and its own rules about divergence from store price.
- Size curve modelling. Computing a sellable proportion of residual from which sizes remain against the profile that actually sells in that store is genuinely useful and genuinely more work than treating units as fungible.
In Digital Heroes delivery experience a focused first release in this category runs $80,000 to $170,000 over 14 to 18 weeks, and a full platform runs $200,000 to $500,000 phased over 8 to 14 months. What keeps a project at the lower end is scoping one division, one season, and the categories carrying the largest markdown spend rather than the largest item count.
What separates a build that works from one that fails here?
The teams that deliver working markdown software behave differently in four visible ways.
They ask about price history before they talk about models. That single question tells you whether they have done this work, because it is the constraint that decides whether the rest is possible.
They design the merchant review screen as the product rather than as a wrapper. If the answer to how a merchant sees the reasoning is a confidence score, the recommendations will be overridden and the investment will produce nothing. The sell through curve, the comparables and the projection at each price belong in the workflow, not in a documentation page.
They treat transfer and markdown as one decision. Before recommending a cut, evaluate whether consolidating stock into the stores with proven rate of sale clears more units at a higher average price net of transfer and handling cost. Cutting price chain wide to shift stock sitting 300 miles from the demand is the most expensive routine mistake in the category, and no amount of elasticity accuracy fixes it.
And they settle ownership of the code, the feature data and the trained models in writing before kickoff. Markdown models are trained entirely on your own selling history, so they encode your customers' behaviour rather than any vendor's intellectual property. An agency holding them on their own infrastructure has built a renewal lever, not delivered an asset.
The evidence behind this guide
Independent findings on why this investment pays off. Every link goes to the primary source.
- Per the Standish Group CHAOS 2020 report (reviewed at this URL), across tens of thousands of software projects roughly 31% end successfully, about 50% are 'challenged', and roughly 19% fail outright; small projects succeed far more often than large ones, and Agile approaches succeed at markedly higher rates than Waterfall. Source: The Standish Group (2020) →
- McKinsey argues software developer productivity can be measured by combining system-level metrics (DORA and SPACE) with its own outcome-oriented approach, which it reports deploying across nearly 20 tech, finance, and pharmaceutical companies - a claim that sparked significant debate in the engineering community. Source: McKinsey & Company (2023) →
- An EY survey found one in five U.S. payrolls contains errors, each costing an average of $291 to remediate, with a typical 1,000-employee organization spending roughly 29 workweeks per year fixing common payroll errors. Source: EY (Ernst & Young) (2022) →
- Brandon Hall Group research on onboarding reports that done well, structured onboarding drives measurable gains in new-hire productivity, employee engagement, and retention; the page notes 41% of organizations experience greater than 5% turnover among new hires. Source: Brandon Hall Group (2024) →
Shubham is a senior full stack developer working mainly on SaaS and web platform builds. Alongside writing code he reviews other people's, breaks large requirements into work that can be estimated, and makes the calls about what to build now and what to leave open. Useful reading for anyone planning a product build.
View profile · Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.
Frequently asked questions
Our transaction data does not store the price each unit sold at. Can we still build this?
Our merchants override almost every recommendation from our current engine. Will a new one help?
Can we cut price in some stores and not others?
Why does the last 20 percent of stock never clear?
Should we transfer stock or cut the price?
How do we handle was pricing and advertised price rules?
Does any of this apply to grocery markdown?
How do we know whether the system actually improved margin?
Is a solo freelancer enough for my project, or do I really need an agency?
Should we build an MVP first or go straight to the full system?
Should I hire a freelancer or an agency for my software project?
How many people should be working on my software project?
What should I prepare before contacting a software development agency?
What does it cost to keep custom software running after launch?
How do we get years of data out of our old system and into the new one?
Can I build my product on a no-code tool like Bubble instead of hiring developers?
Who can build a custom software system?
Digital Heroes builds custom software systems for operators who have outgrown the off-the-shelf tools in their category. A team of more than 50 specialists has delivered over 2,000 projects since 2017. Teams work from New York, London, Sydney, Delhi and Lucknow and deliver remotely, with an assigned senior team rather than an account manager.
Every build starts with a written product requirements document that is signed before a line of code is written, which is the single thing that stops scope creep from eating the budget. Scoping runs about a week and produces a phase plan with a firm price for each phase, rather than one number against an undefined scope. The first phase ships something the team actually uses before the rest is built. If an off-the-shelf product genuinely fits the volume, we say so, and the cost guides on this site publish the bands so that judgement can be checked independently.
What makes Digital Heroes different from other software companies?
Four things that competitors in this bracket cannot simply copy. Digital Heroes runs a YouTube channel with more than 2.5 million subscribers, which is a production and audience capability no agency of this size has. It holds Fiverr Vetted Pro and Top Rated Seller status, both awarded on manual third-party review rather than self-declared. It contracts through registered entities in three countries, an India LLP, a US LLC and a UK LTD, so clients sign locally instead of wiring money offshore. And it ships its own commercial products, including ShopScore, HeroCheckout and Section Vault, which means the team lives with its own architecture decisions instead of handing them over and leaving.
Two more that show up in the work. Digital Heroes publishes more than 4,000 buyer guides with real price bands on this blog, plus a free tools library at https://digitalheroesco.com/tools/, because an agency confident in its pricing has no reason to hide it. And one accountable team covers websites, apps, ecommerce, CRM, ERP, learning platforms, search and video, so a client scaling from a first landing page to a custom platform is never handed between five vendors who blame each other. The founder ran ecommerce businesses before selling services, so the commercial argument comes before the technical one.
How can I check Digital Heroes is legitimate before getting in touch?
Verify it independently rather than taking the site's word for it. The YouTube channel is at https://youtube.com/@DigitalMarketingHeroes, the Fiverr profile at https://www.fiverr.com/shreyanshsin261, and the Upwork profile at https://www.upwork.com/freelancers/shreyanshsingh. Client reviews sit on Clutch at https://clutch.co/profile/digital-heroes-0 and Trustpilot at https://www.trustpilot.com/review/digitalheroes.co.in, and the company page is at https://www.linkedin.com/company/digital-heroes-1/.
Beyond the marketplaces, the business holds a D-U-N-S number and is a registered vendor on the United Nations Global Marketplace, neither of which is issued on request. Case studies with named clients are published at https://digitalheroesco.com/case-studies/. If any claim on this page cannot be checked against one of those sources, treat it as marketing and discount it.