Problems & solutions · Internal Tools

Software Asset Management Problems: The 5 That Cost Real Money, and How to Avoid Them

Software Asset Management Software product interface illustration showing common problems and fixes.
The short answer

The most expensive failure in software asset management is a licence position you cannot derive. The audit letter arrives, you can show what is installed but not what you were entitled to on the relevant dates, and you cannot produce the cluster topology history that would limit your exposure. With no evidence to the contrary, the publisher's maximum interpretation stands, and a single demand on a database or virtualisation estate can exceed what a proper build would have cost several times over. The second loss is quieter: the renewal that follows is negotiated from a position everybody in the room knows is weak.

Why does the discovery dashboard get built instead of the entitlement register?

Because deployment data is available and entitlement data is not. Somebody can point a discovery tool at the estate this week and produce an impressive dashboard of installed titles by version, and that feels like progress. Entitlements sit in purchase orders in the finance system, agreements in a legal repository, amendments attached to emails and support renewals in the procurement tool, so nobody starts there.

The result is a system that answers half the question. Knowing what is installed tells you nothing about exposure, because exposure is the gap between deployment and entitlement, and the entitlement side is where the specificity lives. Your position is decided by your contracts: a legacy agreement with a grandfathered metric, an unlimited licence agreement with a certification date, affiliate definitions that determine whether an acquired subsidiary is covered at all, migration and downgrade rights negotiated at a renewal, development and test exclusions, territory restrictions.

The model that works makes the entitlement a structured, versioned record: publisher, product, metric, quantity, effective and expiry dates, the specific clause it derives from, and the restrictions that apply. Document extraction gives you a first pass from contracts and order forms into candidate entitlements, and a human confirms each one, because interpretation is the value rather than the transcription. Versioning is what makes the whole thing defensible, since you must be able to reconstruct what you were entitled to during any past period rather than only today.

What goes wrong when you turn a decade of contracts into entitlements?

This is the largest single effort in most of these projects and it is not an engineering task.

The first problem is completeness. Organisations under audit routinely discover entitlements they had forgotten they bought, which sounds like good news and is actually a warning: if you can find forgotten purchases, your register was never a register. Assemble from purchase orders, agreements, amendments, support renewals and reseller records, and reconcile the count rather than accepting the first source that looks authoritative.

The second is ambiguity. A material proportion of clauses do not have one obvious reading. When that happens the tool records somebody's opinion as if it were data, and eighteen months later nobody remembers it was an opinion. Capture the interpretation explicitly with the person who made it, the date, and the alternative reading, so that a future negotiation can model both positions side by side rather than discovering the assumption during a call with an auditor.

The third is acquisitions. An acquired entity's entitlement history is frequently incomplete, and the affiliate definition in your own agreements decides whether their deployments are covered by your contracts at all. That question is often unanswered inside organisations that have grown by acquisition, and it is worth answering before a publisher asks. Give someone with authority the job of making interpretation calls, and hand a developer your ten most awkward agreements before anyone prices the work.

Why do the discovery, virtualisation and cloud integrations break after launch?

Three data sources feed the position and each fails in a way that produces confident wrong answers.

Discovery tools disagree by design. One sees managed endpoints, another sees domain joined servers, a third sees more but names things differently, and each counts a different population. Normalise into one asset model with an explicit source of truth per attribute and a reconciliation queue for conflicts, rather than letting whichever feed ran last overwrite the others. Alert when a feed stops, because silence looks identical to no change.

Virtualisation is the one that decides money. For several publishers the licensable quantity depends not only on where a workload runs but on where it could run, so cluster boundaries, host counts and workload mobility settings are part of the calculation. Discovery tells you today. The argument needs history, which means capturing hosts, clusters, enforced boundaries and which workloads ran where, continuously, from the day you start. History you did not collect cannot be reconstructed, and that gap is precisely what an audit converts into a demand.

Cloud is the third and it needs a second topology model rather than an extension of the first. Bring your own licence rules, dedicated host requirements and instance sizing all change the calculation, tags are applied inconsistently, and instances appear and disappear within a billing period. Sample continuously rather than monthly, or your position rests on whichever snapshots happened to be convenient.

What happens when drift and audit evidence are not covered?

Someone adds two hosts to a cluster. A team spins up database instances for a load test and forgets them. A subsidiary joins the domain. Each of those can move an effective position overnight, and in most organisations it is discovered at the next annual review, by which point it is a year of exposure rather than a five minute conversation with an engineer.

