Last tax season, I sat down to reconcile my pay stubs against my W-2. I had 26 biweekly stubs from the whole year — all PDFs — and I needed the numbers in a spreadsheet.
I tried copy-pasting from the PDF. That was a disaster. The columns didn't align, numbers merged together, and I spent more time fixing the mess than it would've taken to just type everything by hand.
So I typed everything by hand. For about three stubs. Then I thought: there has to be a better way.
Turns out, there are really only three approaches. I'll save you the trial-and-error.
The hard way: manual entry
Open the PDF. Open Excel. Start typing. It works, technically. If you only have one or two stubs and you're not in a rush, it's fine.
But here's the thing — a single pay stub can have 15 to 30 individual data points. Gross pay, federal tax, state tax, Social Security, Medicare, health insurance, dental, vision, 401(k), HSA, maybe a parking deduction, maybe union dues. Multiply that by 26 pay periods and you're looking at hundreds of numbers. One wrong keystroke and your annual totals won't match your W-2, and you'll be hunting for the error for an hour.
I don't recommend this for anything beyond a couple of stubs.
The "almost" way: generic PDF tools
Adobe Acrobat, Tabula, SmallPDF — they all have PDF-to-Excel features. They work great for simple tables. Invoices, receipts, things with clean rows and columns.
Pay stubs are not simple tables. They're these weird multi-section documents with headers mixed into the data, nested categories, columns that don't line up across sections, and layouts that vary wildly depending on whether your employer uses ADP, Gusto, Paychex, or some custom payroll system from 2003.
What happens in practice: the tool extracts something, but federal tax ends up in the "hours" column, your health insurance premium is merged with your gross pay, and the deductions section is just... gone. You spend 20 minutes cleaning up what should've been a 30-second job.
I've seen this enough times to say: generic PDF tools and pay stubs don't mix well.
The fast way: AI-powered extraction
This is what I ended up building (disclosure: I'm the creator of StubSheet, so I'm biased — but I built it precisely because the other options frustrated me).
AI extraction doesn't just pull tables out of a PDF. It actually reads the pay stub the way you would — it understands that "Fed Income Tax" and "FIT" and "Federal Withholding" all mean the same thing, that the number next to "Net Pay" is your take-home, and that the YTD column is separate from the current-period column.
Upload the PDF, wait about 20 seconds, review the extracted data on screen (you can fix anything that looks off), and download a clean spreadsheet. That's it.
For the occasional stub, the free tier is plenty. For a full year of stubs — like my tax season nightmare — it takes maybe 15 minutes total instead of an entire evening.
A few tips regardless of method
Always download stubs from your payroll portal — not screenshots, not photos. Digital PDFs convert way more accurately than scanned images.
Spot-check three numbers. Gross pay, net pay, total taxes. If those three match the original, the rest is almost certainly correct too.
Don't wait until December. Convert each stub when you get it. Future-you will be grateful when tax season rolls around and everything's already organized.