Transaction enrichment engine

Kederi

Bank feeds hand your app cryptic strings. Kederi turns each one into a clean merchant, a category, a channel, a country + currency, and a recurring flag. Paste a narration from any of six markets and watch it resolve. Every answer here is a live call to the same API, over a 660+ merchant directory across nine countries.

Bank narrationraw descriptor

CSV, TSV, JSON, OFX or QIF. The file is read in this browser and never uploaded: only the narration text of the first 25 rows is sent, which is what the box above sends one of. No PDF here, because reading one needs the server.

What we test on every change

Accuracy is the product, so we run these sets on every change. We do not quote a percentage: a score on our own test set tells you little about your bank. The answer above, on your own narration, is the one that counts.

234 public benchmark Labelled narrations across nine markets, scored on name, category, intent, country and direction
895 real statement rows From Nigerian bank statements over 18 months, shared with consent and never published
106 precision negatives Narrations that must resolve to no merchant at all. Recall and precision fail independently, so both are measured

Coverage

Countries the engine understands today: narration formats, local directory depth, and inferred currency. full = validated on real bank exports; beta = dictionary + format coverage.

CountryStatusCurrencyLocal merchantsFormats

Batch feed

The same engine over a mixed stream. Note how the Nigerian rows are free text naming a person, which is a different problem from reading a US card descriptor.

Raw narrationResolvedCategoryRecurringConf.