Tickvouch Every conversion ties out, or you see FAIL.
PDF bank statement to Excel or CSV

You don't have to check every line. The arithmetic already did.

Tickvouch converts PDF bank statements to CSV or Excel in this browser tab — the file is not uploaded, and the conversion completes with the network off. Then the one sum that proves it runs: opening balance plus every transaction must equal the closing balance, shown as PASS or FAIL with the arithmetic. Every conversion ties out, or you see FAIL.

The parser ships with a public test suite: 1,299 assertions across 8 synthetic statements. They include a deliberate date-anomaly fixture, a scanned PDF the converter must refuse, and a statement engineered to fail its own reconciliation by 240.00 — because a check that never fails is not a check. The rest confirm that every accounting-software export carries the same totals out. Last verified 6 September 2026.

Drop a PDF statement here

or click to choose one. One file in, one checked spreadsheet out.

Text-based e-statements from online banking, not scans or phone photos.

The statement does not leave this tab. The PDF is read here by pdf.js, Mozilla's PDF library, and the rows are parsed on your own machine. Nothing is uploaded, because there is nowhere to upload it to.

Everything this page loads, it loads from tickvouch.com: the stylesheet, the converter, pdf.js, and the spreadsheet writer. Once loaded, a conversion makes no network request at all. The page also sets a Content-Security-Policy of default-src 'self', so the browser itself refuses a request to any other host, whatever we might write on this page.

Check it rather than take it: turn your wi-fi off and convert anyway, or open the network panel in your browser and watch while you do. There is a longer version of that test further down. No account, no card, no sign-up, and nothing is counted, capped or charged.

You do not have to switch converters

Already converted it somewhere else? Check that file here.

A dropped row looks exactly like a statement that had one fewer transaction. That is why converter output is hard to trust and slow to check by eye. The arithmetic does not care which tool produced the file: opening balance + every transaction must equal the closing balance, and both numbers are printed on your statement.

Bring the original PDF and the CSV your converter gave you. You get a PASS or a FAIL with the difference, and the list of rows that are on the statement but missing from your file. It is free, it needs no account, and neither file leaves your browser.

Check a file I already have

The result nobody shows you

This is what a FAIL looks like

Every converter shows you its wins. Here is the other case, rendered exactly as this page renders it. The statement below is one of the test files in this project's own test suite. One row was deliberately deleted before parsing, to force the failure.

Extract from the demonstration file. The 15 January row is the one that was removed.
DateDescriptionAmountBalance
12/01/2026Card payment - Corner Book Shop-18.904,265.35
15/01/2026Transfer to savings — not extracted——
21/01/2026Refund - Corner Book Shop18.903,784.25

The check does not tell you which row is missing. It tells you the file is short by exactly 500.00 — which is the thing you need to know before the numbers reach your client, not after.

There is a third result too, and it gets its own words rather than a quiet pass: Not found means the statement did not print both an opening and a closing balance, so there is nothing to check the rows against. The page says so instead of dressing it up as a PASS.

Why this exists

You can put it down

Read the reviews of the converters already on the market and the complaint is not speed. It is that people who like their converter still cannot stop auditing it. One reviewer of a competing tool, writing in November 2024:

"I had to go through them line by line to check and correct them."

Martin Short, review of DocuClipper, Trustpilot, 7 November 2024 — trustpilot.com

He bought a tool to stop doing work and the tool gave him a new job: checking the tool. That is the actual product problem in this category, and no amount of better extraction fixes it, because a better extractor still hands you output you have to verify.

A bank statement carries its own proof. The opening balance, plus every transaction on it, must equal the closing balance. That sum is arithmetic — it cannot be argued with, it cannot be talked around, and it does not depend on believing anything about us. Tickvouch runs it on every conversion and shows you the working.

Manual keying runs at roughly 0.5–1% errors per entry (Barchard & Pace 2011, Computers in Human Behavior 27:1834–1839). A converted statement either ties out or tells you it did not.

What that buys you is one specific thing: on this file, right now, without reading down the column, you know the numbers agree.

Singapore first

DBS, OCBC and UOB — where the PDF is the only copy you have

The reason a converter has to exist at all is that the three big Singapore banks give you far more years of PDF statements than years of downloadable transactions. Past a certain date, the PDF is your accounting record. Each figure below is quoted from the bank's own support page, linked so you can check it.

  • DBS

    Transaction history in digibank online shows up to the past 6 months. eStatements are kept for 7 years from the date of your enrolment.

    So month 7 onwards exists as a PDF and nothing else. DBS also consolidates deposit, investment and loan products onto one monthly statement, with credit cards on a separate one.

    Sources: transaction history, eStatements, consolidated statements. Read 13 August 2026. DBS guide

  • OCBC

    e-Statements go back up to 3 years, from the time you subscribed. OCBC's own page says that becomes 4 years in 2027 and 5 years in 2028.

    Statements are delivered as PDF. The retention clock starts at subscription, not at account opening, so a long-standing account can still have a short archive.

    Sources: e-Statements help, statements campaign page. Read 13 August 2026. OCBC guide

  • UOB

    Digital statements are archived for up to 5 years from the time you subscribe to e-Statements, and nothing before enrolment is visible.

    UOB states the eStatement or eAdvice "will be presented as a PDF file". If you enrolled late, the years before that are not in online banking in any format.

    Sources: eStatement page, banking services. Read 13 August 2026. UOB guide

