Problems & solutions · Internal Tools

Mortgage Compliance Testing Software Problems: The 7 That Surface in an Exam, and How to Avoid Them

Mortgage Compliance Testing Software product interface illustration showing common problems and fixes.
The short answer

The most expensive failure in mortgage compliance testing software is building another checkpoint test instead of a gate. A system that evaluates at defined stages, however thorough, still runs after the processor has already added the fee, changed the provider or moved the date, which means every tolerance exposure it finds is a cure obligation with a 60 day clock and a refund cheque rather than a prevented defect. Lenders who ship that version get better reporting on the same losses, and the defect pattern still runs quietly through production for three quarters until an examiner looks at the population rather than your sample.

Why does the test keep getting scoped as a report rather than a gate?

Compliance projects are usually specified by the people who consume the output, which means quality control and audit. They describe what they need to see, so the requirement becomes a set of tests, a findings queue and a dashboard. Everyone signs it off because it is exactly what was asked for.

The trouble is that the exposure is not created where the report is read. It is created at three o'clock on a Thursday when a processor adds an appraisal re inspection fee, types a reason into a free text field, and does not know that the reason does not constitute a valid changed circumstance for that fee. No report catches that in time. The Loan Estimate went out, the tolerance bucket is set, and the only remedy left is a cure within 60 days of consummation.

This is specific to mortgage because the timing rules are unforgiving in a particular way. A revised estimate needs a documented valid changed circumstance delivered inside its own window, and it cannot reset tolerance once the Closing Disclosure has been provided. Lender fees sit in the zero tolerance bucket. Recording fees and services from providers on your written list sit in the ten percent cumulative bucket. None of that is ambiguous, and all of it is decided at the edit.

Scope the first release as an evaluation on every material edit that names the bucket and the dollar amount to the person making the change, in words about this loan. That is a different product from a compliance report, and it converts most cures into non events.

What goes wrong with the reportable data behind the register?

Every February the same scene plays out. Someone extracts the loan application register, runs it through the filing platform, and gets back thousands of edits across the syntactical, validity, quality and macro quality categories, each of which must be resolved against source documents.

The structural cause is that reportable fields are collected as a by product of origination rather than owned as an obligation. The universal loan identifier, rate spread, automated underwriting results, credit score model, debt to income, combined loan to value, denial reasons and demographic information all originate at different moments with different people, and nobody owns the register until it is due.

Migration makes this worse. Lenders want history in the compliance layer so fair lending analysis can look backwards, and historical registers carry fields corrected during the filing scramble without those corrections ever going back to the origination system. So you import two versions of the truth, the register as filed and the loan file as recorded, and they disagree on exactly the fields examiners care about.

Import the filed register as its own dated artefact rather than merging it into loan data, and run the filing platform edit rules nightly against the live population from day one. A field that will fail in February then fails in June while the file is open and the source is reachable. Lenders filing quarterly need this more, since the compression between quarters leaves no room for a correction scramble.

Why do origination system and compliance engine integrations break after launch?

The integration that passes acceptance testing is a nightly extract, and a nightly extract cannot power a gate. That is the first break, and it is architectural rather than incidental. If your origination system cannot emit events when a fee, a provider, a product or a date changes, the gate degrades into the checkpoint test you were trying to escape.

The second break is field level drift. Lenders reconfigure origination systems. A custom field carrying the changed circumstance reason gets repurposed, a fee is renamed, a new fee code appears for a new investor product, and the compliance layer keeps testing against a mapping that no longer describes reality. Nothing errors. The tests simply stop seeing a category of fee.

The third break is documents. A value taken from an origination system field is not evidence of what was disclosed. Evidence is the document that went out, its version, the issue timestamp and the delivery record. If disclosures are retrievable only as images, extracting disclosed values is a separate workstream, and it quietly degrades when a template changes.

Three defences: alert on category silence rather than only on failures, treat fee and field mappings as versioned configuration with a named owner who reviews them when the origination system changes, and reconcile disclosed values against system values continuously.

What happens when lineage and state thresholds are not covered?

Two gaps produce most of the pain that arrives years later.

The first is lineage. In an exam you must demonstrate, for a specific loan, what was disclosed, when it was issued, how it was delivered and to whom, and how the tested value relates to that document. A pass or fail held against a value with no link to the document that carried it hands an examiner a conclusion and asks them to trust it. Business day arithmetic sharpens this: almost every disclosure rule is a date count, almost every failure is off by one against the wrong calendar, and unless the system stores the count it used, the reviewer cannot see the arithmetic.

The second is state thresholds. Federal high cost tests are one layer. New York, North Carolina, Massachusetts and Illinois all maintain their own high cost regimes with their own trigger arithmetic, and a lender licensed in twenty states runs twenty overlapping test sets. The qualified mortgage points and fees cap is tiered by loan amount and adjusted annually.

Held as constants in code, those thresholds are a silent liability, because nobody can tell you whether the engine is current and everybody assumes it is. Held as effective dated data with a source reference and a review date, the question has an answer. Every new state is genuine test development, not a configuration flag, and pricing it as a flag is how expansion becomes an unbudgeted quarter.

