A multifinance company I worked with once signed a five-year deal for a core system quoted at 800 million rupiah. By year three, they had spent over 2.4 billion rupiah keeping it running, integrated, and staffed. Nobody lied to them. Nobody calculated software total cost of ownership before signing either.
This is the single most common budgeting mistake I see business owners make with software, whether it's a core banking platform or a point-of-sale system for a five-branch retail chain. The purchase price or the subscription fee is the number vendors lead with because it's the smallest number in the whole equation.
Total cost of ownership is the real number: everything you'll spend over the useful life of the system, not just what you sign for on day one. Get this wrong and a "cheap" system becomes the most expensive decision in your budget.
Why Purchase Price Is the Wrong Number to Anchor On
As a rule of thumb from projects I've scoped, license or purchase price runs about a third of the five-year total cost for a mid-complexity business system. The other two-thirds is integration, customization, training, ongoing maintenance, support, and the eventual cost of migrating away when the system no longer fits.
Vendors aren't hiding this maliciously most of the time. Sales teams are incentivized to close the deal at the quoted price; nobody on that call is responsible for your total cost three years out. That responsibility is yours, and it has to happen before the contract, not after the first year's invoice for "additional integration work" arrives.
The Categories Buyers Systematically Forget
Here's the checklist I run through with clients before they sign anything, roughly in order of how often it gets missed:
| Category | Why it's missed |
|---|---|
| Internal staff time | Nobody tracks the hours your own team spends on data migration, testing, and training. This is often the single largest hidden cost. |
| Integration with existing systems | The demo showed it "integrates with your ERP." The actual integration is a custom project quoted separately, after signing. |
| Customization drift | Every customization you request today is a customization you pay to re-implement or re-test on every future upgrade. |
| Training and onboarding, ongoing | Not just launch-day training. Every new hire, every feature release, every workaround someone invents because they were never retrained. |
| Support tier costs | Basic support is often free or cheap; the tier that actually gets a real person to respond within 4 hours costs extra, sometimes 15-20% of license fees annually. |
| Data migration at entry and exit | Moving your data in costs money. Moving it out, when you eventually switch systems, costs more, and vendors have no incentive to make exit cheap. |
| Downtime and productivity loss during rollout | Real, budgetable, and almost never budgeted. |
| Compliance and audit costs | Especially relevant for finance and healthcare-adjacent businesses: does the system produce the audit trail your regulator requires, or do you need to build that separately? |
A Simple TCO Worksheet
For a five-year horizon, I ask clients to fill in this structure before comparing vendors:
- Year 0 (setup): license/purchase, implementation services, integration work, data migration, initial training, hardware if needed.
- Years 1-5 (recurring): subscription or maintenance fees, support tier, ongoing training for new hires, internal admin time (estimate hours × loaded hourly cost), infrastructure/hosting if self-hosted.
- Year 5 (exit, even if you don't plan to leave): estimated data export cost, contract termination penalties, parallel-run costs if migrating to a replacement.
Sum it, divide by 5, and you have an honest annual cost. Compare that number across vendors, not the sticker price. I've seen a "premium" vendor at 1.2x the sticker price of a competitor come out cheaper on five-year TCO because their integration was native instead of custom-built, cutting a six-month, 300 million rupiah integration project down to weeks.
Internal Time Is the Cost Nobody Tracks
If there's one line item to obsess over, it's internal staff time. A system that requires your finance manager to spend six hours a week on manual reconciliation the vendor said would be "automated" is costing you real money every single week, and it never shows up as a line item anywhere because nobody invoices you for it. It just shows up as your finance manager working late.
When I do a quarterly tech budget review with clients, this is consistently the biggest gap between what owners think software costs and what it actually costs. Track hours honestly for even one system for a month and multiply by loaded cost; the number usually surprises people.
Negotiating With TCO in Hand
Once you've built the TCO picture, you have real leverage in vendor negotiations. You can ask pointed questions: what does data export cost at contract end? What's included in "integration" versus billed separately? What's the actual support response SLA, not the marketing claim? Vendors who hesitate on these questions are telling you where the real costs are hiding. This pairs directly with negotiating software contracts, where knowing your TCO number in advance is what lets you push back on vague scope language before you sign.
If you're evaluating a system for your business and want a second set of eyes on the real cost picture before you commit, that's exactly the kind of conversation worth having with a technical partner before the vendor call, not after.
The Practical Takeaway
Before you sign any software contract above a few tens of millions of rupiah, build the five-year TCO worksheet: setup costs, five years of recurring costs, and estimated exit costs. Divide by five to get an honest annual number, and use that number, not the sticker price, to compare vendors and negotiate terms. The cheapest quote is rarely the cheapest system.