100ms Scoring: Transaction Monitoring System Design for Engineers

A compliant transaction monitoring system has to do more than flag suspicious activity. It must combine streaming and batch analytics, keep scoring within tight latency budgets, and produce an audit trail that stands up to model validation and regulatory review.

Hubert Olkiewicz[email protected]
LinkedIn
8 min read

A compliant, scalable transaction monitoring system is a hybrid architecture: real-time streaming and batch analytics working in tandem, backed by an in-memory online feature tier for sub-100ms scoring decisions. It pairs deterministic rules with ML-driven anomaly detection and rests on an auditable case-management backbone. The design must satisfy a transaction monitoring risk assessment (TMRA) and pass independent model validation before it ever touches production traffic.


TL;DR:

  • Up to 100 milliseconds is the typical total scoring budget, with ML inference usually consuming 10 to 50 milliseconds, leaving room for other processes.
  • Data ingestion at scale relies on capture from CDC, payment APIs, and blockchain feeds, with strict validation, deduplication, and prioritized enrichment for real-time accuracy.
  • Combining deterministic rules with ML anomaly detection is essential, requiring strict rules management, explainability, and continuous drift detection to adapt to evolving typologies.
  • A robust case management workflow delivers enriched alerts, documented investigations, and SAR narratives to support regulatory review and reduce analyst fatigue.
  • Modular components and prebuilt connectors from Bitecode can significantly accelerate system deployment, especially for teams under regulatory pressure to meet compliance and validation standards.

Transaction Monitoring System Design: The Architecture Overview

Every effective transaction monitoring system follows the same dataflow, regardless of institution size: ingest, enrich, detect, investigate, archive. Transactions arrive from core banking systems, payment rails, or blockchain nodes, get enriched with customer and risk context, pass through detection logic, generate alerts that analysts investigate, and finally land in an immutable archive for regulatory review.

What separates a resilient design from a brittle one is how real-time and batch layers divide labor. Real-time streaming handles scoring at the point of transaction, typically evaluating velocity, geography, and counterparty risk within milliseconds. Batch analytics runs on a longer cycle, retraining models, discovering emerging typologies, and back-testing rule thresholds against months of historical data. Building both from day one avoids the coverage gaps that show up when a typology emerges faster than a batch-only system can adapt.

The core components map cleanly onto this flow:

  • Stream processors handle ingestion and real-time feature computation.
  • Rule engines apply deterministic logic against known typologies and regulatory thresholds.
  • Model servers host ML scoring services for anomaly detection and false-positive reduction.
  • Feature stores serve low-latency lookups for both rules and models.
  • Case management platforms route alerts, document investigations, and produce SAR narratives.

Batch layers also feed back into the real-time path. Typology discovery from historical analysis becomes new rule logic or retrained model weights, closing the loop between what analysts find and what the live system catches next time.

Data Ingestion and Enrichment Patterns That Hold Up at Scale

Reliable ingestion starts with change data capture (CDC) against core banking systems, paired with event streaming for anything that generates high transaction volume, like card networks or ACH rails. For institutions handling digital assets, ingestion also needs blockchain node feeds, since KYT-style monitoring requires on-chain data collection and address attribution that traditional CDC pipelines were never built to handle.

A practical ingestion sequence looks like this:

  1. Capture events from CDC streams, payment rail APIs, and node feeds simultaneously, treating each as an independent source with its own schema contract.
  2. Validate every incoming record against a strict schema before it enters the pipeline, rejecting malformed payloads at the edge rather than downstream.
  3. Watermark and deduplicate early. Late-arriving or duplicate events are the single biggest source of noisy alerts if they reach the detection layer unfiltered.
  4. Enrich in priority order. Attach current balance and customer risk rating synchronously, since detection logic needs them immediately. Push secondary enrichments, like merchant category history or device fingerprinting, to an asynchronous batch process.

This ordering matters more than most teams assume. Enrichment done in the wrong sequence either slows real-time scoring past its latency budget or starves detection logic of the context it needs to make a defensible decision.

