FOR YOUR OWN MONEY

The statement you can actually read.

You already download the statements. You already keep a category column and rebuild the pivot at the end of the month. Drop the file in here and the typing is done.

Upload a statement

FREE EVERY MONTH · NO CARD · NO BANK LOGIN, EVER

paperflight.app
Drop your statementPDF OR CSV · EXPORTED FROM YOUR BANKStatement-2026-Annual.csv1,847 ROWS · JAN–DEC
Reading your statementFINDING THE ROWSNAMING THE MERCHANTSCHECKING THE BALANCE12 MONTHS · 1,847 LINES

MONEY IN

$142,680

MONEY OUT

$71,394

NET

+$71,286

▤ TABLE▥ MONTHS◹ TREND◕ BY CATEGORY
30 NovNTUC Fairprice (via ShopBack)SHOPBACK*NTUC FAIRPRICE88.40
28 NovNetflix.com (via PayPal)PAYPAL *NETFLIX.COM45.00
27 NovSalary Acme Pte LtdGIRO SALARY ACME PTE LTD+8,400.00
25 NovBlue Bottle Coffee (via Square)SQ *BLUE BOTTLE COFFEE6.80
24 NovSwiggyUPI/DR/412345678905/SWIGGY/HDFC23.50
22 NovAnytime Fitness (via EzyPay)EZYPAYSGD*ANYTIME FITN16.90
21 NovZomato (via Razorpay)RAZORPAY*ZOMATO112.35
19 NovPezzo (via 2C2P)2C2P*PEZZO COM2.99
18 NovNotion Labs Inc (via Stripe)STRIPE*NOTION LABS INC74.20
16 NovKopitiam (via GrabPay)GRABPAY*KOPITIAM12.00
15 NovApolloUPI/DR/412345678901/APOLLO/HDFC2,150.00
14 NovUberUPI/DR/412345678903/UBER/HDFC38.60
AprMayJunJulAugSepOctNovDec
SPENDING PER MONTH, APRIL TO DECEMBER
  • Housing34%
  • Food23%
  • Transport18%
  • Everything else25%

A spreadsheet works. It just costs an evening.

Count your own card. Five charges on an ordinary day is about 150 a month, and roughly 1,800 over a year. Add a current account and a second card and you are comfortably at double that.

None of it is hard. It is just long, it comes round again next month, and the first month you skip leaves a hole you only find when you are trying to answer a question.

  • The category column drifts"Groceries" and "groceries" and "Grocery" become three rows in the pivot. The total is wrong in a way that looks right.
  • One shop has six namesEvery prefix and reference number starts a new line, so your local cafe is scattered down the sheet and never reaches a top ten.
  • Nothing spots a repeatA subscription that went from 30 to 45 is two ordinary rows eleven months apart. A sheet has no reason to put them next to each other.
  • Two months in, it stopsThe sheet is only as current as the last evening you gave it. That is what makes it stale rather than wrong.

Why half the lines make no sense.

Your bank is not being careless. The name on a card charge is a billing descriptor, and it is usually capped at 22 to 25 characters. A long name turns up already chopped, before anyone has tried to read it.

Three things happen on the way to your statement, and none of them are about you.

  • You get the processorA cafe taking payments through Square bills as SQ *NAME. The payment company comes first, and the shop is whatever survived.
  • You get the parent companyThe name registered with the card network is often the group that owns the brand. It is not the name above the door, and it is not the one you would search for.
  • You get the legal entityPlenty of shops bill under the company on their incorporation papers rather than the name on their sign.

So we strip the prefixes, the reference numbers and the padding, and we print the bank's line under ours. If we read it wrong, you can see that we read it wrong.

SQ *BLUE BOTTLE COFFEEBlue Bottle Coffee (via Square)SQ *BLUE BOTTLE COFFEE
SHOPBACK*NTUC FAIRPRICENTUC Fairprice (via ShopBack)SHOPBACK*NTUC FAIRPRICE
UPI/DR/412345678905/SWIGGY/HDFCSwiggyUPI/DR/412345678905/SWIGGY/HDFC

HOW IT WORKS

What happens when you drop the file in.

Drop the file in

The PDF or CSV your bank already sends you, straight out of your downloads folder. Nothing to connect, nothing to authorise.

We read it

SQ *BLUE BOTTLE COFFEE becomes Blue Bottle Coffee, in a category. Get one wrong and you fix it once.

Look at the year

By shop, by category, by month. The pivot table you keep rebuilding, already built.

The ones you forgot you were paying.

Subscriptions, bills and memberships end up in one list. Including the one that went from 30 to 45 in March and did not mention it, and the domain you renew once a year and never see coming.

Anthropic

30.00 → 45.00 · CHANGED

Anytime Fitness

89.00 EACH TIME

Namecheap

ANNUAL · APRIL

CORRECTIONS STICK

Fix a category once. Nothing overwrites it later, not a re-import and not a better guess we add next year.

CURRENCIES STAY APART

Every amount keeps the currency it was charged in. If a total would mix two, we tell you which one we counted.

YOU CAN LEAVE WITH IT

Export everything to CSV on the paid plan, with the bank's original text still in the file. Nothing is held hostage.

Start with a statement you already have.

Upload a statement