Clean a PayPal activity CSV export

A PayPal activity download is wide, writes its dates month first, and can carry repeated rows, empty fees and rows with no amount. Choose the file below: the page cleans it in your browser, shows the first 20 cleaned rows and lists every line it left out, with the reason.

Clean your PayPal activity CSV

The cleaner looks for the Date, Name, Type, Currency, Gross, Fee, Net and Transaction ID columns in the header row and writes eight fixed columns: date, description, amount, currency, fee, net, reference and source. It does not filter rows by Status, so pending rows stay in.

Your file is read in your browser and is never uploaded, stored or logged. It is held in the memory of this tab only, and closing or reloading the page discards it. Operator: Augeo. See the privacy notice.

PayPal lets you choose which fields to download, so exports differ, and this page makes no promise about yours: the free preview shows what it does to your file.

The cleaning logic is checked by an automated test script that runs the engine file of this site over six synthetic sample files and a set of checks of the parsing rules; it ran in a sandbox before this site was published and finished with no failed check. The script does not open this page in a browser, does not test the licence key step, and nothing was tested against a real export from any provider. Use the free preview to check your own file.

Download the full cleaned file

  • Price: 6 USD, paid once on Gumroad. No subscription. You receive a licence key.
  • What the key unlocks: the download of every cleaned row of the file you chose, as one CSV named after your file with -cleaned.csv at the end, instead of the first 20 rows on screen. The report and the way files are read stay the same.
  • The key is for one buyer. Runs are not counted and no number of runs is promised. The key is kept in the memory of this page only, so you enter it again after closing or reloading the page.
  • Refunds are requested through your Gumroad receipt and follow Gumroad's refund policy.
  • Try the free preview first. If the preview cannot read your file, the full download cannot either.

Get a licence key on Gumroad for 6 USD

What the cleaner changes in a PayPal activity export

Amounts are never converted between currencies. If the export holds more than one currency, the report says so and the currency column tells the rows apart.

How to do the same by hand in a spreadsheet

These steps work in Excel, Google Sheets and LibreOffice Calc. The formulas below use placeholder column letters: Name in D, Type in E, Gross in H and Fee in I. Read your own header row and change the letters to match. If your spreadsheet uses a decimal comma, write the formulas with semicolons between arguments instead of commas.

  1. Work on a copy and keep the downloaded file untouched.
  2. Import the file and tell the spreadsheet the dates are month first. In LibreOffice Calc set the Date column to Date (MDY) in the Text Import dialog. In Google Sheets set File, Settings, Locale to United States before File, Import. In Excel use Data, From Text/CSV, Transform Data, then Change Type, Using Locale, Date, English (United States).
  3. Delete blank rows, then remove exact repeats with the remove-duplicates command, comparing every column and not only the transaction ID.
  4. Find amounts that are not numbers. =ISNUMBER(H2) filled down shows FALSE for a Gross such as N/A. Move those rows to a separate sheet; do not turn them into zero.
  5. Fill empty fees with =IF(I2="",0,I2) and build the description with =IF(D2="",E2,D2&" - "&E2).
  6. Write the dates as year-month-day with the custom number format yyyy-mm-dd, keep the eight columns, paste formulas back as values and save as CSV UTF-8.
  7. Compare the result with the original: amount plus fee should equal net on every row, and the rows you kept plus the rows you removed should add up to the rows you started with.

Notices

Other exports