[All work](/work?type=work)

# Bank-to-Sheets Sync

A small service that keeps settled BNZ transactions in a Google Sheet, so the budget formulas already in the sheet have current data.

[Source code](https://github.com/Slaymish/akahu-sheets-sync)

Independent development. Python, Akahu and Google Sheets.

![Two grids of cells, the second shifted down a row so the newest column lines up empty.](https://cdn.sanity.io/images/qnuj1c4o/production/5dfcc723a8b9da0e5bf8426a77e55458856f899c-1600x900.png?w=1280\&q=80\&auto=format)

The sheet had places for the numbers, so the job was keeping the rows underneath them current, and stable transaction IDs with saved sync state mean a rerun doesn't duplicate a batch while category rules and transfer detection run before the write.

Reconciliation compares the balance the bank reports against what the sheet expects. It ran on a Raspberry Pi and stayed quiet.

## State

A tested sync with state, categorisation and reconciliation, and the thing the later finance projects grew out of.

[All work](/work?type=work)
