Solutions · Core Technology

The third time
is on us.

Pattern memory is the loop that makes Kopi different. Every approval your team confirms becomes a data point. After two identical patterns, the third auto-passes silently. Over months your team stops seeing routine approvals entirely — only the genuinely interesting ones survive.

1

AI reviews

New vendor or first amount. Claude Vision parses the invoice, 5-dimension scoring, card to approver.

2

You approve

Tap Looks good. The (vendor, amount) tuple is written to pattern_memory. approval_count = 1.

3

Auto-pass

Third identical submission arrives. Pattern is trusted. Green card, no AI call, no approver click.

The design choices behind it

Conservative, not aggressive

We require 2+ approvals (not 1) and ±30% amount tolerance (not infinite). False-pass is the worst failure mode. A generic fraud on a familiar vendor should still be caught because the amount will be outside the band.

Rejection invalidates permanently

Any rejection_count > 0 disqualifies the pattern forever. One mistake doesn't poison future auto-passes. The approver's authority is preserved end-to-end.

Per-tenant isolation

Your patterns never leak to another tenant, and you never inherit theirs. Each customer gets a clean slate — and keeps theirs clean.

Explicit, inspectable state

Pattern memory is a Postgres table, not a model weight. You can see every entry, export it, delete it, or seed it manually. No black-box magic.

The data moat is real

Kopi is cheap to clone, but your 6 months of accumulated "normal" is not. Switching to a competitor means restarting the learning clock.

Your pattern memory starts today.

Free beta through Sep 2026. Every week of accumulated learning is a week competitors can't replicate.