Browse help docs

Money

Import a cost file

Upload a spreadsheet of what you paid and match it against the cards you already have.

Updated
2026-10-05
Read
3 min
Status
Current

What your file needs

One column is enough: something that identifies the card. Cost is optional. A row without one still lands as its card and shows under Without cost until you add what you paid. Everything else only makes the matching better.

Excel workbooks are read directly, every sheet listed, and each sheet is imported on its own with its own receipt and undo. CSV works too. Dates stored as Excel serial numbers are read correctly.

  • Cert number, or your own eBay item number, can identify a card exactly. If they point at different cards, or the same identifier belongs to several cards, the row is held for you to choose.
  • The item number you BOUGHT is not the same thing. Map it as "Purchase item # (what you bought)" and it is kept on the purchase, never matched to a card.
  • On a sheet with a sold price, a bare Item number column maps to your own eBay listing. On a purchase-only sheet, it maps to the item you bought. Explicitly named item-number columns keep their meaning.
  • Map tax, shipping and purchase fees when they are separate from Cost, and Discount for savings to subtract. Each purchase adds the charges and subtracts the discounts from its rows. If Cost is already a total, those columns stay unmapped so they are counted once, including when you re-import a CardZen purchase export.
  • Player, year, set and card number together are a strong match, but they are a resemblance, so you confirm them.
  • A season written "2024-25" is read as 2024, and a name written "Morant, Ja" is read as Ja Morant.
  • Set names are translated, so "Young Guns" finds Upper Deck Young Guns.
  • Purchase title, purchase order number and purchased item number describe the order, not the card. Map them and they are recorded on the purchase.
  • If two of your columns point at the same thing, CardZen reads the leftmost one and tells you which it ignored.
  • Date sold and sold price on a row record a sale of that card: the card is marked sold and its profit uses the cost on the same row. Map selling fees and shipping charged if your file has them; CardZen never estimates them. A Profit column is checked, not used.

How the import runs

  1. 1Open Import a cost file from Loose ends, Cards, or Purchases. All three go to the same place.
  2. 2Choose your spreadsheet. A workbook lists its sheets; pick one. CardZen guesses which column is which from the headers and shows you its guesses to correct. Values that apply to a whole sheet, like the grader, where it was sold, or selling fees (enter 0 if there were none), go in the sheet defaults box.
  3. 3Run the match. A cert number or your own eBay item number links automatically when it identifies one card without a conflict.
  4. 4Accept the resemblance groups. Each group says the rule that produced it, and you can uncheck any row before accepting the block.
  5. 5Settle the ambiguous rows one at a time. These include identifiers that point at different cards, a match to several cards, or two rows that want the same card.
  6. 6Settle the rows that match nothing in the table. It shows each row exactly as it will land (name, year, set, number, parallel, grade, cert, cost, sale); fix any cell in place and re-check matches. Keep all of them in one click, tick some and keep or leave out the selection, or work a row by hand: Keep, Choose a card…, or Leave out.
  7. 7Use "Choose a card…" on any row you can place yourself. It searches your own cards and overrules the match.
  8. 8Record the purchases. Nothing is written until this step. Tick Skip the purchases to bring in just the cards (and any sales on the rows) and record nothing you paid.
  9. 9Read the receipt. It says where everything went: new cards under Cards → Awaiting photos (not in a batch, no scan used), purchases under Purchases, sales under Sales. Then take the next sheet or another file. A sale that is not on the sheet is attached later from Sales → No card attached.

How many purchases you get

Your data decides. If your file has an order number, rows sharing one become a single purchase. Otherwise CardZen creates one purchase for each combination of date, seller and source in your file, so a sheet with a date on every row becomes the separate buys you actually made, and a sheet where every row shares one date becomes the one lot you actually bought. There is no import mode to choose.

One checkbox on the last step collapses them into a single purchase if you disagree. Rows with no date of their own use the date shown, which starts at the first of the current month.

Each card keeps its row's price

When a purchase has no separate tax, shipping, purchase fees or discount, each card keeps the Cost on its own row, even when several rows become one purchase. A row with a Quantity above 1 shares its Cost across the cards it stands for. Your prices stay when the purchase changes later, until you choose Reset to equal split. Purchases with separate charges or discounts still split their whole cost evenly for now.

Rows that match nothing

A row describing a card CardZen has never seen is reported, never dropped. Keep it and the money is recorded as a purchase, and the card is created as a placeholder waiting for a photo. It stays out of your Cards list until you photograph it, cannot be listed without a real photo, and uses no scan credits.

A row with no cost is kept the same way: its card is created and no purchase is written, so it shows under Without cost. If nothing you mapped identifies a card, CardZen warns you before matching, because every row would land here.

You can also leave a row out. Nothing forces you to resolve every row, and the ones you skip stay available for a later file.

What CardZen will not do

  • It never applies a match on a confidence score. Only exact identifiers link on their own.
  • It never treats the item number you bought from as one of your cards.
  • It never links one card to two rows. If two rows want the same card, both are held back for you to settle, because a second cost would double that card's cost basis.
  • It never gives a cost to a card that already has one, even when you pick that card by hand.
  • No AI reads your file. Column matching is a dictionary of header names and card matching is direct field comparison.

Related guides