← All work

Independent lab · not an employer deliverable

LedgerGuard

Transaction Risk Decision Engine

Score fictional payments with deterministic rules, adjust review thresholds, and leave an explainable audit trail.

Jump to interactive demo

Problem

Risk UIs that only show a score are not operable. LedgerGuard attaches rule evidence to every decision and lets a reviewer change status without inventing fraud claims.

Interactive demo

Fictional transactions and rule scores. Not a fraud detector, bank integration, or compliance assessment.

LedgerGuard · risk workbenchFictional ledger · not a fraud detector

Evaluated 7

Awaiting 5

Reviewed 0

Held 0

Policy thresholds

Current case classifies as review from rule weights, not a black-box score.

txn-1043

acct-18f · electronics · 2026-10-29T07:04Z

  • High amount vs sample profile (+40) — Amount 980 exceeds the demo profile threshold of 500.
  • Burst within five minutes (+25) — 2 sample authorizations on acct-18f inside a 5-minute window.

Suggested: manual review

  • Ingested from the sample authorization feed.

Rule hits · amount:1 velocity:6 region:2 duplicate:2

Architecture

A rules engine evaluates amount, velocity, region mismatch, and duplicate submissions over a seeded ledger. Scores are sums of triggered rule weights. Thresholds map scores onto allow, review, or hold. Manual actions append history. This is not a bank, not a detector, and not a compliance product.

Seeded transaction → rule evaluation → score → threshold class → optional reviewer action → audit trail.

Decisions

  • — Compute the illustrative score only from triggered rules.
  • — Keep threshold sliders as the policy that reclassifies eligible cases.
  • — Require every status change to write a decision history row.

Trade-offs

  • — Strict amount rules catch outliers and they inflate false positives on legitimate large purchases.
  • — Manual review reduces automated harm and it adds operational latency.
  • — Duplicate detection needs idempotency keys; missing keys look like new spend.

Failure modes

  • — Lowering the hold threshold reclassifies more sample cases without changing rule evidence.
  • — Approving a case does not clear the rules that originally fired.
  • — Filters can hide held items from the queue without deleting them.

Evaluation

Queue counts and rule-trigger tallies are aggregations of the current sample set after the selected thresholds and actions.

Production extensions

Proposed — not implemented in this portfolio.

  • — Replace static weights with a calibrated model behind the same explanation UI.
  • — Stream authorizations from an event log with exactly-once decision keys.
  • — Add maker-checker review and immutable audit export.

Python · FastAPI · PostgreSQL · Redis · rules engines · audit logging