Problems & solutions · Internal Tools

Investment Compliance Rules Engine Problems: The 5 That Cost Real Money, and How to Avoid Them

Investment Compliance Rules Engine Software code editor and API illustration showing common problems and fixes.
The short answer

The most expensive failure in guideline compliance is a pre trade check that passed on stale data. An order is staged across dozens of accounts, the check evaluates against last night's positions, and overnight a corporate action moved several of those accounts. The block goes. The post trade sweep finds the issuer concentration breach that evening, the trade is already done, and the conversation with the client starts with an apology and frequently ends with the manager making the client whole for the loss. The direct cost is the remediation. The larger cost arrives at the next operational due diligence review, because a firm that cannot demonstrate pre trade coverage of the guidelines it signed is not competing for the same institutional money.

Why does the size of the rule library get underestimated so badly?

Every project of this kind starts with a number that is wrong. Somebody counts the mandates, multiplies by an assumed number of limits per mandate, and produces a figure that feels manageable. The figure is wrong because guidelines that read like the same rule are different rules.

One client caps a single issuer at 10 percent. Another writes the same sentence but measures at trade date rather than settlement date, excludes cash and cash equivalents from the denominator, and treats agency paper differently from sovereign debt. A third writes their limit against a benchmark weight plus a band, which means the rule needs a live benchmark feed and a policy for what happens when the index rebalances. A fourth adds an exclusion list defined by a revenue threshold in a business activity, which requires third party data and a classification decision you have to be able to defend to that client. Four rules, one sentence.

In our experience mid sized institutional managers accumulate hundreds to low thousands of active rules and nobody in the firm can list them from memory. The scope failure is not that the number is large, it is that the count is done from mandate documents rather than from the distinct evaluations required.

The fix is to scope by rule category by frequency, not by client. In most firms concentration, liquidity, credit quality and restricted list rules cover the large majority of active limits. Build those four categories properly, prove the pattern against live orders, and let everything else follow the same shape. A project scoped as all mandates by a date will slip. A project scoped as the four categories that carry most of the risk will ship and then absorb the tail.

What goes wrong when you migrate an existing rule library?

Treating rule migration as a data import is the single most reliable way to carry old errors into a new system with a fresh coat of confidence. The old syntax encodes assumptions nobody wrote down: which denominator was used, whether the measurement was trade date or settlement date, what happened when a rating was missing, whether a rule was suspended years ago and never removed.

Copy those across mechanically and you get a library that evaluates cleanly and is wrong in exactly the places the old one was wrong, with the added problem that nobody now remembers which rules were approximations supplemented by a manual procedure. Those approximations are where breaches hide, and a migration is the one opportunity you get to surface them.

The fix is re-expression with parallel running. Re-write each rule from the source clause in the investment management agreement, not from the old system's syntax, and link the new rule to that clause. Then run both engines against live orders for several weeks and investigate every disagreement. Each disagreement is either a defect in the new rule or an undocumented assumption in the old one, and both are findings worth having. Expect the parallel period to take longer than the migration itself, and treat any pressure to shorten it as a risk decision rather than a schedule decision.

One related trap: firms frequently discover during this exercise that a meaningful share of their library is dead, either rules for terminated mandates or duplicated rules created for accounts that no longer exist. Clean that up during re-expression rather than migrating it, because every dead rule is future evaluation cost and future confusion.

Why do order and market data integrations break after launch?

A compliance engine is only as current as its inputs, and it has more inputs than most systems. Positions and today's executions from the order management system, pending allocations, corporate actions, prices, credit ratings, sector and industry classifications, benchmark constituents and weights, and whatever business involvement screens your clients have specified.

These break quietly rather than loudly. A ratings provider changes a code value and rules referencing that rating stop matching. A benchmark provider changes a file layout at a rebalance. A corporate action feed misses an event type. An order management system upgrade alters the staging interface, and the pre trade check starts evaluating against a position view missing today's fills. In every case the engine keeps returning results, which is worse than failing, because a confident pass is trusted.

The fix is to treat every input as a monitored contract. Freshness checks with alerts, expected record counts, and a match rate on identifiers measured on every run. Then make coverage explicit: if a rule references data that did not arrive, the evaluation must say so rather than proceeding on the last known value. Store every evaluation with the version of each input it used, so a question three months later about how an order passed can be answered from the record instead of reconstructed. And when scoping, name the systems: a Charles River order feed, an Eze staging interface and a Bloomberg AIM connection are three different projects, not one line item.

What happens when missing data and look through are not covered?

Two gaps account for most of the breaches that get through a system that is otherwise working.

