Problems & solutions · Inventory Management

MRO Spare Parts Software Problems: The 7 That Cost Real Money, and How to Avoid Them

MRO Spare Parts Optimization Software workflow illustration showing common problems and fixes.
The short answer

The most expensive failure mode is not a bad forecast. It is a stockout on a part you already own. A fitter searches the material master at 2am, finds the record with zero on hand, does not find the two duplicate records at a storeroom six hours away holding four each, and raises an emergency freight order while the line stands still. You pay three times: the premium freight, the downtime, and the working capital already tied up in the stock you did not know about. Every project in this category is really an attempt to close that gap, and most of them fail because the team scoped an optimisation engine when the actual work was reconciling six part numbers down to one bearing.

Why does the material master cleanup swallow the whole project?

Almost every maintenance, repair and operations (MRO) optimisation project is scoped as an analytics build and delivered as a data remediation programme with analytics bolted on at the end. The proposal says twelve weeks to stocking recommendations. Week five arrives and the team is still arguing about whether BRG BALL 6205 2RS and BEARING,BALL,SKF 6205-2RS are the same item.

This happens more in MRO than in any other inventory domain because item creation is decentralised by design. A contractor needs a part on site today, cannot find the existing record in thirty seconds, and raises a new one so the purchase order can go through. Nobody is doing anything wrong. The purchasing process rewards speed and the master data process rewards nothing at all. Multiply that by twenty years and two acquisitions, and you have several material masters wearing a trench coat.

The fix is to fund normalisation as a named workstream with its own budget line, not as a preparation task. Give it a decision owner with authority to approve merges, a review queue with confidence scoring, and reversible merges with full provenance so a wrong call can be undone. Then narrow the target: your two largest storerooms and your highest spend categories usually cover most of the value and produce a result inside one release. Attempting the entire master in one pass is the single most reliable way to run out of sponsor patience before anything ships.

What goes wrong when you migrate storeroom data out of SAP or Maximo?

Extraction looks trivial until the numbers stop reconciling. Five specific things bite in this vertical, and they bite quietly.

  • Unit of measure. The same gasket is stocked as EA at one site and as a box of 100 at another. Any quantity mathematics run before normalising this produces recommendations that are wrong by two orders of magnitude, and they look plausible enough to be approved.
  • Consignment and vendor managed stock. Material physically in your storeroom that the supplier still owns will appear as your inventory unless ownership is carried through. Optimising stock you do not own wastes the analysis and embarrasses you in the review.
  • Rotables and repairables. A serialised pump that cycles between service, workshop and store is not a consumable. Treated as one, it inflates demand history and the system recommends buying more of something you already have four of, in rotation.
  • Truncated issue history. Many extracts default to two or three years. For a population where a large share of items issue once in five years, two years of history says almost everything is dead stock.
  • Equipment hierarchy without parentage. Exporting functional locations or asset records without their parent relationships gives you a flat list, and criticality inheritance, which is the whole point, becomes impossible.

Reconcile extracted stock value back to the general ledger before anyone runs an analysis. If the two numbers do not agree, the extract is wrong and every recommendation built on it is wrong too.

Why does writeback into SAP or Maximo break after go live?

Reading from the enterprise resource planning (ERP) or enterprise asset management system is the easy half. Writing an approved minimum, maximum and reorder point back into it is where projects stall, and the breakage almost always appears after launch rather than during testing.

Three causes recur. First, min and max are plant specific fields, not global ones. A single recommended number written to the wrong organisational level either fails validation or silently applies somewhere it should not. Second, master data changes are governed. Your data governance team may require an approval path, and field level authorisations may block the service account the interface uses. This is discovered in production because the sandbox had permissive settings. Third, interface failures queue silently. A rejected message sits in a queue nobody watches, the app shows the change as approved, and the storeroom keeps ordering to the old level for four months.

Build writeback in the first release, even if only for one pilot storeroom. Use the vendor supported interface rather than direct table writes, monitor the failure queue with an alert that goes to a person, and run a daily reconciliation that compares what the app believes it set against what the system of record actually holds. If writeback is described as a later phase, assume the project will end as a dashboard nobody acts on.

What happens when insurance spares and criticality are not covered?

The long tail is where MRO differs from every other inventory problem, and it is the part generic software handles worst. A spare transformer winding, a bespoke gearbox for a single line, a control card for equipment the manufacturer no longer supports. These items issue once a decade or never, and the entire reason to hold them is that not holding them costs weeks of lost production.

