Problems & solutions · Custom Software

Promotion Planning Software Problems: The 7 That Cost Real Margin, and How to Avoid Them

Promotion Planning Software software overview illustration showing common problems and fixes.
The short answer

The most expensive failure in a promotion planning build is a mechanic simulator that was never reconciled against the register. If the software models a mix and match or threshold offer the way the merchandising team describes it rather than the way your point of sale (POS) actually allocates the discount, then every forecast, every margin projection and every scan back claim built on top of it is wrong by an amount nobody can quantify. Retailers usually discover this in a supplier dispute, months after the offer ran, when the units the system says were sold at the promotional price do not match what the supplier's own records show and the claim gets short paid with no way to argue back.

Why does the ad circular deadline end up defining the whole project scope?

Almost every promotion planning brief we are handed was written by whoever owns the circular. That is understandable. The pagination deadline is the only immovable date in merchandising, because a printer holds a press slot, and a date that cannot move colonises everything around it. So the requirements document describes a better version of the spreadsheet the merchandising team currently uses to fill pages, with a nicer calendar and a duplicate item check.

Six months later the retailer has exactly that, and none of the problems that were actually costing money have moved. Vendor funding is still claimed from memory. The forecast still ignores what the offer does to the private label sitting next to it. Post event evaluation is still a prior period comparison. Those three had no deadline attached, so they were pushed to a phase two that was supposed to be funded by savings the first phase never produced.

The fix is to scope from the money rather than from the deadline. Two objects carry nearly all the value in this category: the offer, as a record that funding, pages, stores and results all hang off, and the mechanic, as something your register executes in a specific way. Build those two properly and pagination becomes a view over the offer table rather than the reason the project exists. The circular still gets to print on time. It just stops being the architecture.

What goes wrong when you migrate promotional history and deal sheets?

Deal data is the worst migration we see in retail, and it is worse than merchandising teams expect because they have never had to look at it all in one place. Supplier deals live in a deal sheet workbook, in the category manager's email, in a finance accrual schedule that was summarised from the workbook, and in a handful of arrangements that were agreed on a call and written down afterwards in shorthand only the person who wrote them can read.

Historic performance is a different problem. Your sales history is keyed to item, store and week, with no offer identity in it at all, so you cannot reconstruct which offer produced which movement when the same item was promoted in overlapping windows with different mechanics. Teams discover this three weeks into a build, when someone asks for last year's results by offer and finds the question unanswerable.

The approach that works is to stop trying to migrate deals. Set a cutover date, capture every new offer properly from that point, and load transaction history far enough back to cover a full seasonal cycle so baselines and substitution can be calibrated from movement rather than from reconstructed offers. Then reconstruct historic offers only where there is a live funding dispute worth the effort, which is usually a handful of suppliers rather than the whole book.

Why do the point of sale and finance integrations break after launch?

Four connections matter here and each fails in its own way. The item and price master feeds you what exists and what it normally costs. The point of sale promotion engine executes what you planned. The loyalty or digital coupon platform decides whether an offer stacks. And the finance system carries the accrual and the claim.

The reason these break more often in promotion work than elsewhere is cadence. Promotional configuration changes weekly, and in most retailers the point of sale promotion engine is configured by a different team on a different release schedule from the merchandising system. Someone adds a new offer type at the register for a seasonal campaign, nobody tells the planning team, and the simulator quietly mismodels every offer of that shape from then on. Nothing errors. The number is just wrong.

The fix is a standing reconciliation rather than a one time validation. Once a week, replay a sample of live baskets that contained promotional mechanics through the simulator and compare the computed discount against the discount the register actually gave. A break raises an alert with the offending mechanic named. Do the same on the funding side by reconciling accrued amounts against claimed and received amounts per supplier, and treat a growing gap as a system fault rather than a finance chase. Both checks are cheap to build during the project and close to impossible to retrofit once the team has moved on.

What happens when the funding evidence and advertised price obligations are not covered?

Two gaps sit outside the forecasting conversation and both cost money quietly. The first is funding evidence. Off invoice deals, bill backs, scan backs and placement fees each require different proof, and when a supplier's records disagree with yours, whoever has better documentation wins. A retailer whose evidence is an email chain loses by default and stops arguing, which is how underclaimed funding becomes permanent without ever appearing as a loss on a report.