The first is missing data policy. Every engine eventually evaluates a rule where one input is unavailable. A rating is not yet published for a new issue, a classification is absent for a recently listed name, a benchmark weight has not arrived. The dangerous default is silently passing, because it produces no signal and no record. The policy has to be explicit per rule, one of fail open, fail closed, or flag for review before release, and it has to be defensible to the client whose guideline it implements. It also has to be recorded: the evaluation ran, this input was missing, this policy applied.

The second is look through. A total return swap on an index is not one position, and a sector limit has to see through it. The same applies to exchange traded fund holdings, fund of fund structures and derivative overlays, where notional, delta adjusted and market value exposure give three different answers depending on the wording of the specific guideline. Fund derivative rules under Rule 18f-4 changed how registered funds must address the risk arising from derivatives use, and a UCITS mandate carries its own concentration structure measured differently again.

The fix is to compute exposure per rule rather than storing one number per position. The same holding then contributes different amounts to a notional limit and a market value limit without anyone maintaining two position sets. The choice of exposure measure per rule is your policy, documented and versioned, which is also the answer you give when a client asks how their limit is measured.

Should you build custom or configure what you already own?

Plenty of firms should not build this. If you run a single strategy with near identical mandates, your instrument universe is cash equities and government bonds, and the compliance module in the order management system you already pay for expresses most of your rules without manual supplements, configure that and spend the money elsewhere. That describes a lot of managers and there is nothing embarrassing about it.

Charles River has one of the most complete rule libraries in the market, and if you already run it as your order management system its compliance module is often the correct call. Aladdin's strength is the risk and analytics stack it sits inside. SS and C Eze, Bloomberg AIM and SimCorp all ship credible compliance capability. These are serious products and the honest recommendation for many readers is to use one properly rather than to build.

The test that decides it is not a feature comparison. It is this: count how many of your active guidelines are expressed in your current module as an approximation plus a manual procedure. If that number is small, configure. If it is material, you are already running a partly manual compliance function while paying for an automated one, and the approximations are where your breaches will come from.

Build when your rule library is genuinely bespoke and growing with every mandate, when derivative or fund look through matters to your limits, when you run more than one order management system and need a single consistent compliance view, or when you intend to change order management system and do not want your rule library held inside the one you are leaving.

How do hidden costs get into the quote?

  • Instrument coverage. Each derivative type needs its own exposure model. A quote written for cash equities and bonds is not a quote for a book with swaps and options.
  • Data dependencies. Every rule referencing credit ratings, benchmark weights, sector classifications or business involvement screens requires a feed, a licence and a missing data policy. This is a surprisingly large design conversation and it is regularly priced as if it were plumbing.
  • Latency. Sub second evaluation across a block spanning hundreds or thousands of accounts is a different architecture from a five second one. Decide the number before design, because it cannot be tuned in afterwards.
  • Rule library migration. Re-expression plus parallel running, not an import. Frequently the largest single line and frequently the one omitted.
  • Order side integration. Named per system. Three order management systems means three integration projects.

The fix is a paid discovery on your own material. Hand over three real guideline clauses, one of them awkward, plus a list of your instrument types and your current data feeds, and price the build against what comes back. A developer who has done this will ask what the denominator is, whether measurement is trade date or settlement date, and what happens when a rating is missing. One who calls it a simple percentage check has not built this before.

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

Four habits show up in every engine that survives an operational due diligence review.

The first is speed treated as a correctness requirement. A check that takes several seconds gets routed around, and a bypassed control is worse than no control because it creates a record suggesting coverage that did not happen. The pattern that works is an in memory position and exposure state kept current with today's executions and pending allocations, rules compiled rather than interpreted, and per account evaluation run in parallel across the block.

The second is returning headroom rather than a verdict. A pre trade result showing which specific accounts fail, by how much, and what order size would pass is something a trader can act on. A binary block is a wall, and walls get climbed.

The third is retaining every evaluation, passes included. Firms that store only breaches can prove they caught problems and cannot prove coverage, and coverage is what consultants ask about. Full retention also answers a question most firms cannot answer today, which is how often a given rule actually fires and whether it is doing anything.

The fourth is versioning with an owner. Every rule needs an effective date, an approver, a link to the source clause, and a full evaluation history, so that when a client asks why their portfolio held a position in April, you can state what the rule was in April, who approved it and what the exception state was.

Finally, settle ownership before kickoff. The rule library is the codified version of what you promised clients in their investment management agreements, so it is both intellectual property and the evidence of your control environment. You should own the repository, the infrastructure accounts and the right to hire anyone else. At Digital Heroes the client owns the code from the first commit, and in this category being locked out of your own rules is usually the problem that started the conversation.

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. Median SaaS spend reached $9,455 per employee, and organizations leave an average of 36% of their SaaS licenses unused. Source: Zylo (2026) →
  3. The NRF discontinued its long-running annual shrink report, stating that a broad study of retail shrink 'is no longer sufficient for capturing the key challenges and needs of the industry' - important context that qualifies how POS/shrink benchmarks should be cited going forward. Source: Retail Dive (2024) →
  4. Mordor Intelligence sizes the field service management market at USD 6.26 billion in 2026, forecasting USD 9.87 billion by 2031 at a 9.54% CAGR, confirming sustained double-digit-adjacent demand for FSM software. Source: Mordor Intelligence (2026) →