Treat drift as an event rather than a report. Recalculate positions on a schedule and on change, and send alerts to a named owner with the specific cause: this cluster grew, this instance count rose, this user population changed. Set thresholds by publisher risk rather than uniformly, because two extra endpoints on a common product is noise and one new virtual machine in a database cluster may not be. This is the feature that turns the function from audit response into a continuous control, and it is where the money is actually saved rather than merely defended.

The evidence pack is the other half. When the letter arrives you should be able to produce, in days, the position per product with its full derivation, entitlement evidence with source documents attached, deployment data with the discovery method and date, the topology history, and a documented list of assumptions. Snapshot it immutably at the audit date, because a position that quietly recalculates while the audit runs destroys your credibility at exactly the wrong moment. Organisations that produce this quickly negotiate differently, and it shows in the settlement.

Should you build custom or configure what you already own?

If you are under about five hundred employees with a straightforward stack of cloud subscriptions and a couple of on premises products, configure. A contract folder, one discovery tool and a disciplined spreadsheet are proportionate, and a build would be theatre.

If you need broad coverage across thousands of titles quickly and your estate is conventional, buy. Flexera One and Snow bring deep publisher content libraries and strong normalisation of raw discovery data, which is hard work you should not repeat. ServiceNow Software Asset Management is the obvious choice if your configuration management database already lives there. USU is well established across European enterprises. Check too whether you already own a module you have never implemented, because unused entitlement to a platform you are about to replace is an awkward conversation to have afterwards.

Build when two or more apply. Your exposure is concentrated in a small number of publishers whose metrics are contract specific, which is the usual pattern. You have a virtualised or cloud estate where topology decides the position and a generic content pack gives you the worst case by default. You have grown by acquisition and hold multiple contract lineages. You have been audited and found the preparation cost unacceptable. Or you have priced a packaged platform and found the licence plus implementation plus the consultancy needed to interpret your contracts lands in the same range as owning something built around your actual agreements.

How do hidden costs get into the quote?

Contract volume first, and it dominates. Converting a decade of agreements, amendments and order forms into structured entitlements is the largest line in most of these projects, and it is analyst and legal time rather than engineering time. A quote that prices it by document count without having seen a sample is a guess.

Second, the number of publishers genuinely modelled. Each metric family is real work with its own calculator, its own test cases and its own edge conditions, so a scope of two publishers and a scope of twelve are different projects rather than the same project at different sizes.

Third, cloud, which adds a second topology model rather than a few extra fields. Fourth, multiple discovery tools with poor overlap, where reconciliation between them becomes a permanent operational queue rather than a one off mapping. Fifth, acquisitions, where entitlement history is incomplete and someone must make and record affiliate determinations.

Sixth, the ongoing analyst role. Confirming extracted entitlements, resolving reconciliation conflicts and reviewing drift alerts is a job, not a phase. A business case that assumes the system runs itself after year one will be revisited in front of your finance director.

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

The programmes that work do one publisher end to end first, and they pick the one whose audit would hurt most rather than the one whose data is tidiest. That proves the entitlement model, the topology capture and the calculator pattern against a real position with real money attached, and the second publisher then costs a fraction of the first. The programmes that fail try to cover the whole estate at once, produce a partial position for everything, and cannot defend any of it.

Second, every position must be a derivation rather than a number. Which assets were included, which entitlements were consumed, which rule version applied and which assumptions were made. When you disagree with an auditor the conversation is then about a specific assumption, which is a discussion you can win, rather than about whether your tool is right, which is a discussion you cannot.

Third, start capturing topology history immediately, even before the rest of the system exists. It is cheap, it is the input you cannot recreate later, and it is the single most valuable thing you can begin this month. Everything else in the build can be reconstructed from documents. Where a workload ran last March cannot.

Finally, settle ownership before kickoff: the repository, the cloud accounts, the entitlement register and the right to hire another firm. At Digital Heroes the client owns the code from the first commit. There is an obvious irony in reducing dependence on a publisher's version of the truth by creating a new dependence on a vendor's version of your data, and it is worth avoiding deliberately rather than discovering.

Research & sources

