When an eBay Managed Payments export shows sales, refunds, fees, shipping label charges, and one payout in the same date range, the ledger line you expect to match is rarely sitting on one row. An eBay managed payments CSV ledger reconciliation breaks the moment you treat that file like a bank statement. The export is activity-level. Your ledger is account-level. They only reconcile when you separate those layers before you compare them.

That is why the numbers feel wrong even when the data is not. eBay can show one order, one fee deduction, one refund, and one payout connection across different rows, while the ledger may show one sales entry, one expense entry, and one bank movement. If you try to force a row-by-row match, you will create false exceptions and miss the real ones.

Why the rows do not line up

An eBay Managed Payments CSV is not one clean list of sales. It is a mixed transaction report. Depending on which columns you export and what happened in the period, the file can contain order activity, payout references, fees, holds, disputes, shipping label charges, adjustments, and tax-related lines.

That structure matters because the ledger rarely stores those events in the same shape.

eBay CSV row typeWhat it representsWhere it usually lands in the ledger
Gross saleCustomer payment before deductionsSales or accounts receivable
Final value fee or other feeCost deducted before payoutFee expense
Refund or claimMoney returned or charged backRefunds, returns, or dispute account
Shipping label chargeFulfillment cost deducted from fundsShipping expense
Adjustment or chargeNon-standard credit or debitOther income, expense, or clearing
Net payout linkCash movement after deductionsBank or clearing account

The row count also misleads people. One order may not equal one row. Multi-item orders can spread across several lines. A refund can appear later than the original sale. A payout can group activity from different transaction dates. None of that means the export is broken. It means your matching method has to respect how eBay records money flow.

The practical consequence is simple: do not ask one column to answer every question. Order-level matching proves whether sales made it into the books. Fee and refund matching explains why net cash is lower. Payout matching proves whether the money movement itself landed where it should.

Pull three files and one date scope

Before you compare anything, decide what period you are reconciling and which files belong to that period. Most bad reconciliations start because the export scope is wider than the ledger scope, or because a payout date is being compared to a sale date.

For a clean pass, work from these files:

FileMinimum columns to keepWhat it is for
eBay transaction report CSVOrder ID, Item ID, Transaction ID or Reference ID, transaction date, payout date, gross amount, net amount, fee-related fields, payout IDSource detail for sales, deductions, and payout grouping
Ledger or cashbook exportDate, reference, account, description, debit/credit or signed amountWhat was actually posted in the books
Bank statement export if cash proof mattersDate, description, amount, bank referenceConfirms the payout hit cash

Choose one scope and stay inside it:

  1. One payout if the problem is a deposit that will not tie out.
  2. One week if the ledger is posted in weekly batches.
  3. One statement month if you are closing the month and the ledger follows the same calendar.

Do not mix those scopes in the same worksheet. eBay transaction times and payout dates can differ from your own records because of payout timing and timezone handling. If the payout side is the part that keeps failing, the same deposit-first logic used to match a Stripe payout CSV to your bank statement applies here as well: prove the cash movement first, then explain what sits inside it.

Pick the match key before you compare amounts

Most reconciliation errors are not amount errors. They are key errors. The wrong reference is being used, so correct rows look unmatched.

Use the field that matches how your ledger was posted:

Match keyUse it whenDo not use it for
Order IDThe ledger records one sales entry per customer orderProving the payout amount
Transaction ID or Reference IDThe ledger stores payment-event references or refund referencesGrouping an entire payout
Payout IDYou need to tie a batch of rows to one payout or bank movementMatching sales revenue
Item IDYou are drilling into multi-item ordersMain matching across the whole file

This is the point where many spreadsheets go sideways. Someone tries to match gross sales to a payout ID, or tries to prove a net deposit with an order ID. Those keys live at different levels of the process.

If your ledger does not store any eBay reference cleanly, build a temporary mapping table before you touch the totals. Match the ledger reference you do have to one stable eBay field, then run the reconciliation from there. Without that step, every later filter and formula is working on the wrong assumption.

Work in three layers, not one

The clean way to handle eBay is to run three smaller reconciliations instead of one giant one.

1. Sales layer