Should you build custom or configure what you already own?

Do not rebuild the federal and state rules engine. ICE ComplianceAnalyzer runs a mature rule set and you should keep it, because reimplementing disclosure and high cost testing from scratch is a maintenance commitment that grows every year and returns nothing to your business.

If you originate in a small number of states at modest volume and your quality control team is comfortably keeping up, buying is the right answer. A compliance engine plus an audit workflow product plus a consultant for the annual analysis suits that shape, and a build would be over engineering. Wolters Kluwer sits deep in document and content compliance and is a sound answer for disclosure generation. Ncontracts is strong on governance across policy, vendor and findings management. ACES Quality Management is a capable audit workflow product.

What none of them do is sit inside the processor edit that creates the exposure, own the lineage tying a tested value to a specific document image and delivery record, or continuously validate your register against the live pipeline. The gap is not rules. It is timing, lineage and population coverage.

Build alongside when two or more of these hold. Your register regularly returns edits in the thousands. You are licensed in enough states that nobody can confirm your thresholds are current. You have taken a finding, a repurchase demand or a restitution obligation on a pattern that ran for months. Cures are a recurring monthly number rather than an exception. Or you subservice, sell to multiple investors or run correspondent channels where each counterparty wants its own evidence package.

How do hidden costs get into the quote?

A first release covering the pre close tolerance and timing gate, lineage capture and the continuously validated register runs 60,000 to 140,000 dollars over 10 to 14 weeks in Digital Heroes delivery experience. A full platform adding quality control sampling and workflow, fair lending analysis, state threshold management, findings tracking with remediation and the exam evidence export runs 180,000 to 400,000 dollars over 6 to 12 months. Four things escape the estimate.

State count is the largest. Each high cost regime is test development plus test data plus a review cycle with counsel, and lenders consistently price the second state as if it were the twentieth.

How your origination system exposes data is the second. Real time events versus a nightly extract is not a preference, it changes what the system can be.

Document retrieval is the third. If disclosures exist only as images, pulling actually disclosed values off them is a separate workstream with an ongoing maintenance tail every time a template changes.

Interpretation is the fourth and it is schedule risk rather than budget. Most lenders find that two departments hold different views of what constitutes a valid changed circumstance for a given fee. Writing those interpretations down with counsel in the room is what makes the system defensible later, so it deserves a line in the plan rather than being absorbed.

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

Ask a developer how they compute a business day. It sounds trivial and it is the most common defect source in this domain. The answer should cover which calendar applies, which events start which counts, how the delivery method changes the receipt presumption, and how the system stores the count it used so a reviewer can see the arithmetic rather than trust it.

Ask how they will prove what was actually disclosed. A value read from an origination system field is not evidence. Developers without regulated experience will not think to ask for the document version, the issue timestamp and the delivery record, and that omission is invisible until an exam.

Ask what they have integrated, specifically. A real time event feed from a loan origination system, a compliance engine interface, a document repository and a filing platform submission are four different problems.

Be direct about where automated models belong. Document extraction earns its place, pulling disclosed values off issued documents and comparing them to system fields, which is exactly where quiet divergence hides. Triaging changed circumstance narratives that are too generic to support the fee they justify is also useful. What should never be automated is the pass or fail determination on a regulatory test, because you must show the rule version, the inputs and the arithmetic.

Then ask about threshold maintenance after launch, because a system nobody updates is worse than no system once people trust it. And settle ownership: the repository, the infrastructure accounts and the documented test interpretations should be yours from the first commit, since the interpretations are what you hand an examiner to explain how the system decides.

Research & sources

The evidence behind this guide

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

  1. 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) →
  2. 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) →
  3. 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) →
  4. 48% of private companies cite integration with legacy systems or technical debt as a top obstacle to realizing the full value of their digital and AI investments (behind data quality/availability at 72% and gaps in AI fluency or technology talent/leadership at 53%). Source: Deloitte (2026) →
Prasun Anand · CEO & Founder · New York

Prasun founded Digital Heroes in 2017 and leads it from New York. His work sits where commercial decisions meet delivery: which projects to take on, how teams are shaped across five offices, and where a build is likely to go wrong. Readers get the view from the side that owns the outcome.

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

FAQ

Frequently asked questions

