Problems & solutions · Custom Software

Loan Servicing Software Problems: The 5 That Cost Real Money, and How to Avoid Them

Loan Servicing Software software overview illustration showing common problems and fixes.
The short answer

The costliest failure in this category is a ledger that stores a current balance as a field somebody updates, rather than deriving it from an immutable transaction history. It looks fine for six months. Then a borrower makes a backdated payment, a default interest period is reversed, or an investor position transfers mid month, and there is no correct way to recompute the balance without hand editing rows. Rebuilding a mutable balance model into an event sourced ledger routinely costs more than the original first release, because every payoff, statement and investor distribution already issued from the wrong numbers has to be reconciled, and anything that went in the borrower's favour at closing is simply written off.

Why does the payment engine get scoped as the small part of the job?

Ask ten private lenders what they want from a servicing platform and nine will describe screens: a portfolio dashboard, an investor portal, a borrower payment page. The engine underneath, the thing that decides what a balance is on any given day, gets one line in the requirements document. Then the build starts and the truth arrives. Your notes are not one product. You have interest only bridge paper on actual/360, a construction facility accruing on drawn balance rather than face amount, a note whose default rate steps from 11 percent to 18 percent on day 11 of delinquency, two loans carrying prepaid interest reserves, and older paper with a waterfall where late fees are satisfied before interest.

Each of those is a rule, and the rules combine. A default interest period inside a month where a partial payment arrives and the waterfall pays fees first is not three features. It is one behaviour that has to be correct in every order those events can occur. Quotes go wrong here because a developer who has not built lending software prices the screens and treats accrual as arithmetic.

The fix is unglamorous and it works. Before anybody quotes, write out a term grid: every note structure you currently service, its day count convention, its accrual base, its fee schedule, its default trigger and its waterfall order. Ten rows is normal for a lender at $100 million, and that grid is the real specification. Then insist the engine reads it as configuration per note rather than as code, and that acceptance means replaying your twenty most awkward historical loans against balances you already believe.

What goes wrong when years of spreadsheet history are migrated?

Migration is the most underestimated line in a loan servicing project and in Digital Heroes delivery experience it consumes 15 to 20 percent of the budget. The reason is that a spreadsheet is not a transaction log. It is a set of balances with formulas attached, and an event sourced ledger needs the events. Somebody has to reconstruct, per loan, every accrual, payment, fee, reversal and adjustment that produced the number you believe today.

What surfaces during that reconstruction is the uncomfortable part. Payments applied to principal that should have gone to interest. Per diem computed on a 365 day year for a note written actual/360. An extension fee charged twice on one loan and never on another. Late fees waived by a phone call nobody recorded. On a book of any size some of these exist, and once the ledger exposes them you have a decision to make with counsel about which get corrected with the borrower or the investor and which are absorbed.

The workable pattern is a cutover date. History before that date is imported as an opening balance transaction per loan with the supporting workbook attached as evidence, rather than fabricated in detail you cannot defend. History after it is rebuilt event by event and reconciled to the penny against your existing numbers, loan by loan, with every variance entered in an exceptions register that has a named owner and a resolution. Expect that register to be longer than you planned, and expect the parallel run to last a full month end rather than a week.

Why do ACH, bank files and the accounting sync break after launch?

Because the happy path is what gets built and the return path is what gets tested in production. Pulling a payment is easy. What is hard is the day fourteen borrowers are drawn, three come back as insufficient funds, one comes back as an account closed, and one is a reversal on a payment posted eleven days ago that has already appeared on an investor distribution.

Each of those needs its own behaviour: reverse the posting, restore the prior balance, decide whether a late fee now applies under this note's grace period, notify the servicing team, and correct the investor position without silently rewriting a statement that has already gone out. Handle returns as an afterthought and the ledger and the bank drift inside the first month, at which point nobody trusts either.

The same weakness appears in the accounting sync. A retry after a timeout posts the journal entry twice, and your controller finds it at quarter end. Insist on three things in the first release rather than the second. Return handling for the specific codes your bank actually sends, tested against a file your bank has accepted. Idempotency on every posted transaction, so one event cannot post twice regardless of retries. And a reconciliation view that lists unmatched bank items as exceptions instead of swallowing them. Then run one complete month end alongside your current process before you switch the spreadsheet off.

What happens when fractional investor accounting is treated as a reporting feature?

Investor participations are not a report. They are a second ledger sitting on top of the first, and projects go wrong when they discover this in month five. A $2 million loan split among six investors at uneven percentages produces six positions, each accruing, each receiving a share of every payment net of your servicing retention, and any of which can transfer mid month.

If distributions are computed by a month end report that reads the loan ledger, the report and the ledger separate the first time anything unusual happens: a reversal, a holdback, a position sold on the fifteenth, a fee borne by one investor and not the others. Now your statements and your books disagree, and the only person who could explain the difference is the analyst who wrote the workbook and left.