Building the Detection Layer: Rules and ML Working Together

Deterministic rules and machine learning solve different problems, and a well-designed transaction monitoring framework needs both. Rules excel at known typologies and hard regulatory thresholds, structuring cash deposits, sanctioned jurisdiction transfers, rapid movement of funds through shell accounts. They are auditable, fast to implement, and easy to explain to an examiner. Combining deterministic rules with ML-driven anomaly detection is what lets a system catch typologies that don’t fit a fixed threshold, while also keeping false-positive rates manageable.

A few design commitments make this hybrid approach sustainable rather than chaotic:

  • Maintain a rules inventory as a living document, not a spreadsheet buried in a shared drive. Every rule needs an owner, a justification tied to a known typology, and a version history.
  • Store rule parameters in a dedicated parameter store separate from application code, so threshold tuning doesn’t require a deployment cycle.
  • Build ML pipelines with explainability baked in, using feature attribution methods that let an analyst see why a score triggered, not just that it did.
  • Run drift detection continuously, since transaction patterns shift with seasonality, new products, and evolving fraud tactics.
  • Keep a human-in-the-loop feedback channel so analyst dispositions feed back into model retraining.

Privacy constraints on real customer data can slow model experimentation considerably. Synthetic data initiatives are increasingly used to unblock training work without touching production PII, particularly for testing new anomaly detection approaches before they see live traffic.

Pro Tip: Version every rule change alongside its ML counterpart. When a regulator asks why an alert fired six months ago, “the rule was version 4.2 and the model was retrained on March data” is a far stronger answer than reconstructing it from memory.

Feature Store Design: Meeting the 100ms Scoring Budget

Real-time scoring lives or dies on how the feature store is architected. The pattern that works: an offline store for training, built from historical batch data, and a completely separate online store optimized for low-latency reads, with hot features held in memory rather than pulled from disk-backed databases on every request.

Modern transaction monitoring systems typically operate within a 100ms total authorization budget, with ML inference consuming 10 to 50 milliseconds of that window. The remaining time gets split across network calls, feature retrieval, and rule evaluation.

That budget forces specific design choices. Velocity features (transaction count over the last hour, cumulative spend over 24 hours) and session features need precomputation, updated incrementally as events stream in, rather than calculated fresh with an expensive join at scoring time. A model that has to query five tables before it can score a transaction will blow through its latency allowance before it ever reaches the inference step.

From Alert to SAR: Case Management and Investigator Workflow

An alert without context is just noise with a timestamp. Enriching each alert with entity-graph relationships and recent account activity lets analysts see the full picture in seconds instead of reconstructing it manually across five different screens.

Alert linked to customer account graph

Most mature programs run a tiered analyst model: Tier 1 handles initial triage against a strict SLA, escalating anything ambiguous or high-risk to Tier 2 for deeper investigation. This structure keeps throughput predictable even as alert volume spikes, and it gives newer analysts a defined scope while senior investigators focus on complex cases.

The workflow needs to produce, at minimum:

Governance, TMRA, and Model Validation Requirements

Regulators don’t evaluate a transaction monitoring system on cleverness. They evaluate it on whether governance can prove the system does what it claims. That starts with a formal TMRA before any code gets written, followed by documented business and functional requirements (BRD/FRD) that tie every rule and model back to a specific risk.

Three governance practices separate defensible programs from ones that struggle in an exam:

  1. Treat the TMRA as living documentation, revisited whenever product lines, geographies, or customer segments change, not filed away after initial approval.
  2. Run independent model validation separate from the team that built the model, with a tuning cadence that includes simulation-led threshold testing against historical alert data.
  3. Track KPIs continuously: alert-to-SAR conversion rate, false-positive rate, scoring latency, and coverage gaps identified during batch analysis.

FinCEN guidance makes clear that documented controls supporting SAR decisions are not optional paperwork, they’re the evidentiary backbone examiners rely on. A documented rules inventory paired with model validation is what turns a working system into an examined and approved one.

