Drop your statement PDFs here
One card at a time. Amex and CIBC supported today.
Apply your review decisions
Open the workbook this app filed into Drive, fill in the COMMENTS column on the Review sheet with the category you want, save it, then load it back here. The app recodes those rows, rebuilds the summary and redraws every highlighted statement.
You need the same statement PDFs loaded on the Process tab first, so the highlighted files can be redrawn. If you've just done a run in this session, they're already loaded.
Your rules
This is the brain of the app: which merchant maps to which category, the out-of-GTA meals rule, which merchants always go to Review. Edit it here, or download it and commit it to your repo so it travels with the app.
Your merchant list is kept out of GitHub. The repo is public, so the copy of
rules.json there ships with an empty merchant map. Use
Import a rules file to load my-rules.json β it's stored in this
browser and never uploaded. Do that once per browser you use.
One-time setup
-
Put this folder in a GitHub repo. Create a repo called
statement-filer, upload every file from this folder, then go to Settings β Pages and set the source to Deploy from a branch β main β / (root). A minute later your app is live athttps://<your-username>.github.io/statement-filer/. -
Make a Google OAuth Client ID so the app can write to your Drive.
Go to console.cloud.google.com
β create a project β APIs & Services β enable the Google Drive API β
Credentials β Create credentials β OAuth client ID β application type
Web application. Under Authorized JavaScript origins add
https://<your-username>.github.io. Copy the Client ID. - Paste the Client ID into the app using the β button, top right. It's stored in your browser only β it is not a password and it is safe to keep in a public repo, but the app doesn't put it there for you.
- Publish the consent screen or add yourself as a test user. While the app is in "Testing" mode, only accounts listed under Audience β Test users can sign in. Add your own Gmail address there.
What it does with your Drive
The app asks for permission to see and manage your Drive files. It needs the broad scope because
it has to find your existing Annual Audit β¦ Sep folder β an app-only scope cannot see
folders it didn't create. It only ever writes inside
Annual Audit β¦ Sep / Credit Card Statements /. Your statements are read inside your
own browser tab and go straight to your Drive; there is no server in the middle, and nothing is
stored anywhere else.
Where files land
Annual Audit 2026 Sep
βββ Credit Card Statements
βββ Amex
βββ Q3 2026
βββ Q3 2026 Amex Transactions.xlsx
βββ Abridged Statements/
β βββ (the statements you dropped)
βββ Expenses Summary/
βββ Amex Q3 2026 Meals.pdf
βββ Amex Q3 2026 Business Travel.pdf
βββ β¦ one per category