The evidence behind this guide

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

  1. Companies in the top quartile of McKinsey's Developer Velocity Index had 2014-18 revenue growth four to five times faster than bottom-quartile peers, showing that software-building capability is a driver of business performance, not just a support function. Source: McKinsey & Company (2020) →
  2. The average developer spends more than 17 hours a week dealing with maintenance issues such as debugging and refactoring, and about four of those hours on 'bad code' - waste that equates to nearly $85 billion annually worldwide in opportunity cost. Source: Stripe (2018) →
  3. McKinsey Global Institute estimated that about half of all work activities globally have the technical potential to be automated by adapting currently demonstrated technologies, though few occupations can be fully automated. Source: McKinsey Global Institute (2017) →
  4. IBM frames first-time fix rate as a core field service KPI, noting the industry average sits around 80% (roughly one in five jobs needs a return visit). Correction: IBM cites best-in-class providers at 89-98%, not '85%+'. Source: IBM (2024) →
Mei L. · VP APAC · Sydney

Mei runs the APAC side of Digital Heroes from Sydney, where the work spans custom software, ERP and CRM builds, and commerce platforms. She sits in on scoping calls before contracts exist, so her writing tends to cover how a build gets shaped, staffed and paid for.

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

FAQ

Frequently asked questions

Why can our discovery tools not tell us our licence position?

Because they measure deployment and exposure is the gap between deployment and entitlement. The entitlement side lives in your contracts, where grandfathered metrics, affiliate definitions, downgrade rights and development exclusions decide what you actually hold. A dashboard of installed titles looks like progress and answers half the question, which is why so many programmes produce excellent inventory data and still concede the maximum position when an audit arrives.

What makes virtualisation so dangerous in an audit?

For several publishers the licensable quantity depends on where a workload could run, not only where it did, so cluster boundaries, host counts and mobility settings become part of the calculation. Discovery tells you today's picture. The argument needs history, and history you did not capture cannot be reconstructed. That is why topology capture is the one thing worth starting this month even if the rest of the system is a year away.

How should we handle a contract clause with more than one reasonable reading?

Record it as an interpretation rather than as data. Capture who made the call, when, and what the alternative reading would produce, so the system can model both positions side by side. Tools that silently store one opinion as fact create a nasty surprise eighteen months later, when the assumption surfaces during a call with an auditor and nobody in the room remembers it was ever a judgement.

Can we recover entitlements we have lost track of?

Often, and organisations under audit discover forgotten purchases routinely. Assemble from purchase orders, agreements, amendments, support renewals and reseller records rather than trusting whichever source looks most authoritative, and reconcile the counts. Treat the discovery as a warning rather than a win: if forgotten purchases exist, the register was never a register, and the same gap may exist in the other direction.

How do we get warned before a change creates exposure?

Recalculate positions on a schedule and on change, and alert a named owner with the specific cause: this cluster gained hosts, this instance count rose, this user population grew. Set thresholds by publisher risk rather than uniformly, because two extra endpoints on a common product is noise while one new virtual machine in a database cluster may not be. That is the shift from audit response to continuous control, and it is where money is saved rather than defended.

What exactly should the audit evidence pack contain?

The position per product with its full derivation, entitlement evidence with source documents attached, deployment data with the discovery method and collection date, topology history, and a written list of assumptions. Snapshot it immutably at the audit date, because a position that recalculates while the audit runs undermines everything else you say. Producing this in days rather than weeks is what changes the tone of the negotiation.

Does building this replace our licensing consultants?

No. Contract interpretation, negotiation strategy and the specific arguments you make to a publisher are judgement work and should stay with people who do it professionally. What the system removes is the weeks of data assembly that currently precede any advice, so consultant hours go into strategy rather than into collecting spreadsheets under time pressure. Their advice also improves, because they are working from a derivation rather than a total.

Where should we start if the budget only covers one phase?

One publisher, end to end, chosen because an audit from them would hurt most rather than because their data is tidiest. That proves the entitlement model, the topology capture and the calculator pattern against real money, and the second publisher costs a fraction of the first. Alongside it, start capturing cluster and host history immediately, since that is the only input you genuinely cannot recreate later from documents.