Scaling and Operating a Production Transaction Monitoring System

Volume growth exposes design flaws that never surfaced in testing. Stream processors need horizontal scaling through partitioning strategies that keep related transactions (same customer, same account) on the same partition, so ordering guarantees hold during detection. Feature stores need similar partitioning logic to avoid hot-key bottlenecks when a single high-volume account dominates traffic.

Migrating to a new system safely means running it in parallel against the legacy platform before cutover. Parallel runs surface coverage gaps that would otherwise only appear after go-live, when the cost of a missed typology is far higher.

Observability needs to cover:

  • Latency percentiles (P95/P99), not just averages, since tail latency is what breaks the authorization budget.
  • Backpressure signals across stream processing stages, flagging when ingestion outpaces detection throughput.
  • Data freshness checks, confirming enrichment sources haven’t gone stale silently.
  • Alert spike detection, distinguishing a genuine fraud wave from a broken rule generating false positives at scale.

Security, Data Lineage, and Audit Trail Design

A transaction monitoring system handles some of an institution’s most sensitive data, which means security design isn’t a bolt-on. Encryption in transit and at rest is table stakes, paired with strict identity and access management that limits who can view raw transaction data versus aggregated risk scores. Secrets management for API keys and service credentials needs rotation policies, not static values sitting in configuration files.

Data lineage matters as much as encryption. Every alert and every SAR decision needs a traceable path back to the source data and the exact rule or model version that triggered it. Without that lineage, defending a decision to an examiner becomes guesswork.

  • Maintain an immutable audit trail for every alert disposition, with timestamps and analyst identifiers that can’t be altered retroactively.
  • Apply data masking for any telemetry or logging that doesn’t need raw account numbers or PII visible.
  • Set retention policies aligned to regulatory requirements, long enough to satisfy examiners, short enough to limit exposure if a breach occurs.

How Bitecode Shortens the Path From Design to Deployment

Building this architecture from scratch, every connector, every feature-store scaffold, every case-management screen, is where most transaction monitoring projects lose months. Bitecode approaches this differently: modular components that are already built for the patterns described above mean a project can start with a substantial share of the baseline system already in place, rather than beginning at zero.

That modularity shows up in specific building blocks:

Teams that need the detection layer specifically, rules working alongside ML rather than one replacing the other, can lean on patterns already proven in how AI enhances transaction monitoring and fraud prevention rather than reinventing that logic internally.

Data Privacy Considerations Specific to Transaction Monitoring

Transaction monitoring systems sit in an uncomfortable privacy position: they need broad visibility into customer behavior to detect suspicious activity, but that same visibility creates real exposure if handled carelessly. The tension isn’t resolvable by policy alone, it needs to be designed into the architecture itself.

Purpose limitation is the starting point. Data collected for AML detection shouldn’t casually flow into marketing analytics or credit decisioning, even when the same customer profile would technically support it. Access boundaries need to enforce that separation at the system level, not just in a policy document nobody reads twice.

Model training introduces its own privacy tension. Feeding raw, identifiable transaction histories into ML pipelines multiplies the surfaces where a breach or misuse could expose customer data. This is part of why synthetic data approaches have gained traction, they let teams iterate on model architecture and feature engineering without every experiment touching live PII.

Cross-border data flows add another layer. Institutions operating across jurisdictions need to track where transaction data physically resides and processes, since privacy regimes differ sharply on what counts as acceptable data residency for financial records. Retention limits also cut both ways here: keep data long enough to support a SAR investigation that might surface months later, but not so long that it becomes an unnecessary liability sitting in storage.

Update and Retraining Strategies for Machine Learning Models

Detection models decay. Customer behavior shifts, new products launch, and bad actors adapt specifically to evade whatever pattern the current model is scoring against. A model validated eighteen months ago against last year’s fraud patterns is quietly losing accuracy right now, even if nothing in production looks broken.