Build the participation ledger as a first class object. Positions per loan tracked to the cent with effective dates, distribution runs that post as transactions rather than compute inside a report, and statements generated from what was actually posted. That is also what gives you the branded portal where investors see their positions, pull monthly statements and download year end summaries in a format their accountant accepts, which is the difference between an analyst spending most of each month on distributions and spending it on the next raise.

Should you build custom or configure what you already own?

Some readers should stop here and go configure The Mortgage Office. If you service under roughly 100 loans, the capital is your own balance sheet, and your notes are conventional interest only or amortising paper, it is a mature product that does this job properly, and Bryt Software is a reasonable alternative at similar scale. Outsourcing to a third party servicer such as FCI Lender Services is cheaper again if you would rather not own the operation at all. Building at that size means you now own software instead of loans, which is the wrong asset for a lender that small.

LoanPro deserves the same fairness at the other end. It is a configurable servicing core built for volume, and if your product fits its model and you have the loan count to justify the pricing, it is a credible answer that will beat a build on time to value.

Building earns its place when at least two of these are true. You service outside investor capital across fractional positions. Your credit committee routinely approves terms that end up in a side spreadsheet because the system cannot express them. Servicing headcount is growing faster than the portfolio. Per loan or per module fees are compounding against your margin. Or the investor experience is part of how you raise capital, in which case a vendor branded portal is a commercial problem rather than a preference.

How do hidden costs get into the quote?

Four ways, and all of them are visible in advance if you ask the right question.

  • Migration priced as data loading. If the proposal carries a line called data migration with a small number beside it, the developer intends to import balances. Reconstructing and reconciling history is a workstream, not a task.
  • Payment integration priced as an API connection. Going live with a processor, or generating files your bank will accept, runs on the bank's calendar, involves test files, and includes a period where returns behave differently from the sandbox. Those weeks are not yours to control.
  • Each additional note structure. The eleventh row on your term grid is not 10 percent more work than ten rows, but it is not free either, and a fixed price quote written against a partial grid becomes a change order in month three.
  • Obligations discovered late. If you ever report to credit bureaus, Metro 2 formatting is exacting and is not a weekend of work. State lender licensing, usury limits and data security for borrower and investor personal information are your counsel's call, but the software has to encode whatever they decide.

There is also the cost nobody writes down: the parallel run, where your team operates two systems through a month end. Budget the overtime. Then plan on 15 to 20 percent of the build cost per year afterwards for hosting, monitoring, patching and small changes, which for platforms in this category typically lands between $15,000 and $60,000 annually.

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

The teams that succeed share a small number of habits, and every one of them is testable before you sign anything.

They model the ledger as immutable transactions with balances derived from history, and they say so on the whiteboard without being prompted. A design containing a loans table with a current balance column that gets updated in place cannot survive a backdated payment, a reversal or an audit, and no amount of later effort rescues it.

They raise day count conventions before you do. On a $50 million book the difference between actual/360 and actual/365 is real money accruing quietly in one direction, and a team that has shipped lending software treats it as the first question rather than a detail for later.

They can name the payment processors they have taken live, describe exactly how they handled returns, and explain how they ran a penny level reconciliation during a spreadsheet migration. They put ownership of the code and the infrastructure accounts in writing before kickoff, in a repository you control, because a servicing system you rent recreates the lock in you are trying to escape.

And they ship a first release that services real loans in parallel inside 12 to 16 weeks rather than a complete platform in a year. That is not speed for its own sake. The exceptions in your own book, the ones nobody remembered to mention, only surface when the engine meets them, and you want that happening while the team is still building rather than after they have moved on.

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. Analyst estimates place CRM implementation failure rates broadly between roughly 30% and 70% (Johnny Grow cites Forrester at 47%), with low user adoption repeatedly cited as a leading cause of failed CRM projects (this being Johnny Grow's own analysis, not a Forrester attribution). Source: Johnny Grow (industry analysis citing Gartner/Forrester) (2025) →
  3. The average number of formal learning hours used per employee fell to 13.7 in 2024, down from 17.4 in 2023, a decline the report attributes partly to a shift toward informal and on-the-job learning not captured in the formal-hours metric. Source: Association for Talent Development (ATD) (2025) →
  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) →
Kabir B. · Director of Mobile Engineering · Delhi

Kabir directs mobile engineering at Digital Heroes across iOS, Android and cross platform builds. Day to day that means release trains, store review cycles, device coverage and deciding when native work is worth the extra cost. Useful reading before committing to an app roadmap.

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

FAQ

Frequently asked questions