The second gap is advertised price accuracy. If the circular says one price and the register charges another, that is a customer trust problem and in many jurisdictions a regulatory one. It happens constantly when the ad file and the point of sale file are produced from different sources, because someone changed a price after pagination and only one of the two systems heard about it.

Both are fixed by the same design decision. Generate the ad price file and the register promotion file from the same offer record, never from two exports, and hold the funding terms, the pages and weeks, the store scope, the scanned units and the claim against that record. Then a price mismatch becomes impossible by construction and a claim is produced from data rather than assembled from memory.

Should you build custom or configure Oracle Retail or Blue Yonder instead?

A real share of retailers reading this should configure rather than build, and we would say so on a call. If you are on Oracle Retail or Blue Yonder end to end, the promotion module already sits next to your item, price and sales data. A custom build would spend a large part of its budget recreating integration you have already paid for, and the honest comparison is configuration effort against a full integration programme. Configure. Spend the difference on cleaning your deal data, which is what actually constrains you.

If your genuine question is which price point or offer structure performs best, Revionics and Eversight are built for that and are worth evaluating before commissioning anything. They are testing engines that sit alongside your calendar rather than becoming it, and if testing is the gap they will get you there faster.

And if you run a handful of price cuts a month with no supplier funding attached, buy nothing. A shared calendar and a competent category manager is enough, and software will not improve a process that is already proportionate to the problem.

Build when funding is material to your category margin and you cannot evidence a claim from data, when your register executes mechanics your planning tool cannot represent, or when you operate multiple banners where a centrally negotiated deal is executed differently in each one. Those three are structural, not preference, and configuration will not close them.

How do hidden costs get into a promotion planning quote?

The line item that moves most is mechanic simulation. Every distinct offer type your register supports is separate modelling and separate reconciliation against historical baskets, and retailers routinely underestimate how many they have because the long tail was added over years by different people. Count them before you ask for a price. Four standard mechanics is a very different project from fourteen.

Digital and personalised offers are the second. A targeted coupon changes the baseline per customer, which changes the evaluation logic, which means the reporting layer is a different build rather than a filter on the existing one. Multi banner operations are the third, because a deal negotiated centrally and executed differently per banner doubles the funding model rather than adding a field to it.

Then the costs that are not engineering. Getting usable access to your own transaction history often needs a data warehouse team with their own backlog, reconstructing historic offers for a funding dispute is slow analyst work, and discovery consumes category manager hours during the season they are busiest.

Ask any prospective developer to price mechanic simulation per mechanic and to state explicitly what they are assuming about data access. A quote that treats simulation as one line is a quote that has not been thought about.

What separates a promotion build that works from one that fails?

The builds that work put a gate before the forecasting. Nobody writes a line of forecasting code until the mechanic simulator reconciles against a quarter of real basket history to the cent. That single rule kills most of the ways this category fails, because it forces the team to understand your register before they model your business, and it produces an artefact the merchandising team can trust rather than a number they are asked to believe.

The second thing they get right is sequencing. Funding evidence first, because it is the piece that pays for the project and the piece nobody else is solving. Forecasting second, once the plumbing is trusted. Honest evaluation last, because it is the one that will be uncomfortable. Expect the first quarter of properly constructed baselines to show that some of your calendar has been running on faith, and plan for who explains that to whom before the report exists.

The third is ownership. A named person in merchandising, not in technology, has to own the offer record and be accountable for it. Systems here fail quietly when category managers keep private spreadsheets running alongside, and the tell is not complaints, it is silence.

Finally, settle code and data ownership before kickoff. Promotional funding history describes your supplier negotiations in detail, which makes it among the most commercially sensitive data you hold. At Digital Heroes the client owns the repository and the infrastructure accounts from the first commit, and that is the arrangement any retailer should insist on here.

Research & sources

The evidence behind this guide

Independent findings on why this investment pays off. Every link goes to the primary source.

  1. Technology 'Leaders' grow revenue at more than twice the rate of 'Laggards'; laggards surrendered 15% in foregone annual revenue in 2018 and stood to miss out on as much as 46% in revenue gains by 2023 if they did not change their enterprise technology approach. Based on a survey of more than 8,300 organizations across 20 industries and 20 countries. Source: Accenture (2019) →
  2. Only 22% of firms are 'future ready' having significantly transformed digitally; these companies show average revenue growth 17.3 percentage points and net margins 14.0 percentage points above their industry average. Source: MIT Center for Information Systems Research (MIT Sloan) (2022) →
  3. Gartner estimates RPA can eliminate up to 25,000 hours of avoidable rework caused by human errors in the finance function each year, equating to savings of roughly $878,000 for an organization with 40 full-time accounting staff (based on interviews with more than 150 corporate controllers and chief accounting officers). Source: Gartner (2019) →
  4. 88% of organizations are concerned about employee retention, and providing learning opportunities is respondents' #1 retention strategy; career progress is cited as people's top motivation to learn, yet only 36% of organizations qualify as 'career development champions.'. Source: LinkedIn Learning (2025) →
