← SkillSafe / Statement to Sheet

Bank statements and receipts to a spreadsheet

Drop statement PDFs, receipt photos or bills. You get one clean table — date, description, amount, balance, category — checked against the statement's own totals, so a missed or misread row shows up.

No API key needed Text PDFs are read free in your browser. Scans and photos are read by AI — pay per run with credits.

Try an example, free:

Drop PDFs or photos here or

Bank and card statements (PDF), receipts and bills (PDF, JPG, PNG, HEIC from a phone camera roll as JPG). Up to 12 files.

Private by design. Text PDFs are read inside this page and never leave it. A scan or photo is uploaded only when you choose to have AI read it, and is deleted as soon as the read finishes.

How it works
  1. Text PDFs, free. Most banks' downloaded statements carry a text layer. The page reads it where it sits on the page, so a number under “Withdrawals” is money out and one under “Deposits” is money in. Nothing is uploaded and no sign-in is needed.
  2. Scans, photos and bills, by AI. A page with no text layer, or a phone photo of a receipt, is shrunk in your browser and read by an AI model. You see the most it could cost before it runs, and are charged what it actually used. The upload is deleted when the read finishes.
  3. The reconciliation. Opening balance + money in − money out must equal the printed closing balance; the rows must add up to the printed totals; every printed running balance must follow from the row above it; a receipt's items must add up to its subtotal and total. Anything that does not is flagged by row, never smoothed over.
  4. Categories. Each row gets a budget category from its description. Change any of them; the category totals and every export follow.
  5. Export. Excel (with live category totals), CSV, OFX and QIF for money apps, JSON, or a Markdown table. The CSV opens directly in Budget Flow.

Drive it from your own code · llms.txt