Two failures follow from leaving this uncovered. If criticality is set to high on every record, which is what happens when a cleanup exercise five years ago made high the safe default, the optimiser recommends holding everything and delivers no savings. If the model instead trusts demand history alone, it recommends disposing of the exact part that stops the plant. Both outcomes destroy trust, and once the storeman stops believing the recommendations he stops opening them.

The fix is a criticality model with a defensible derivation. Link every item to the equipment it serves, through the equipment bill of materials where one exists and through issue history where it does not, then inherit criticality from the equipment, adjusted for whether an alternative part exists and how long a replacement takes to arrive. Give insurance spares their own class with a documented risk decision, an owner and an annual review, so they are excluded from statistical logic rather than mangled by it. Drive obsolescence from equipment status instead of movement, because spares for a pump decommissioned in 2019 will never move and will never be flagged by a movement rule alone.

Should you build custom or configure what you already own?

Some readers should stop here and configure. If you run one plant, a few thousand stock keeping units and one storeman who knows the racks, a disciplined review of min and max levels plus a description cleanup will get you most of the benefit for the cost of a contractor for a quarter. Custom software will not beat a competent person with local knowledge at that scale.

If you already run IBM Maximo and your equipment linkage is reasonably intact, look hard at IBM MRO Inventory Optimization before commissioning anything. Its stocking analytics are real and the integration burden is far lower than a build. The honest caveat is that it assumes a level of data quality and equipment linkage that many organisations do not have, so audit your linkage first rather than after signing. If your problem is specifically duplicate materials across systems at large scale, Verusen is built for that harmonisation job and will find candidates faster than a custom matcher written from scratch.

Build when the governance loop is the problem rather than the analysis. Two or more enterprise resource planning systems after acquisitions that will never be merged. Pooling rules between sites that involve who owns the stock and who pays the freight. Approval paths that have to survive an audit. Those are your organisation's rules, and no product ships with them.

How do hidden costs get into the quote?

Six items are routinely priced at zero and are not free.

  • Human review effort. Merge confirmation and criticality assignment are labour, measured in hours per week from people who have other jobs. This is a client side cost that never appears in the vendor quote and is the most common reason timelines slip.
  • Source system count. Each additional enterprise resource planning or enterprise asset management instance is a fresh extraction, a fresh field mapping and a fresh set of conventions. Two systems is not twice one, but it is not 1.2 either.
  • Unit of measure remediation. Usually discovered mid build and usually a multi week correction across thousands of records.
  • The second storeroom. Pilots are run on the best storeroom because it is the easiest to get access to. The messier ones cost noticeably more per item, and the rollout budget was set from the pilot.
  • Writeback governance. Approval workflow design, authorisation changes and audit trail requirements are organisational work that quotes rarely include.
  • Ongoing normalisation. New duplicate records will be created next month. If nobody owns the queue after launch, the master decays back to where it started within about two years.

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

The successful ones share five traits. Writeback into the system of record ships in the first release rather than being promised later. Every merge is confirmed by a person and is reversible, because automatic merging of material masters eventually deletes a record somebody had reserved against a shutdown. Every recommendation shows its reasoning, the downtime exposure against the holding cost, so the storeman with twenty years of context can disagree and often be right. Reliability engineering signs the criticality model before it drives any policy, because they will be asked to defend it. And scope starts with two storerooms and the top spend categories, so results arrive early enough to fund the rest.

One contractual point matters more here than in most categories. Settle ownership of the code, the cloud accounts and the cleansed master data in writing before kickoff. At Digital Heroes the client owns all of it from the first commit. The harmonised material master is the most valuable output of the entire programme, and it must never sit inside a platform you are only renting.

Research & sources

The evidence behind this guide

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

  1. Digital Champions expect to achieve about 16% in cost savings and around 15% in revenue gains from digital operations over five years; the study surveyed 1,155 manufacturing executives across 26 countries. Source: PwC / Strategy& (2018) →
  2. Global retail loses an estimated $1.73 trillion annually to inventory distortion (out-of-stocks and overstocks), equal to about 6.5% of global retail sales, despite $172 billion spent on improvements in the past year. Source: IHL Group (2025) →
  3. Independent reporting of Gartner's 2025 survey confirms 59% of finance leaders use AI, up from 37% in 2023, with error and anomaly detection (34%) and accounts payable automation (37%) among the leading use cases. Source: CPA Practice Advisor (reporting Gartner) (2025) →
  4. The median annual wage for U.S. software developers was $133,080 in May 2024, and employment is projected to grow 15% from 2024 to 2034 - a core input to any in-house build-vs-buy TCO model. Source: U.S. Bureau of Labor Statistics (2024) →