What does it cost to keep an internal tool running after launch, and do we need to hire a developer?
Budget 15 to 20 percent of the build cost per year, so a $25,000 tool runs roughly $300 to $400 a month covering hosting, security patches, dependency updates, and small tweaks, figures drawn from Digital Heroes maintenance contracts. You do not need an in-house developer; a monthly retainer with the agency that built it covers the typical internal tool comfortably. Hosting itself is cheap for internal audiences, often $20 to $100 a month, because you serve dozens of users rather than the open internet.
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.
Will a custom internal tool scale as our company grows?
Yes, provided it sits on a standard stack with a real database: PostgreSQL comfortably handles millions of records, and adding users costs hosting pennies rather than per-seat fees. The real scaling risks are organizational, not technical: new departments want features, processes change, and the tool needs a budget line to evolve. Set aside a small quarterly improvement budget instead of treating launch as the finish line, and the tool stays useful for a decade rather than getting rebuilt every two years.
How do we migrate years of spreadsheet or Airtable data into a new internal tool?
Migration is a standard part of the build, not a separate project: the agency writes import scripts that clean, deduplicate, and map your existing rows into the new database. On typical spreadsheet and Airtable histories, Digital Heroes budgets 3 to 10 extra days, most of it spent resolving inconsistencies like the same customer spelled four different ways. The safe sequence is a trial migration first, a review of flagged conflicts with your team, then final cutover over a weekend so nobody loses a working day.
Should we build our internal tool in Retool instead of hiring developers?
Retool is the right choice if someone on your team is comfortable with SQL and JavaScript and the audience is a handful of technical users, because a basic CRUD dashboard comes together in days. Hire developers when non-technical staff will use the tool daily, when the logic goes beyond forms sitting on a database, or when per-seat pricing stings, since Retool's Business tier lists at $50 per standard user per month. A pattern Digital Heroes sees often: companies arrive after a year on Retool with a tool nobody can maintain because the one person who built it has left.
Can I build my product on a no-code tool like Bubble instead of hiring developers?
For testing whether anyone wants the product, yes, and Bubble's paid plans start at $29 a month, which is the cheapest validation you will ever buy. The ceiling arrives with complex data relationships, heavy integrations, performance at a few thousand users, and the fact that you cannot export a Bubble app to servers you control. A path many Digital Heroes clients take: prove demand on no-code, then rebuild custom once revenue justifies it, treating the no-code version as a paid prototype rather than a foundation.
What should I prepare before contacting an agency about an internal tool?
Bring the spreadsheet or document you run the process on today, a list of everyone who touches the workflow and what each person does, and one sentence describing the outcome you want. You do not need wireframes or a technical spec; a 30-minute screen-share of the current process beats a 20-page requirements document. Decide your rough budget band and name a single internal decision-maker, because projects without one take noticeably longer in Digital Heroes experience.
How many developers does it take to build an internal tool?
Two to four people covers nearly every internal tool: one or two developers, a part-time designer, and a project manager who doubles as your single point of contact. Internal tools rarely need consumer-product polish, so a full-time dedicated designer is usually wasted budget. On Digital Heroes projects, a two-person core team handles the typical 4 to 8 week build, with a specialist pulled in briefly for a tricky integration or a security review.
What questions should I ask a development agency on the first call?
Ask who exactly will build it, what happens when scope changes mid-project, what their maintenance terms are after launch, and what they will need from you every week. Then ask them to describe a project that went wrong and what they changed afterward; teams that have shipped at real volume have war stories, and teams claiming a perfect record are hiding something. The scope-change answer matters most: a disciplined shop describes a written change-order process, not a vague promise to be flexible.
Is custom software more secure than off-the-shelf SaaS?
Neither is secure by default; security tracks the practices of whoever builds and operates the system, not the model. SaaS gives you the vendor's certifications and patching but puts your data in a shared multi-tenant platform on their terms, while custom gives you full control over data residency, access rules, and compliance requirements like HIPAA, with the responsibility sitting with you and your agency. Before hiring anyone for a system holding sensitive data, ask for their security checklist: encryption at rest and in transit, an OWASP Top 10 review, role-based access, and a penetration test before launch.
What does an internal tool cost for a small business with 20 to 50 employees?
Plan on $5,000 to $15,000 for a focused tool that replaces one painful spreadsheet workflow, such as job scheduling, quoting, or PTO tracking. In Digital Heroes projects at this size, the sweet spot is one core workflow, two or three user roles, and a single integration, usually QuickBooks or Google Workspace. Quotes far below $5,000 usually mean a template with your logo on it rather than software built around your process.
Who can build a custom internal tools system?

Digital Heroes builds custom internal tools 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 internal tools 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?