How it works

Every stage between a bank publishing a rate and your balance changing.

Crawl · Nimble · liveParse · Liquid LFM via OpenRouterLedger · RawTree · ClickHouse

These reflect what this deployment can reach right now, not what the diagram intends. A stage without its credential falls back to a deterministic 90-day history, so the pages below never show an empty state — but they also would not be telling you anything real, which is why the badge says so.

The data map

Runs once a day at 14:00 UTC, and on demand.

Bank rate pagesdepositaccounts.com · bankrate.com · nerdwallet.com3 sourcesNimbleHeadless crawl, waits for the rate table to renderHTML inLiquid LFM 2.5Reads the markup, returns structured rate rows26 live rowsSweep engineInsured · no fee · beats current by 25bp · banking day8 movesRawTreerate_observations · sweep_events · daily_accruals89 days bookedRead layerOne row per day, blended APY compounded in SQLdedupesWhat you seeYour balance, placements, statementsthis siteSeeded90-daydeterministichistoryused when akey is missing

What the ledger holds

RecordWhat it isCount
Rate observations — crawledRates read off a real bank page today26
Rate observations — seededThe deterministic history the demo starts from728
TransfersEvery time your deposit moved bank8
Days bookedOne interest accrual per day since opening89

Most recent crawled rate: 2026-09-25 22:18 UTC.

The rules your money follows

Insured, or it does not qualify
A bank is eligible only if its listing carries FDIC or NCUA insurance. Rate is irrelevant without it.
A better rate must beat yours by 25 basis points
A transfer costs one to three days of interest in settlement. Moving for less loses money. Right now you hold 4.44% and the best we see is 4.62%.
Transfers only on banking days
ACH cannot be initiated on a weekend or a federal holiday, so a move decided then waits for the next open day.
One accrual per day, ever
Interest is booked once per calendar day. Running the job twice cannot book it twice.