Compare gross sales in the eBay file to the sales-side entries in the ledger. At this stage, ignore fees, shipping label deductions, and net payout values. The question here is narrow: were the sales recorded at the right gross amount?

2. Deductions layer

Now isolate everything that reduces what you eventually receive: final value fees, promoted listing charges, shipping label charges, refunds, claims, disputes, adjustments, and any other debits taken before payout. Compare those to the correct expense, refund, or clearing accounts in the ledger.

3. Payout layer

Only after the first two layers make sense should you compare net payout values against the bank or the clearing account. The payout is not a sales total. It is the result of the sales layer minus the deductions layer plus or minus any adjustments.

Here is a stripped-down example:

ActivityAmount
Gross sales in eBay export2,000.00
Final value and other fees-180.00
Refunds and claims-250.00
Shipping label charges-45.00
Net payout1,525.00

If your ledger shows sales of 2,000.00 and bank cash of 1,525.00, that does not mean 475.00 is unexplained. It means you now need to prove whether the 180.00, 250.00, and 45.00 were posted to the right accounts. Once those deductions are accounted for, the payout is explained.

This is the part most ranking pages gloss over. They tell you the reports exist. They do not tell you that gross sales, deductions, and payouts should not be forced into one match step.

The mismatch patterns that actually matter

Once the file is split into the right layers, the remaining exceptions are usually one of a handful of patterns.

SymptomWhat it usually meansWhat to check next
Same amount, different datePayout timing or timezone shiftCompare transaction date to payout date, not sale date to bank date
More eBay rows than ledger rowsMulti-item orders or batch posting in the ledgerGroup eBay rows by order or payout before comparing
Sales match but cash is lowerFees, refunds, labels, or adjustments missing from the ledgerFilter non-sale transaction types and trace each category
Cash matches but revenue does notSales were posted net instead of gross, or duplicatedCheck whether the ledger booked deposits directly to revenue
Small recurring difference every periodSubscription fees, ad charges, or repeated adjustmentsScan non-order charges outside the main sales lines
One large unmatched payoutWrong scope or mixed payout batchRebuild around a single payout ID and its linked rows

Date mismatches deserve special attention. eBay activity can be recorded on one date while the payout lands later. If you compare sale date to bank date, every legitimate delay looks like an error. The same thing happens when your ledger is posted in local time and the export reflects a different transaction timestamp. That is not a data-cleaning problem. It is a comparison-level problem.

The other common mistake is mixing gross and net logic. If the ledger posts the bank deposit straight into revenue, the sales number will look lower than eBay gross sales and the fee expense will look missing. The reconciliation is doing its job when it reveals that structural problem.

When the payout side turns into pure batch comparison work, the mechanics are closer to compare two bank statement CSV files without formulas than to debugging one lookup formula. You are proving which grouped movement belongs to which grouped movement, then drilling into the exceptions that remain.

What a finished reconciliation should prove

A completed reconciliation is not a spreadsheet with a lot of green highlights. It is a short, defensible explanation of where every meaningful difference went.

Your finished output should answer these five points:

Output sectionWhat it proves
Matched salesGross sales in eBay are represented in the ledger
Fees and deductions summaryReductions from gross to net were posted to the correct accounts
Refunds, claims, and adjustmentsNon-sales movements were not mistaken for missing sales
Payout summaryNet amount ties to cash or to the clearing account
Exceptions listEvery unresolved difference is named, not hidden

That is the standard to aim for. Not identical row counts. Not one grand total forced to match too early. A usable result says:

  1. Which sales matched.
  2. Which deductions explain the gap between gross and net.
  3. Which payout or bank movement those rows belong to.
  4. Which items are still missing, duplicated, or posted to the wrong account.

If you can say those four things clearly, the reconciliation is done. If you cannot, the workbook may be busy, but the reconciliation is not finished.

When the spreadsheet work becomes the problem

Manual eBay reconciliation is still workable when volumes are small and the ledger is posted cleanly. It becomes expensive when every close follows the same pattern: export the CSV, strip it into sections, pick a match key, rebuild the same formulas, filter the same exceptions, and rewrite the same explanation.

At that point, the hard part is no longer accounting judgment. It is file comparison and exception reporting.