Problems & solutions · Custom Software

AML Transaction Monitoring Software Problems: The 7 That Cost Real Money, and How to Avoid Them

AML Transaction Monitoring Software software overview illustration showing common problems and fixes.
The short answer

The most expensive failure in transaction monitoring is a capacity decision made as a risk decision. Alert volume outruns the investigation team, so thresholds go up, and because the change was driven by headcount rather than by analysis there is no documented rationale behind it. That single move is what turns a manageable programme into a finding, because an examiner asking why a threshold sits where it does will be shown a vendor console with a number in it and nothing else. The cost is not the software. It is the remediation programme, the lookback over the period the threshold was raised, and the management time consumed by both, all of which arrive at once and none of which were in anyone's budget.

Why do monitoring projects turn into replacing the scenario library?

Because the finding said monitoring, and monitoring sounds like detection. So the programme becomes a search for a new engine, and the institution spends heavily to replace a scenario library that was never the problem. This is the single most expensive mistake in the category and it is common enough that we open most conversations by asking what the finding actually said.

Read it again carefully. Findings in this area are usually about governance, tuning evidence, data quality or documentation, not about a typology the system failed to express. NICE Actimize and Oracle Financial Crime and Compliance Management ship deep, examiner familiar scenario libraries. Verafin is genuinely strong for community banks and credit unions. Feedzai and Hawk bring modern detection with better false positive characteristics. Replacing any of them does not by itself produce a threshold justification, a change log or an entity resolution fix, which are the things that were missing.

The fix is to scope from the finding backwards. If the gap is evidence, build the evidence layer around the engine you already own. If the gap is data, spend the first tranche on entity resolution and expected activity capture, which reduce alert volume without reducing coverage. Replace detection only when your products genuinely sit outside the library, which is a narrower set of institutions than the ones who attempt it. Wrapping is typically a fraction of the cost of replacement and addresses what the examiner wrote down.

What goes wrong with your customer and transaction data?

The data layer is where monitoring programmes actually fail, and it is nobody's project. The same customer exists as three records because the core, the card processor and the digital channel each created one. Expected activity was collected once at account opening in a free text field and never revisited. Counterparty names arrive differently from each channel, so two hundred transfers to one beneficiary look like two hundred beneficiaries. None of that is a scenario problem, and no threshold change fixes any of it.

Historical depth is the second data problem and it bites later. Replay testing, which is what makes tuning defensible, needs several years of transactions in a queryable shape with the customer and account relationships as they stood at the time. Institutions that archived transactions without the surrounding context can run scenarios over history but cannot reconstruct who the customer was then, which makes the results unusable as evidence.

The fix is to spend the first meaningful tranche of the budget on entity resolution across channels, on structured expected activity captured at onboarding and refreshed at review, and on counterparty name normalisation. This is also the one place where machine learning earns its keep without controversy, because matching is exactly what it is good at and nothing is being suppressed. Then build the historical store deliberately, with point in time customer and account attributes, rather than assuming your data warehouse already supports the question.

Why do core, case management and screening integrations break after launch?

Monitoring sits downstream of everything. The core banking system, the card processor, the digital channel, the wire platform, the case management system, sanctions and watchlist screening, and eventually the filing route. Each is maintained by a different team or vendor on a different release schedule, and each breaks in a way that leaves the monitoring system looking healthy.

The specific failures are worth naming. A core upgrade adds a transaction code that maps to nothing, so a category of activity stops being aggregated and no scenario fires on it. A new product launches and its transactions land under a channel identifier the monitoring feed does not recognise, which means the product is effectively unmonitored while everyone assumes otherwise. A case management integration drifts because the two systems key on different customer identifiers, so prior alert history stops resolving and investigators start closing repeat behaviour as first occurrences. A screening provider changes its response format and matches silently stop attaching.

The fix is completeness reconciliation as a standing control. Every day, compare transaction counts and values by product and channel between source systems and the monitoring store, and raise an exception on any difference, including a difference of zero where activity was expected. Maintain an unmapped transaction code queue that a human clears, rather than defaulting unknown codes to a catch all. And test the customer identifier join between alerts, cases and the core on a schedule, because a broken join produces plausible looking output rather than an error.

What happens when threshold changes have no lineage?

This is the gap that produces findings. An examiner asks why a structuring scenario fires at a particular aggregate over a particular number of days, who approved it, what analysis supported it, what the alert and case outcomes were at that setting, and what happened when you tested just below the line. In most institutions the threshold is in a vendor console, the justification is in a consultant's slide deck from two years ago, and the outcomes are in a case system that does not share keys with the alert system. Nobody can assemble those into one document without a project.

The related failure is that alerts cannot be reproduced. If a scenario has been edited in place, an alert from eighteen months ago cannot be explained, because the logic that produced it no longer exists anywhere.

The fix has three parts and none of them are exotic. Version every scenario and every parameter change with an author, a date, a rationale and an approval, and store the executing version identifier against every alert so any historical alert can be reproduced exactly. Make above the line and below the line testing native functions rather than an annual consulting exercise, by replaying historical transactions through candidate parameter sets. And record the reason for every change honestly, including when the reason is capacity. A documented capacity decision with a compensating control is defensible. An undocumented one is the finding.