The gap none of the three closes

On the pages above, none of the three names a CSV or Excel export of your personal transactions. DBS shows a download control on transaction history without stating the file format; OCBC and UOB name no spreadsheet export on their own personal-banking pages at all. Third parties describe CSV and XLS exports for all three, which is exactly the problem: the format your bookkeeping depends on is documented by everyone except the bank.

Other banks work too

There is nothing bank-specific inside the parser. It reads layouts, not logos, and it handles the four common ones: a single signed amount column, separate debit and credit columns, separate withdrawal and deposit columns, and a running-balance column — with dates as 03/01/2026, 01/15/2026, 15.01.2026 or 3 Jan 2026.

Statements from HSBC, Barclays, NatWest, Lloyds, Monzo, Revolut, Chase, Bank of America, Wells Fargo, Citibank, Capital One, American Express, PayPal, ANZ, Commonwealth Bank, TD Canada Trust and RBC convert on the same code path. If a layout is not one it recognises, the page tells you no transaction table was found rather than guessing at numbers.

Three steps, all of them in your browser

How it works

  1. 1. Read Your browser opens the PDF and reads its text layer, keeping the position of every word on the page. The open-source pdf.js library does this, running locally from this site. No copy of your file is made anywhere else.
  2. 2. Check The parser recovers the transaction rows — date, description, amount, running balance — then reconciles them: opening balance plus every transaction must equal the closing balance. It also checks that dates run forwards and sit inside the statement period, because a right amount on a wrong date still adds up. You see PASS, FAIL or NOT FOUND before you download anything.
  3. 3. Download CSV or Excel, with a Flags column. Rows the parser was unsure about are marked in the preview and the marking survives into the downloaded file, so the warning travels with the numbers instead of stopping at your screen.
Do not take our word for it

The 30-second test that settles it

"Your file stays on your machine" is a sentence anyone can type. This page is built so you can disprove it in half a minute if it is false.

  1. Load this page. Everything it needs is now in your browser.
  2. Turn off your wi-fi. Physically disconnect, or use aeroplane mode.
  3. Drop your statement in. It converts. The reconciliation runs, the preview appears, the download works.

A tool that uploads your file cannot do that. There is no version of this that works offline and also sends your bank statement somewhere.

The longer version, if you use developer tools

Open the Network panel before you convert. You will see no request carrying your file and no request to any other domain — no CDN, no web font, no analytics, no tag manager, no error reporter, no session recorder. Every asset on this page is served from this site: one stylesheet, one script, and two vendored open-source libraries. View source and read it; it is not minified beyond the vendor bundles.

The limit of that claim, stated up front

This applies to the in-browser converter on this page, which is the whole product today. If a future paid feature ever processes a file on a server, it will be labelled as such on its own page and this claim will not be stretched to cover it.

Nothing below is in a footer

The fine print, in large print

  • The converter costs nothing. This page has no card field and makes no charge. Buying happens only on the separate purchase page, and only if you go there.
  • Nothing here requires a subscription. Credit packs are one-time purchases with nothing to cancel. A monthly plan exists for people converting at volume — it is optional, it says exactly what renews, and it cancels from your Paddle receipt.
  • Pack credits will not expire. Buy 200 pages, use 40 this month and 160 next March. (Plan pages refresh monthly instead — the plan card says so.)
  • A credit is spent only on a delivered, reconciliation-checked conversion. Never on an upload, never on a preview, never on a file you already converted, never on a failure.
  • If a conversion fails its check, the credit comes back automatically. You do not email anyone. You do not explain yourself. Nobody assesses whether you deserve it — the check either passed or it did not, and the system reads the same result you do.
  • We add no fee of our own, ever. Where your country charges VAT, GST or sales tax, Paddle adds it at checkout and shows the total before you pay — tax law, not a hidden fee.
  • Unused balance is refundable within 30 days by replying to your receipt. That is the exit, printed next to the price, before you have paid anything.
  • Nothing is edited. This is a converter. It cannot change a date, an amount, a description or a balance. Altering a bank statement is fraud, and the tool is built so it cannot be used for it.
Live

What it costs

The converter above stays free

A pack buys verified pages for people running many statements at once. It does not unlock the converter, because the converter is not locked. A page is charged only when a conversion is delivered with its reconciliation check showing PASS — failed, scanned, unreadable and repeated files cost nothing, and a file you already converted is never charged again.

No account. You get a code — TV-XXXX-XXXX-XXXX — and the pages on it never expire. Keep the code; it is the whole relationship.

Tickvouch is built and run by one person in a personal capacity. It is not written for, reviewed by, or endorsed by any employer or regulator, and it is not legal, tax, accounting or regulatory advice.

50 verified pages

