The backstory

Why I built it

I started with a small question—what did I spend?—and ended up confronting the difference between a feed and a ledger.

I did not set out to build financial infrastructure. I wanted my agents to answer ordinary questions about my own money. The first version fetched transactions, added categories, and looked convincing. Then the edge cases arrived.

A card feed omitted posted rows. Pending charges refused to die. An authentication warning meant something different for a monthly-updated card than it did for a daily bank connection. The answers were fluent, but the evidence underneath them was uneven.

The decisions that followed

Keep the raw observation

A later repair should not erase what the connector originally reported. Provider, statement, correction, and derived evidence stay distinct.

Make uncertainty visible

Partial data should still be useful, but it must carry its missing coverage into every answer it affects.

Give agents a narrower job

Agents can investigate and coordinate repairs. Deterministic code owns arithmetic and evidence precedence.

What I changed my mind about

I once treated AI as the pipeline.

That was backwards. Models are useful for merchant research, explanations, and suggestions. They are a poor place to hide account identities, transaction lifecycle, balance arithmetic, or statement matching.

The current design uses models at the edges. Every important financial claim can fall back to deterministic evidence, and every model result is allowed to be rejected.