Should you build custom or configure what you already own?

Configure, and stay configured, if you are a community bank or credit union with conventional retail and commercial products. Verafin and its peers cover your typologies and your examiner has seen them before, which has real value. Your money belongs in data quality and tuning evidence, not in rewriting scenarios somebody else has already validated across many institutions.

Before building anything, exhaust the incumbent. Many institutions run a capable engine on default segmentation, with expected activity never populated, with alert dispositions captured as free text, and with reporting nobody has configured. Fixing those is faster and cheaper than any project, and it removes the most common causes of alert volume.

Build detection yourself when your products are genuinely outside the library. Money services businesses with corridor specific typologies, payments companies with sub merchant flows, digital asset on ramps, trade finance and banking as a service programmes where the customer of your customer matters are the clear cases. The FFIEC examination manual expects monitoring to reflect your risk assessment, so a typology named in your own risk assessment that your system cannot express is a gap documented in your own files, which is the worst place for it to sit. Build those scenarios with the same versioning and testing discipline as everything else.

How do hidden costs get into the quote?

Source system count is the first driver. Each channel feeding transactions is a separate mapping, a separate data quality argument and a separate reconciliation control. A quote written against a core and delivered against a core, a card processor, a wire platform and two fintech partner programmes is a different project.

The state of your know your customer data is the second, and it is almost always worse than the compliance team believes. Expected activity in free text, missing occupation and business type, stale beneficial ownership records: remediating these takes longer than any plan allows because it requires customer outreach, not engineering.

Historical depth is the third. Replay testing needs years of transactions with point in time context, and building that store is frequently a bigger piece of work than the scenario engine itself.

Real time requirements are the fourth. If any scenario must decision inside a payment path rather than overnight, you have moved from a batch analytics problem to a latency sensitive one, and that changes the architecture and the cost. Say so during scoping rather than discovering it in month four. Fifth is model validation, if you introduce any model based detection, because independent validation and documentation is a real line item and should be budgeted from the start rather than met with surprise.

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

The working build can answer the examiner's question without a project. Which scenario version and parameter set produced this alert, who approved that setting, what analysis supported it, and what the outcomes were on either side of the change. If the design does not version parameters and store the executing version against the alert, the system cannot be defended and should not be built.

The second difference is one customer spine that every alert, case, transaction and risk rating hangs from. An investigator should open an alert and see the customer profile, the expected activity captured at onboarding and at last review, prior alerts and their dispositions, related parties, and the specific transactions that triggered the scenario with the aggregate shown. Five systems and no shared identifier is twenty minutes before any thinking starts, on every alert, forever.

The third is structured dispositions rather than free text. The pattern of dispositions is the raw material of tuning. Two hundred alerts closed with a recorded reason of expected business activity for a named customer segment is a tuning insight. The same two hundred closed with a note is nothing at all.

The fourth is ownership, written into the contract before kickoff: the repository, the scenario definitions, the parameter history and the cloud accounts. Your tuning history is your regulatory defence and it compounds in value every year as outcomes accumulate against it. At Digital Heroes the client owns all of it from the first commit, and we would tell you to walk away from any arrangement that makes your threshold justifications somebody else's property.

Research & sources

The evidence behind this guide

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

  1. Almost half of all the activities people are paid almost $16 trillion in wages to do in the global economy have the potential to be automated by adapting currently demonstrated technologies. Source: McKinsey Global Institute (2017) →
  2. Across more than 5,400 IT projects studied by McKinsey and the University of Oxford BT Centre, large IT projects ran on average 45% over budget and 7% over schedule while delivering 56% less value than predicted. Source: McKinsey & Company / University of Oxford (BT Centre for Major Programme Management) (2012) →
  3. Retailers connecting point-of-sale and loyalty data in an omnichannel strategy reported up to 15% lower cost per purchase and nearly 20% higher incremental store revenue. Source: Deloitte (2024) →
  4. An analysis of enrollment and completion data for 221 MOOCs (Katy Jordan, published in the International Review of Research in Open and Distributed Learning, IRRODL, 16(3), 2015 - not the Journal of Distance Education) found completion rates ranging from 0.7% to 52.1%, with a median completion rate of 12.6%, and completion negatively correlated with course length (longer courses had lower completion rates) - underscoring how unsupported self-paced online courses struggle to finish learners. Source: Journal of Distance Education (via ERIC / Katharina Jordan) (2015) →
Zara E. · Senior Strategist · APAC · Sydney

Zara works as a senior strategist across APAC, sitting between what a client says they want and what the build should actually be. She pressure tests business cases, priorities and sequencing before engineering time gets committed. Read her for the thinking that happens before a project brief is written.

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

FAQ

Frequently asked questions

Our finding was about monitoring. Do we need a new engine?