The fix isn’t a single retraining event, it’s a cadence. Most mature programs run scheduled retraining on a fixed interval, often quarterly, supplemented by trigger-based retraining when drift detection crosses a defined threshold. Both mechanisms matter: scheduled retraining catches slow, seasonal drift, while trigger-based retraining catches sudden shifts, like a new fraud typology spreading fast across a customer base.

Champion/challenger deployment reduces the risk of any single retraining cycle. The current production model (the champion) keeps scoring live traffic while a newly retrained candidate (the challenger) scores the same traffic in shadow mode, with its outputs logged but not acted on. Only after the challenger demonstrates comparable or improved performance across false-positive rate and detection coverage does it get promoted.

Every retraining cycle needs to feed back into the audit trail. Regulators expect to see which model version scored which transaction, what data it trained on, and why it was promoted or rolled back. Skipping that documentation turns a technically sound retraining process into a governance liability the moment an examiner asks a pointed question.

Interface Design for the Analysts Who Actually Use This System

The best detection logic in the world is worthless if the analyst staring at an alert queue can’t figure out what it’s telling them in under thirty seconds. Interface design gets treated as an afterthought on far too many transaction monitoring projects, usually because the engineering effort goes entirely into detection accuracy and none into the workflow around it.

Alert triage screens need to surface the decision-relevant context immediately: the triggering rule or model score, the entity’s recent transaction history, related accounts on the entity graph, and any prior alert dispositions for the same customer. Burying that information behind three clicks costs real time across thousands of alerts a month.

Case documentation needs structured fields that map directly to SAR narrative requirements, not a free-text box that leaves every analyst writing investigation notes in a different format. Structured capture speeds up both the individual investigation and any later audit review, since a supervisor or examiner can scan a consistent format instead of parsing prose written under time pressure.

Investigator fatigue is a real design constraint, not a soft concern. High false-positive rates don’t just waste analyst hours, they train analysts to disposition alerts faster and less carefully over time, a pattern sometimes called alert fatigue. Interfaces that let analysts flag noisy rules directly from the triage screen, feeding that signal back into rule tuning, close the loop between frontline experience and system improvement far faster than a quarterly review meeting ever could.

Interface Design for the Analysts Who Actually Use This System — overview diagram

What Most Teams Get Wrong When They Start This Build

Most redesigns underestimate governance work and overinvest in detection tuning before the data pipeline is even stable. A quick checklist for the first 90 days: run the TMRA first, stand up the rules inventory before writing rules, build the audit trail before the case management UI, validate latency budgets under real load, run models in shadow mode before promotion, and document everything as you go. Bitecode offers a rapid architecture assessment for teams starting this work.

— Bitecode

Accelerating a Compliant Build With Bitecode

Everything covered here, the streaming architecture, the feature-store latency budget, the governance scaffolding, takes most internal teams a year or more to build from a blank repository. Bitecode’s modular approach starts differently: with connector, feature-store, and case-management components already built and proven, a substantial share of the baseline system exists before the first custom line of code gets written.

Bitecode

That head start matters most for teams under regulatory pressure to move fast without cutting corners on TMRA documentation, model validation, or audit trail integrity. Bitecode’s custom software development service handles the architecture work described throughout this guide, while its automation service covers the compliance workflow layer, case routing, SAR documentation, and the audit logging examiners expect to see.

If your team is scoping a transaction monitoring rebuild or a first-time build, the next practical step is a conversation about which modules already fit your existing stack. Reach out to Bitecode to scope a project timeline against your current architecture and compliance deadlines.

Sources

Articles

Dive deeper into the practical steps behind adopting innovation.

Software delivery6 min

From idea to tailor-made software for your business

A step-by-step look at the process of building custom software.

AI5 min

Hosting your own AI model inside the company

Running private AI models on your own infrastructure brings tighter data & cost control.

Hi!
Let's talk about your project.

this helps us tailor the scope of the offer

Przemyslaw Szerszeniewski's photo

Przemyslaw Szerszeniewski

Bitecode co-founder

LinkedIn