HSA Expense Tracker

Snap receipts, auto-extract the IRS substantiation fields, and export evidence-grade PDF reports — all stored in your Google account, behind your Google sign-in.

How it works

Set up (one time, ~2 minutes)

1 Create the project & paste the code (one copy-paste)
  1. Open script.google.com/create (sign in with the Google account that should own the data).
  2. Name the project HSA Tracker (click “Untitled project”).
  3. Copy the block below, select everything in the editor's Code.gs, and paste over it. That single paste is the entire app — no other files to create.
2 Deploy — private to you
  1. Click Deploy → New deployment.
  2. Type: Web app.
  3. Execute as: Me and Who has access: Only myself (both are the defaults) — this is what makes the app private. Google requires your sign-in and refuses every other account.
  4. Click Deploy, authorize the permissions (Drive, Sheets, external requests — all used only by your own script), and copy the Web app URL (ends in /exec).
3 First run
  1. Open the Web app URL. The spreadsheet and Drive folders are created automatically on first load.
  2. Go to Settings in the app: paste your OpenAI API key (it is validated, stored in the script's own properties, and never sent to the browser) and add your household members.
4 Link it here

Paste your Web app URL so this page (and its home-screen icon) opens your tracker directly:

Stored only in this browser (localStorage).

Updating the app later

  1. Copy the block from step 1 again (this page always serves the latest version) and paste over Code.gs.
  2. Deploy → Manage deployments → edit (pencil) → Version: New version → Deploy.

Updating the existing deployment keeps your URL. Do not create a new deployment for updates — that mints a different URL.

Set up back when this page listed 7 files? Just paste the new block over Code.gs — the old HTML files (Index, styles.css, util.js, app.js, export.js) are no longer used and can be deleted.