Our notes have a default rate that steps up on day 11. Can that be handled without code changes?
It should be configuration on the note rather than code, which is the test to apply when you evaluate a design. The engine needs a default trigger with a grace period, a second rate, and rules for whether default interest accrues on the whole balance or only the delinquent amount, all recorded per note with effective dates. If the answer is that a developer edits the accrual logic each time you write a variant, every new deal structure becomes a release, and your credit committee will simply go back to the side spreadsheet.
A borrower payment arrived backdated after we already issued a statement. What should the system do?
Post the payment with its true effective date, recompute everything downstream from that date, and record the correction as a new transaction rather than by editing history. The prior statement stays as issued, with an adjustment appearing on the next one, and the audit trail shows who posted the backdated item and when. This is the single clearest reason to derive balances from an immutable transaction log, because a system with a stored current balance can only handle this by overwriting a number nobody can reconstruct later.
Our spreadsheet used actual/365 but the notes say actual/360. What happens to the difference?
Migration will surface it loan by loan, which is the point of reconciling to the penny rather than importing balances. The software's job is to compute correctly from the cutover forward and to show you the variance on each loan up to that date. What you do about the historical difference is a decision for your lending counsel, since it may involve borrower refunds, investor adjustments or a documented write off, and the right answer varies with the size of the gap and the state involved.
How long should we run the old spreadsheets alongside the new system?
Through at least one complete month end, including the investor distribution run and the accounting posting, and preferably two. A week of parallel running only proves that daily payment posting works. The failures that matter cluster at period close: accrual cut offs, distribution splits, journal entries and statement generation. Budget staff overtime for that window explicitly, because it is real cost that never appears in a development quote.
What breaks first when an ACH return comes back and nobody built for it?
The late fee, then the investor distribution. A returned payment that was already posted has usually satisfied a due date in the system, so no late fee triggers, and if the payment reached a distribution run the investors have been paid money the borrower did not send. Reversing that cleanly requires the return to unwind the posting, reinstate the delinquency, re-evaluate the late fee under the note's grace period, and correct the investor position with a visible adjustment rather than a silent restatement.
Can we keep QuickBooks as the general ledger?
Yes, and for most private lenders under $500 million that is the sensible arrangement. The servicing platform owns the loan level ledger and pushes summarised journal entries into QuickBooks through its API, so your controller keeps a familiar close process. The two things to insist on are idempotency, so a retried push cannot duplicate an entry, and a reconciliation screen that reports what did not post rather than failing quietly in a log nobody reads.
An investor sold their position on the fifteenth. How should that month's distribution split?
By effective date on the position, with the participation ledger holding both the outgoing and incoming investor with their own start and end dates, and the distribution engine allocating accrual by the days each held the position. Whether the split follows accrual days or the payment received date is a commercial term in your investor agreements, so encode it as a configurable rule rather than a hard coded assumption. Mid period transfers are exactly where report driven distribution logic starts disagreeing with the ledger.
Should construction draws and interest reserves be in release one?
Only if construction lending is a meaningful share of your book, because draws change the accrual base and that touches the engine rather than a screen. If you write ground up or heavy rehab paper regularly, put draw funding and reserve depletion into the first release so accrual is right from day one. If it is a handful of loans, service them in parallel and add the draw workflow in phase two, since a first release that does payment posting, payoffs and investor statements correctly is worth more than one that does everything approximately.
How long does it take from first call to software my team can actually use?
Plan for four to six months: two to three weeks of discovery, two to four weeks of design, then a 10 to 16 week build with testing. In Digital Heroes delivery experience the schedule killer is not engineering speed but decision lag; a client who takes two weeks to approve wireframes adds two weeks to launch. Book a weekly 30-minute decision slot before kickoff and most of that risk disappears.
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.
How much should a small business expect to pay for custom software?
Across 2,000+ Digital Heroes projects, a small business system that replaces spreadsheets or one core workflow typically lands between $40,000 and $80,000, with more complex first versions running up to $150,000. The two levers that move the number most are integrations and user roles, not the team's hourly rate. Any quote under $15,000 for a full production system means the vendor has not understood your scope yet.
How do we get years of data out of our old system and into the new one?
Treat migration as a planned sub-project: a field-mapping document, at least one dry run on a copy of your data, then a cutover with the old system kept read-only for 30 days as a safety net. On Digital Heroes projects it consumes 10 to 15% of the budget when the old system has an export, and more when data must be pulled out screen by screen. Ask any vendor to walk you through their last migration before you sign.
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.
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.
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 small can the first version of my software be and still be worth building?
One workflow, end to end, for one type of user: the single process that currently burns the most hours or loses the most money. In Digital Heroes delivery experience, first versions scoped to 6 to 10 weeks of build time ship, get used, and generate the feedback that makes version two obviously right, while 9-month first versions routinely launch with features nobody touches. Everything you cut from v1 gets cheaper to build later, because real usage reorders the roadmap for you.
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.
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.
Is a solo freelancer enough for my project, or do I really need an agency?
A solo freelancer is a fine choice for a well-defined build under roughly $15,000 to $20,000 with a limited lifespan: an internal calculator, a scripted integration, a prototype. Above $50,000, or for any system your business will depend on for years, you are buying continuity as much as code: enforced code review, cover when someone is ill, and support that outlasts one person's career plans. Price the risk of a single point of failure, not just the hourly rate.
How do I vet a software development agency before signing a contract?
Ask to speak with two past clients whose projects resemble yours in size and industry, and ask exactly who will write your code, since some agencies sell senior faces and deliver junior or subcontracted hands. Demand a written specification with acceptance criteria before any fixed price, and check that their portfolio links to products that are actually live. An instant quote given without questions about your workflows is the clearest warning sign there is.
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?