$15

$0.30 per page

  • One-time. Nothing to cancel.
  • Credits do not expire.
  • Refundable unused within 30 days.

Buy 50 pages

750 verified pages

$99

$0.132 per page

  • One-time. Nothing to cancel.
  • Credits do not expire.
  • Refundable unused within 30 days.

Buy 750 pages

Monthly: 200 verified pages a month

$29 / month

$0.145 per page, refreshed monthly

  • Balance refreshes to 200 pages each renewal.
  • Unused plan pages do not stack month to month — that is the trade for the lower price. Packs are the never-expiring option.
  • Cancel any time from your Paddle receipt; the code stops refreshing and no further charge is made.

Subscribe for $29 a month

Payment opens on our own purchase page, which loads Paddle's checkout script — the only page on this site that loads anything from another host, and it says so on the page. Paddle.com is the merchant of record.

Per-page figures are the pack price divided by the pack size, rounded to three decimals. Divide them yourself.

A page here is a verified page: a credit is only spent when a conversion is delivered together with its reconciliation check. A failed conversion costs nothing.

Read the full refund policy and terms of use before you buy. Our order process is conducted by our online reseller Paddle.com. Paddle.com is the Merchant of Record for all our orders.

Already bought? Enter or retrieve your code

A code looks like TV-XXXX-XXXX-XXXX and carries the pages on the pack you bought. Checking it stores the code and its balance in this browser's localStorage, so you do not retype it. Nothing else is stored, and "Forget this code on this device" removes it.

Bought but lost the code? Retrieve it.

Including where they beat us

How this compares to the converters already out there

There are at least eight of them, several older and more featured than this one. The comparison page names them, quotes them from their own live pages with the date read, and includes a section on what they do better — because a comparison that finds us ahead on every row is an advertisement, not a comparison.

Read the comparison

Asked plainly, answered plainly

Questions

Which statements actually work?

Text-based PDF e-statements — the kind you download from online banking. The parser handles a single signed amount column, separate debit and credit columns, separate withdrawal and deposit columns, and a running-balance column, with dates written 03/01/2026, 01/15/2026, 15.01.2026 or 3 Jan 2026.

If yours does not parse, the page says no transaction table was recognised. It does not invent rows to look busy.

Do scanned or photographed statements work?

No, and not soon. A scan has no text layer, so there is nothing for an in-browser parser to read. The page detects this and says so rather than returning numbers guessed from an image.

This is the most common request and the one thing not built. Saying otherwise would be the easiest lie on the page.

Is my statement uploaded anywhere?

No. The file is read by JavaScript in your browser and never leaves your machine. Do not believe that sentence: turn off your wi-fi and convert anyway. It takes 30 seconds and it settles the question without involving us.

What does FAIL actually mean, and can I still download?

FAIL means the extracted transactions do not carry the opening balance to the closing balance. Usually a row was missed or an amount misread. You can still download the file — the check is information, not a lock. What you should not do is import it before you have found the difference.

What does NOT FOUND mean?

The statement did not print both an opening and a closing balance where the parser could find them, so the check had nothing to reconcile against. It is not a pass and it is not a failure — it means the proof was unavailable on this document, and you are told that instead of being shown a green tick.

Will it handle my DBS, OCBC or UOB statement?

Those three are the layouts this was built around first, which is why they have their own pages: DBS, OCBC, UOB. DBS consolidated statements put several products on one document; convert it and read the preview before you rely on it, because a consolidated statement's balance lines may not correspond to the single account you were expecting.

Can I edit the statement with this?

No, deliberately. It converts and it checks. It cannot change any value in the document. Altering a bank statement is fraud, and the tool has no code path for it.

Is it really free, and what is the catch?

The converter on this page is free with no account, no card and no usage cap, and conversion stays free. The catch, such as it is: paid credit packs are sold to people running many statements at once, and that is where the money comes from. Conversion is the commodity. The checking at volume is the product.

What support is there?

One person, by email, working from Singapore, with a response target of two working days. There is no phone line and no chat widget, and someone in another timezone at 2am will not get an instant reply — pretending otherwise would be the wrong answer.

The real answer is that the tool does not need us to be awake. It runs in your browser, there is no account to be locked out of and no service to go down. The address is support@tickvouch.com, and how support works is set out on the support page.

Can you tell me when scanned statements are supported?

Not yet. The box below joins a waitlist, and it is worth explaining where it goes. It posts to this site's own domain and nowhere else. No Formspree, no Mailchimp, no webhook — sending your address to another company's server would break the offline test above and make the privacy claim false. We store your address and the date you joined, and nothing else: no name, no IP address, no tracking. The privacy policy says the same thing and is the page to hold us to.

You can leave at any time: write to support@tickvouch.com and we delete your address. We have not sent a single message yet, and when we do it will carry an unsubscribe link.

Who is behind this?

One person, in Singapore, working on this outside employment and in a personal capacity. It is not connected to, reviewed by, or endorsed by any employer. Sales, when they exist, will be individual self-serve only — no corporate invoicing, no team licences, no consulting.