What is the difference between a compliance gate and a compliance test?
A test evaluates at defined checkpoints and reports what it found. A gate evaluates on every material edit and speaks to the person making the change at the moment the exposure is created, naming the tolerance bucket and the dollar amount for that loan. The distinction matters because a fee added on a Thursday afternoon becomes a cure obligation with a 60 day clock once the disclosure goes out, and no amount of reporting quality converts that back into a prevented defect.
Why does our HMDA register still fail thousands of edits after buying a compliance engine?
Because engines test what they are given at the moments they are invoked, and the reportable fields are collected as a by product of origination rather than owned as an obligation. The universal loan identifier, rate spread, automated underwriting results, credit score model, debt to income and denial reasons all originate at different times with different people. Running the filing platform edit rules nightly against your live population moves the failures to June while files are open and sources are reachable.
Should we import our previously filed registers into the new system?
Import them as dated artefacts in their own right rather than merging them into loan data. Filed registers routinely contain corrections made during the February scramble that never went back to the origination system, so merging creates two versions of the truth that disagree on exactly the fields examiners care about. Keeping them separate lets fair lending analysis look backwards while preserving the ability to show what was filed versus what the loan file records.
Can a nightly extract from our LOS power a pre close gate?
No, and this is the architectural decision that determines what the system can be. A gate has to evaluate when a fee, provider, product or date changes, which requires the origination system to emit events rather than to be polled overnight. If real time events are not available, be honest that you are building a faster checkpoint test rather than a gate, and price the project accordingly instead of discovering the limitation after launch.
How do we keep state high cost thresholds current across twenty states?
Hold them as effective dated data with a source reference and a review date rather than as constants in code, so the question of whether the engine is current has an auditable answer instead of an assumption. New York, North Carolina, Massachusetts and Illinois each maintain their own regimes with their own trigger arithmetic, and the qualified mortgage points and fees cap is tiered by loan amount and adjusted annually. Every new state is genuine test development, not a flag.
Where should AI be used in mortgage compliance and where should it stay out?
Document extraction earns its place, pulling the values actually disclosed off issued documents and comparing them to origination system fields, which is exactly where quiet divergence hides. Triaging changed circumstance narratives too generic to support the fee they justify is also useful. What must never be automated is the pass or fail determination on a regulatory test, because you have to show the rule version, the inputs and the arithmetic, and a model that cannot do that is a liability in an exam.
What stretches the schedule on these projects?
Agreeing internally on the exact interpretation of each test. Most lenders discover during discovery that two departments hold different views on what constitutes a valid changed circumstance for a particular fee, and that disagreement has to be resolved with counsel in the room before the logic can be written. Treat it as a named workstream rather than absorbing it, because those written interpretations are what makes the system defensible in an exam years later.
Who should own the test logic if an agency builds this?
You should own the repository, the infrastructure accounts and the documented test interpretations, agreed in writing before kickoff. The interpretations matter as much as the code, because they are the artefact you hand an examiner to explain how the system reaches a determination. At Digital Heroes the client owns everything from the first commit. A developer who wants to retain the rule logic or host it in their own accounts is selling a dependency at exactly the point where you need control.
Who owns the code when an agency builds our internal tool?
You should, outright, with full IP transfer in the contract and the code delivered to a repository you control, such as your own GitHub organization. Digital Heroes transfers complete ownership on final payment as standard practice, and any agency that keeps the code or licenses it back to you is building a dependency you will pay for later. Confirm you also own the hosting, domain, and database accounts, since many of the vendor disputes Digital Heroes gets called into involve infrastructure registered under the agency's name.
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.
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.
Should we build the whole internal tool at once or start with an MVP?
Start with a version that fully replaces one workflow, ship it in 4 to 6 weeks, and let real usage set the roadmap. Internal tools have a captive audience, so you learn within days which features matter, and across Digital Heroes projects roughly a third of initially requested features never get built once staff work with version one. Phasing also spreads the spend: a $40,000 vision becomes a $15,000 phase one that starts paying for itself while phase two is scoped.
Can a custom internal tool connect to QuickBooks, Salesforce, and the other software we already use?
Yes, and integrations are usually the strongest argument for going custom instead of chaining tools together with Zapier. QuickBooks, Salesforce, Shopify, Stripe, Slack, and Google Workspace all have mature APIs, and each integration typically adds $1,500 to $5,000 to a Digital Heroes build depending on how much two-way syncing you need. The honest caveat is legacy industry software without an API, which may need file-based imports instead of a live connection, so list every system in the first conversation.
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 does it cost to keep custom software running after launch?
Budget 15-20% of the original build cost per year, which on a $100,000 system means $15,000 to $20,000 for security patches, dependency updates, bug fixes, and small improvements as real usage reveals what the spec missed. Cloud hosting for a typical business application adds $50 to $300 a month on top. Skipping maintenance does not save the money; in Digital Heroes rescue work, unmaintained systems typically need a far more expensive rebuild within about three years.
How many people should be working on my software project?
Three to five for a typical focused build: a project lead, one or two engineers, a designer, and part-time QA, which is the standard shape across 2,000+ Digital Heroes projects. Larger platforms justify 6 to 10, but a ten-person team on a small first version usually signals bill padding rather than horsepower. What predicts success is whether a senior engineer is writing your code daily, not the headcount on the proposal.
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.
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.
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.
What happens to my software if the agency shuts down or we stop working together?
Nothing dramatic, if the engagement was set up correctly: the code sits in your repository, hosting runs on your cloud account, and a handover document explains how to deploy and operate the system. Any competent replacement team can then take over in days rather than months. If the agency controls the repo, the servers, or the domain, fix that now, because renegotiating access during a dispute is the most expensive place to discover the problem.
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?