$StatementProof

Privacy, enforced — not just promised

Most converters that say "your data never leaves your browser" are asking you to trust their word. This page shows the mechanism, and lets you check it yourself.

0outbound requests since this page loaded. Convert a statement above and watch it stay here.

Try it: convert a statement right here

Watch the counter above while you do it — or open your browser's Network tab and watch that instead.

The browser enforces it, not just our code

Every page on this site is served with a Content-Security-Policy header of connect-src 'none'. That's a browser-level instruction: no fetch(), no XMLHttpRequest, no WebSocket, no beacon can leave this page, even if a bug or a future change tried to add one. You don't have to trust our intentions — the browser refuses the connection regardless.

No analytics, no CDN dependencies

pdf.js and every other library this site uses are bundled and served from this domain, not loaded from a CDN at runtime. There's no Google Analytics, no tag manager, no third-party script of any kind — because any of those would themselves make outbound requests, which would contradict the claim above. Traffic is read from server logs at the hosting edge, not from anything running in your browser.

It works with your internet off

Once this page has loaded, disconnect from the internet and convert a statement — it still works. That's the practical test of "never leaves your browser": if it needed a server, it couldn't run offline.

Verify it yourself in under a minute

You don't need to take any of the above on faith — every browser ships the tools to check it. This works on this site, and it works on any converter you're considering using instead.

  1. Open DevTools before you upload anything. Right-click the page → Inspect (or F12 /Cmd+Opt+I), then click the Network tab. Check "Preserve log" if it's offered — it stops the list from clearing between page loads.
  2. Convert a statement. Drop a PDF in above, let it parse and reconcile, and export it in whatever format you'd normally use.
  3. Read the Network tab. You'll see requests for this page's own HTML, CSS, and JavaScript files — that's normal, the app itself has to load. What you should not see, at any point during parsing or export, is a request whose name isn't a local file: no domain other than this site's own should ever appear in that list. If one does on a converter you're testing, that's the statement's contents — or metadata about it — leaving the browser.
  4. Check the response headers, if you want to go further. Click the top-level document request, open the Headers tab, and look forContent-Security-Policy. On this site it includes connect-src 'none' — that's the browser-enforced rule discussed above, visible in the raw response the server actually sent.

Most competing converters will fail step 3 the moment you drop a file in, because their entire model depends on receiving your PDF on a server somewhere. That's not necessarily a sign of bad faith — some of them do things this tool can't, like OCR a scanned statement, which genuinely requires server-side processing. But "secure" and "files are deleted after conversion" are claims about what happens to your file after it's already been sent. This page is about a different, checkable claim: that it's never sent at all.