Kayum K. · Senior Full Stack Developer · Lucknow

Kayum builds custom software end to end, from the data model to the screens a client's staff use every day. Much of that is ERP and CRM work, where the hard part is mapping a messy process into something a system can hold. He writes about the early decisions that get expensive to change.

View profile · Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.

FAQ

Frequently asked questions

Our point of sale is configured by a different team. How do we keep the simulator in sync?
Treat it as a standing reconciliation rather than a one off validation. Once a week, replay a sample of real baskets containing promotional mechanics through the simulator and compare the computed discount against the discount the register actually gave, with an alert naming the offending mechanic when they diverge. This catches the common failure, which is a new offer type configured at the register for a seasonal campaign that nobody mentions to the planning team. Without the check, the model keeps producing confident numbers that are quietly wrong.
How far back should we load transaction history for a promotion build?
Far enough to cover a full seasonal cycle in every category you plan to forecast, because substitution behaviour and pantry loading patterns differ by season and by product type. Loading more than that helps the model marginally and adds real cost in extraction and storage, so it is rarely the right trade early. What matters more than depth is that the history includes store and basket level detail, since category level weekly totals cannot support either a substitution estimate or a mechanic reconciliation.
Can we claim vendor funding retrospectively once the system is live?
Only where the underlying evidence still exists in your transaction data, which is usually scan backs and bill backs rather than placement fees. Reconstructing which offer ran on which page in which week from historic records is analyst work and it is slow, so pick the suppliers where the disputed amount justifies the effort instead of attempting the whole book. Going forward the position changes completely, because the offer record carries its own evidence from the day it is created.
What happens to promotions already in flight at cutover?
Leave them in the old process and run them out. Splitting a live offer across two systems means the funding evidence for that offer sits in two places, which is the exact problem the build exists to eliminate. Pick a cutover that falls on a clean pagination boundary, capture every offer from that point in the new system, and accept a short period where the merchandising team is looking at two calendars. It is far cheaper than partially migrating offers mid flight.
Our category managers agree some deals verbally. Will software stop that?
No, and a build that assumes it will is going to be worked around. The realistic design accepts a provisional deal captured in seconds with the terms the category manager remembers, then flags it as unconfirmed until documentation is attached, with the flag visible on the offer and in the accrual. That gives finance an honest picture of what is evidenced and what is not, which is more useful than a policy nobody follows and a system that pretends every deal is documented.
Why did our last promotion tool get abandoned by the merchandising team?
The usual reason is that it added work without removing any. If the tool required the calendar to be entered again in a different shape but the ad still got built in the spreadsheet, the spreadsheet won, because it was the one with the deadline attached. Systems in this category survive when the ad file and the register file are both generated from the tool, so the spreadsheet has nothing left to do. Watch for silence rather than complaints, since quiet parallel spreadsheets are the failure signal.
How should a multi banner deal negotiated centrally be modelled?
As one commercial agreement with per banner execution attached to it, not as separate deals per banner, because a central negotiation is a single obligation to the supplier even when each banner runs the offer differently. The funding model then has to allocate earned amounts back across banners on a rule you agree with finance in advance, since it drives internal margin reporting. This is one of the largest genuine cost drivers in the category and should be priced explicitly rather than assumed.
Do we need store execution tracking in the first release?
Not usually, but you need to plan for it, because without it you will draw conclusions from promotions that were never actually set. The cheap first version is a checklist or photo confirmation per store per week generated from the same plan that generated the ad, which is enough to separate an offer that failed from an offer that never appeared. Full compliance workflow with defect follow up can wait until the calendar and funding pieces are trusted.
What is a discovery phase, and is it worth paying for separately?
Pay for it, and treat the output as yours. A discovery phase runs two to three weeks, typically 5 to 10% of the eventual build budget, and produces a written scope, wireframes, and a fixed quote you can take to any vendor, including a competitor of the agency that wrote it. Skipping it is how projects end up quoted from a two-paragraph email and delivered at twice the price.
Is it cheaper to customize Salesforce than to build a custom CRM from scratch?
If you use less than a third of what Salesforce does, a custom CRM is often cheaper by year three. Salesforce Enterprise lists at $165 per user per month, so 25 seats cost about $49,500 a year before admin and consultant fees, while a focused custom CRM runs $60,000 to $100,000 once plus 15 to 20% a year in maintenance. If you genuinely need Salesforce's ecosystem, reporting, and app marketplace, customizing it beats rebuilding it; the mistake is paying enterprise prices to use it as a glorified contact list.
What happens if I stop paying for maintenance after launch?
Nothing breaks on day one, which is what makes it dangerous. Within 6 to 18 months, unpatched dependencies accumulate known vulnerabilities, an integrated API like Stripe ships a breaking change, and the first fix requires a developer to relearn a stale codebase at full price. Budget 15 to 20% of the build cost per year for upkeep; it is the difference between a $500 patch and a $15,000 emergency.
Can we migrate years of data out of our current system into new custom software?
Almost always yes, through CSV exports or the vendor's API, and migration should be scoped as its own workstream with field mapping, a dry run, and a planned cutover window rather than an afterthought. The real time sink is rarely moving the data; it is cleaning it, since years of duplicates, free-text fields, and inconsistent formats surface all at once. Pull a full export from your current vendor before committing to anything new, because some SaaS plans restrict exports on lower tiers.
Should I ask for a fixed price or pay the agency hourly?
Fixed price for the first version, hourly or retainer for what comes after launch. A fixed-scope, fixed-price V1 puts the estimation risk on the agency, which is exactly where you want it while trust is unproven; hourly billing on an unscoped greenfield build is a blank check. After launch, flip it, because maintenance and small features arrive unpredictably and fixed-pricing every ticket wastes everyone's time.
What should I prepare before contacting a software development agency?
A one-page brief beats a 40-page requirements document: the business problem in plain words, who will use the system, the 5 to 10 workflows it must handle, the tools it must connect to, and your budget range and deadline driver. You do not need wireframes, a specification, or technical vocabulary; producing those is the agency's job during discovery. Stating a budget range up front is the single best move, because it gets you honest scoping instead of a quote engineered to win the meeting.
What are the biggest mistakes first-time software buyers make?
Choosing the lowest bid, paying more than 30-40% upfront instead of on milestones, skipping a written specification, and having no maintenance plan for after launch. The most expensive of the four in Digital Heroes rescue projects is the missing spec: without written acceptance criteria, done becomes an argument instead of a checklist, and every disagreement resolves in the vendor's favor. Fix those four and you have avoided most of the ways these projects fail.
Should I hire a freelancer or an agency for my software project?
A skilled freelancer is the right call for a single-discipline scope under roughly $15,000, like a website, a plugin, or one integration. Above that, projects need design, backend, testing, and project management at once, and a solo builder becomes the single point of failure: if they get sick or take a bigger client, your project simply stops. Agencies bill 20-40% more per hour but carry continuity, code review, and someone to escalate to, which is what you are actually buying.
How much should a small business budget for its first custom app or website?
For a focused first build, most small businesses land between $8,000 and $60,000: roughly $8,000 to $45,000 for a custom website and $25,000 to $60,000 for an internal tool or simple web app, based on Digital Heroes delivery across 2,000+ projects. Customer-facing products with payments, logins, or a mobile app start around $40,000. Quotes far below these bands usually mean a template with your logo on it, not software shaped around your workflow.
If we build for 20 users now, will the software cope with 500 later?
It should, without a rewrite, if it was built on a standard cloud stack; going from 20 to 500 users is mostly a hosting configuration change costing hundreds a month, not a second project. What actually breaks under growth is sloppier work: database queries never indexed for volume and features designed assuming one office's worth of data. Before signing, ask the vendor what happens to the system at ten times today's data, and listen for a specific answer.
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.

Keep reading
let's build

Build something worth launching.

A plan, a team, a timeline, within 24 hours. No decks, no discovery calls. Tell us what you're building and we'll come back with a real scope and a real number.

message us directly · we reply within one business day

mission briefing

Monthly dispatch

Playbooks, real build costs, and what we're shipping. One email a month. No fluff.

visit us

New York HQ

1140 Broadway, Suite 704 · New York, NY 10001

Get directions
Online now

Hey there 👋 How can we help you today?