Usually not, and it is worth reading the finding again before spending. Findings in this area are most often about governance, tuning evidence, data quality or documentation rather than a typology the system could not express. A new engine does not by itself produce a threshold justification, a change log or working entity resolution. Wrapping the engine you own with a data layer, parameter governance and replay testing typically costs a fraction of replacement and addresses what was actually written down.

Why do we get so many false positives?

Almost always because of data rather than logic. The same customer exists as several records across the core, the card processor and the digital channel, expected activity was captured once at account opening in free text, and counterparty names arrive differently per channel so one beneficiary looks like many. Fixing entity resolution and expected activity capture reduces volume more than any threshold change, and unlike a threshold change it does not reduce coverage or create an evidence problem.

What does defensible threshold tuning actually look like?

Every scenario and parameter change carries an author, a date, a rationale and an approval, and every alert stores the scenario version and parameter set that produced it so it can be reproduced. Above the line and below the line testing runs as a native function by replaying historical transactions through candidate settings, rather than being commissioned annually. When the question comes, you produce the change record, the supporting analysis and the alert and case outcomes on both sides of the change.

Is it acceptable to raise thresholds because the team cannot cope?

The problem is not the constraint, it is the silence around it. A capacity driven change that is documented as such, with the analysis of what coverage it costs and a compensating control, is a decision your management can defend. The same change made quietly and recorded as a tuning improvement is exactly what becomes a finding, along with a lookback over the period it was in force. Build the system so the reason for every change has to be recorded honestly.

How much transaction history do we need for replay testing?

Several years, and crucially with point in time customer and account attributes rather than just the transactions. Running a scenario over historical activity is straightforward; reconstructing who the customer was, what segment they sat in and what expected activity had been recorded at that moment is the part institutions find missing. Building that historical store is often a larger piece of work than the scenario engine, so scope it explicitly rather than assuming your warehouse already answers the question.

Can machine learning close alerts automatically?

It can, and doing so is where institutions get into trouble. Under model risk expectations you will be asked to validate and explain the model, and one that cannot be explained becomes a finding rather than an efficiency. The safe uses are entity resolution across channels and scoring the alert queue so investigators reach productive alerts first, because nothing is suppressed. If you do go further, budget for independent validation and keep a rules based safety net for the typologies your risk assessment names.

How do we know a new product is actually being monitored?

Reconcile completeness daily rather than assuming it. Compare transaction counts and values by product and channel between the source systems and the monitoring store, and raise an exception on any difference, including where expected activity is zero. Keep an unmapped transaction code queue that a human clears instead of defaulting unknown codes to a catch all. Products launched without a monitoring feed mapping are one of the quietest and most serious gaps in this field.

Our products are not in any vendor scenario library. What now?

That is the strongest genuine case for building detection. Money services corridors, sub merchant payment flows, digital asset on ramps, trade finance and banking as a service programmes carry typologies that vendor libraries approximate rather than express. Since examination expectations tie monitoring back to your own risk assessment, a typology you have named that the system cannot detect is a gap recorded in your own documents. Build those scenarios with the same versioning, testing and documentation discipline as the rest.

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.
If we build for 20 users now, will the software cope with 500 later?
It should, without a rewrite, if it was built on a standard cloud stack; going from 20 to 500 users is mostly a hosting configuration change costing hundreds a month, not a second project. What actually breaks under growth is sloppier work: database queries never indexed for volume and features designed assuming one office's worth of data. Before signing, ask the vendor what happens to the system at ten times today's data, and listen for a specific answer.
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.
Will an app built for 10 users survive growing to 500?
Yes, if it is built on standard cloud infrastructure with a sound data model, because moving from 10 to 500 users is a hosting configuration change, not a rebuild. The scaling decisions that actually hurt are made early and invisibly: how the database is structured, how accounts and permissions are modeled, and whether background work is queued properly. Ask your agency how the system would handle ten times the load; the right answer is boring and specific, and a promise to cross that bridge later means you will pay for the bridge twice.
How many people should be working on my software project?
A typical $40,000 to $150,000 build runs on three to five people: a technical lead, one or two developers, a designer, and someone owning QA and project communication, often as overlapping part-time roles. More bodies do not make software arrive faster; past a point they slow it down with coordination overhead. The question that matters more than headcount is whether one named senior engineer is accountable for the outcome.
If an agency builds my software, who actually owns the code?
You should own everything, assigned in writing: the contract transfers full IP to you on final payment, the code lives in your GitHub organization, and hosting runs in cloud accounts you control. The red flag is a proposal that mentions the agency's proprietary platform or framework, which usually means you are renting, not buying. Digital Heroes structures every build this way precisely so a client can fire us and lose nothing but the relationship.
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.
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.
Couldn't I just build my app in Bubble or another no-code tool instead of hiring an agency?
For validating an idea with real users, yes, and we tell clients that honestly. The walls come later: Bubble apps cannot be exported as code to run anywhere else, performance drops on complex data operations, and usage-based pricing climbs as you grow. A meaningful share of Digital Heroes custom builds are rebuilds of no-code MVPs that proved the business worked, which is the system operating as intended: validate cheap, then build the version that scales.
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?