Noah F. · Senior Android Engineer · APAC · Sydney

Noah is a senior Android engineer at Digital Heroes, building apps that have to work across a wide spread of devices, screen sizes and OS versions. Fragmentation is the daily reality of the platform. His writing helps readers understand where Android effort goes and why it rarely mirrors iOS.

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

FAQ

Frequently asked questions

Our pre trade check passed an order that breached a guideline. How did that happen?
Almost always because the check evaluated against stale positions, meaning last night's data without today's executions, pending allocations or overnight corporate actions. The fix is an in memory position and exposure state kept current from the order management system and the accounting feed, evaluated across every affected account in the block. If the position view cannot include today's activity, the check gives false comfort and should be labelled as indicative rather than presented as a control.
Why do guidelines that read identically need different rules?
Because the measurement basis differs even when the sentence does not. Two clients can both cap an issuer at 10 percent while one measures at trade date and the other at settlement date, one excludes cash from the denominator and the other does not, and one treats agency paper separately from sovereign debt. Scope the library by distinct evaluations rather than by counting mandates, and start with concentration, liquidity, credit quality and restricted list rules, which usually cover most active limits.
How do we migrate our existing rule library without carrying the errors across?
Re-express each rule from the source clause in the investment management agreement rather than translating the old system's syntax, and link the new rule to that clause. Then run both engines against live orders for several weeks and investigate every disagreement, because each one is either a defect in the new rule or an undocumented assumption in the old one. Expect the parallel period to take longer than the migration, and treat pressure to shorten it as a risk decision.
What should happen when data a rule needs is missing?
It has to be an explicit per rule policy, one of fail open, fail closed or flag for review before release, and it must be defensible to the client whose guideline it implements. Silently passing is the dangerous default because it leaves no signal and no record. The evaluation should be stored showing that it ran, which input was unavailable and which policy applied, so a later review can see exactly what the engine knew at the time.
How do we handle limits when the exposure sits inside a swap or a fund?
Compute exposure as a function per rule rather than storing one number on the position. A total return swap on an index has to be seen through for a sector limit, as do exchange traded funds and fund of fund structures, and notional, delta adjusted and market value exposure will give three different answers depending on the guideline wording. Document and version which measure applies to each rule, because that is also the answer you give when a client asks how their limit is measured.
Is the compliance module in Charles River or Aladdin good enough?
For many firms yes, particularly single strategy managers with near identical mandates and a cash equity and government bond universe. The decisive test is not features: count how many active guidelines are currently expressed as an approximation plus a manual procedure. If that number is small, configure what you own. If it is material, you are running a partly manual compliance function while paying for an automated one, and those approximations are where breaches will come from.
Should we store passed checks or only breaches?
Store everything, with the rule version that evaluated it. Firms that retain only breaches can prove they caught problems but cannot prove coverage, and coverage is what consultants and clients ask about in operational due diligence. Full retention turns a due diligence request into an export rather than a fire drill, and it answers a question most firms cannot answer today, which is how often a specific rule actually fires and whether it is doing any work.
What usually blows the budget on a compliance engine build?
Instrument coverage, because every derivative type needs its own exposure model. Data dependencies, since each rule referencing ratings, benchmark weights, classifications or business involvement screens needs a feed, a licence and a missing data policy. Latency, because sub second evaluation across a large block is a different architecture from a slower one and cannot be tuned in later. And rule library migration, which is re-expression plus parallel running rather than an import, and is regularly left out entirely.
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.
How many SaaS seats do we need before building custom becomes cheaper?
The crossover usually shows up between 20 and 50 seats on premium tiers. Salesforce Enterprise lists at $165 per user per month, so 40 users cost about $79,000 a year in subscriptions, which is real money against a custom system you would own outright. Run the comparison over three years: if subscription spend beats the build cost plus 15-20% annual maintenance, custom wins on price before you even count workflow fit.
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.
How do I know when spreadsheets are no longer enough to run my operations?
Replace the spreadsheet once more than three people edit it, versions travel by email, or a single broken formula could cost real money. Other reliable signals: staff keep personal shadow copies, month-end reporting takes days of manual assembly, and nobody can say who changed a number or why. In Digital Heroes discovery calls the tipping point is almost always a specific expensive error, a mispriced quote, a missed order, or payroll built on a tab someone sorted wrong.
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.
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.
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.
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.
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?