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 demoProblem
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.
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