Charlotte A. · Account Manager · Sydney

Charlotte manages accounts at Digital Heroes, keeping projects and clients aligned through the middle stretch of a build where enthusiasm fades and detail matters. She turns technical progress into language a business owner can act on. Read her for a clearer sense of what to expect from your agency.

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

FAQ

Frequently asked questions

Why did our MRO optimisation project stall at the data stage?
Because the scope treated normalisation as preparation rather than as the main body of work. In most multi site organisations, sixty to eighty percent of the effort in a first release goes into parsing free text descriptions, extracting manufacturer part numbers, matching duplicates and linking items to equipment. If that was priced as a two week task, the schedule was wrong on day one. Restarting successfully usually means narrowing to two storerooms and the top spend categories, funding a review queue with a named decision owner, and shipping recommendations for that subset before widening.
How do we stop new duplicate part numbers being created after cleanup?
Fix the reason people create them. Records get raised because a contractor or planner cannot find the existing item quickly enough to get a purchase order through, so give them a search that matches on manufacturer part number and structured attributes rather than exact description text. Then put a check in the item creation path that surfaces near matches before a new record can be saved, and keep a standing review queue with an owner. Without that owner the master decays back to its original state within roughly two years.
Our min and max levels were set at commissioning and never reviewed. Where do we start?
Start with the items where being wrong costs the most, not the items with the most records. Rank by the product of unit value and equipment criticality, take the top slice, and check three things per item: does the equipment it was bought for still exist, has it issued at all in the last five years, and is there an alternative or repairable option. That exercise alone typically surfaces obsolete stock for decommissioned assets and duplicated holdings across sites, both of which release cash without adding any stockout risk.
Why does the system keep recommending we dispose of critical spares?
Because it is reading demand history and your insurance spares have almost none. An item that has issued twice in nine years looks identical to dead stock in any movement based rule. The correction is to exclude that population from statistical logic entirely and treat it as a documented risk decision instead: what does a stockout cost in downtime, what is the replenishment lead time, is there an alternative. Give insurance spares their own class with an owner and an annual review, and derive criticality from the equipment served rather than from a field somebody filled in years ago.
What breaks when we write new stocking levels back into SAP?
Three things, and all of them tend to surface after go live rather than in testing. Minimum and maximum are plant specific fields, so a global number written at the wrong organisational level either fails validation or lands somewhere unintended. Master data changes are governed, and the service account the interface uses may lack the field authorisations that were permissive in the sandbox. And failed messages queue silently, so the app reports the change as applied while the storeroom keeps ordering to the old level. Monitor the failure queue and reconcile daily against the system of record.
Can we run this across two ERPs from an acquisition without merging them?
Yes, and for most groups that is the realistic answer, because a full merge of two material masters is a multi year programme with its own business case. The build reads both, normalises into one canonical item identity with a mapping back to each source record, and writes approved levels back into whichever system owns that storeroom. Expect the second source system to add real cost rather than a small increment: different field conventions, different description habits and a different equipment hierarchy structure all have to be handled explicitly.
How do we handle consignment stock and vendor managed inventory?
Carry ownership as an explicit attribute from the first extract, because material sitting in your storeroom that the supplier still owns should not be counted in your working capital or optimised as though it were. Consignment also changes the replenishment logic: the trigger is a consumption signal to the supplier rather than a purchase order, and the reorder point serves a different purpose. Mixing the two populations in one analysis produces savings figures that will not survive scrutiny in the review meeting.
Is cross site pooling worth building if our sites are far apart?
Often yes, but the value depends on the item rather than the distance. For a slow moving high value spare where the alternative is a six week manufacturing lead time, a six hour road transfer is an excellent outcome and pooling releases the duplicate holding. For a cheap fast mover, transfer cost exceeds the saving and each site should hold its own. Build the pooling view to show both the transfer time and the replenishment lead time side by side, and settle in advance who owns the stock and who pays the freight, because that governance question stalls more pooling programmes than the software does.
How much does custom inventory management software cost for a small business?
A single-location system with receiving, stock movements, and barcode scanning typically runs $15,000 to $40,000, based on Digital Heroes delivery experience across 2,000+ projects. Multi-warehouse, multi-channel builds land between $40,000 and $120,000, and manufacturing or forecasting features push past that. The biggest cost driver is logic rather than screens: lot tracking, unit conversions, and channel sync each add real engineering time.
What tech stack should a custom inventory system be built on?
A deliberately boring one: PostgreSQL for the stock ledger, a mainstream backend such as Node.js, Python, or .NET, a web dashboard, and a mobile app or mobile web interface for scanning. The data model matters far more than the language; an append-only movement log with atomic stock updates prevents overselling in any stack. Reject anything exotic that only the original developer can maintain.
How do I calculate whether custom software will pay for itself?
Divide the build cost by the monthly benefit, where benefit is hours saved times loaded hourly cost, plus subscription fees replaced, plus any revenue the software unlocks. Three staff saving 10 hours a week each at a $40 loaded rate is about $62,000 a year, which pays back a $60,000 build in roughly 12 months. Across Digital Heroes internal-tool projects, 12 to 24 months is the normal payback range, and anything projecting under 6 months usually means the spreadsheet is hiding costs.
How many SKUs are too many for managing inventory in Excel or Google Sheets?
Excel and Google Sheets typically start failing past roughly 1,000 SKUs, more than one sales channel, or more than two or three people editing stock levels. The failure mode is not the row count but stale, conflicting edits that cause oversells and phantom stock. If someone on your team spends hours each week reconciling the sheet against the shelf, you have already outgrown it.
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.
How many SaaS seats do we need before building custom becomes cheaper?
The crossover usually shows up between 20 and 50 seats on premium tiers. Salesforce Enterprise lists at $165 per user per month, so 40 users cost about $79,000 a year in subscriptions, which is real money against a custom system you would own outright. Run the comparison over three years: if subscription spend beats the build cost plus 15-20% annual maintenance, custom wins on price before you even count workflow fit.
Who owns the code when an agency builds my software?
You should, completely, through a written intellectual property assignment that transfers everything on final payment; without that clause, copyright stays with whoever wrote the code by default. Insist that the repository lives in your own GitHub organization from day one and that hosting, domains, and third-party accounts are registered to you. Also check for licenses to the agency's proprietary frameworks buried in the contract, because those can make switching vendors practically impossible even when you own your own code.
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.
Can custom software connect to the tools we already use, like QuickBooks, Stripe, and Google Workspace?
Yes, and connecting your existing tools is one of the main reasons to build custom: mainstream platforms like QuickBooks, Stripe, Shopify, and Google Workspace all publish documented APIs. Budget 1 to 3 weeks of work per integration depending on API quality and how much data flows in both directions. Ask any vendor whether they have integrated with your specific tools before, because quirks like QuickBooks' OAuth token handling and API rate limits get learned on someone's project, and it should not be yours.
Can custom inventory software connect to QuickBooks, Shopify, and Amazon?
Yes, and integrations are where custom usually beats off-the-shelf, because they are built to your exact field mapping instead of a connector's assumptions. A typical build syncs orders and stock with Shopify and Amazon in near real time and pushes purchase and cost of goods sold data to QuickBooks or Xero on your accounting schedule. Each production-grade integration adds roughly $3,000 to $8,000 in Digital Heroes builds, so list every system during scoping.
What's a realistic timeline for building a custom inventory system?
A usable first version covering receiving, stock movements, scanning, and low-stock alerts ships in 8 to 12 weeks across Digital Heroes inventory builds. Full multi-warehouse systems with Shopify, Amazon, and accounting integrations run 4 to 6 months. Any quote under 6 weeks usually means the vendor has not scoped concurrency handling or data migration.
What should I have ready before I contact an agency about inventory software?
Bring four things: your SKU count and how stock is identified (plain SKUs, or lots, serials, and expiry dates), every channel and system the software must talk to, a plain-language walkthrough of one order from purchase to shelf to shipment, and a sample export of your current data. With those, an agency can produce a real quote in days instead of a placeholder that doubles later. A one-line brief gets you a demo-sized quote for an operations-sized problem.
Who can build a custom inventory management software system?

Digital Heroes builds custom inventory management 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 inventory management 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?