Shop portal · beta
Photograph a table of cards. Get names and real sold prices back. Keep them in one shared inventory your whole shop can see, run breaks against them, and record what everything actually sold for.
Six tabs. Everything writes to one shared shop account, so what one person adds, everyone sees.
One photo of several cards. Finds each one, identifies it, and prices it from completed sales.
Your shelf. Search it, filter it, sort it, record where each card physically is, and edit prices in place.
Spots, customers, spot prices. Assign cards as you pull them and verify each spot with a permanent record.
Realized profit from actual sales, inventory value, break profitability, and a margin guide that includes fees.
Printable price labels for the cards in your inventory.
Invite your team by email. Same shop, same cards, any device they sign in on.
Seven steps. Order matters — backs have to be captured before you scan, not after.
Three to ten at a time, flat, with a gap between each. No overlapping.
Why: the app finds a card by seeing all four edges. Cards touching each other get cropped together.Hold the phone high enough that there's clear table all the way around the group. Even light, no direct glare.
Why: further away reads better than closer, which is the opposite of what feels right. A card pressed to the edge of the frame is the most common cause of a bad crop.The small count box, before pressing Detect.
Why: this is the only thing that catches a card being missed. Leave it empty and finding four of five looks exactly like success.Check the count matches. If it's short you'll get an amber warning — re-shoot before going further.
Why: everything after this runs on the crops. A bad crop can't be fixed later.Flip every card in place without sliding them around, then shoot again from the same distance.
Why: the year and card number are printed on the back. Skip this and cards come back with an unknown year and a price for the player rather than the card.Wait for every tile to finish. Each returns a name, a price, and sometimes a warning.
Why: prices come from completed sales over the last 30 days, not asking prices — unless the tile says otherwise.Read anything flagged first, then press once and wait for the green confirmation.
Why: nothing is saved before this. Pressing twice adds everything twice.Built for a shelf with thousands of cards on it, not a demo with ten.
Name, year, set, card number, team, parallel, serial, condition and location — all in one box. Type murakami 503 or box 3 and it narrows.
Available, Listed or Sold. Sort by newest, highest value, most potential profit, or name.
A Where column for the box, case or binder. Write whatever your shop calls it — then search that name to pull the whole box.
A Cond column. NM, EX, 1–10, or "creased corner" — whatever your shop already uses.
Team, condition, location, cost and asking price are all editable straight in the row, and profit updates with them.
Tick rows, or select every card matching your search, then set location, condition or status on all of them at once.
Each row has a Remove button. Recorded sales and verified break proof are kept.
Everything, including condition, location and the date each card was added. Your data leaves whenever you want it to.
Set your real numbers once in Business Profile and every screen below uses them.
| Field | Typical | What it changes |
|---|---|---|
| Target margin | 20% | The margin you want to keep |
| Marketplace fee | 13% | Comes off every sale |
| Shipping cost | $1.00 | What it costs to post one card |
The Margin & Discount Guide then shows four things per card. Margin after fees is what you really keep. Don't go below is the lowest sticker that still hits your target. Break-even is where you stop making anything. Safe discount is how far you can come down at a show.
Easier on a computer than a phone. Same login, same shop, same inventory.
What you paid. Scanned cards come in at zero.
Why: profit is worked out from cost. Leave it at zero and every sale looks like pure profit.Enter the real sale price and the fee you were charged.
Why: gross and net profit are calculated by the database from what you entered, so the two can't disagree.Realized Profit counts only cards sold through this form. Everything else there is an estimate from asking prices.
Why: it's the difference between money you made and money you might make.Break Manager holds the spots. The Dashboard tells you whether the break made money.
Name it, choose how many spots, pick team or random.
Customer, team, and what that spot sold for.
Why: spot prices are where break revenue comes from. Leave them empty and the break reads as zero no matter what you took.Wax cost, shipping, platform fee — seeded from your Business Profile.
Why: profit is revenue minus those three. Without them you're looking at revenue, not profit.Auto-assign matches inventory to spots by team. Anything without a team, place by hand with the dropdown on the spot.
Why: the scanner doesn't always return a team. You can type one into the card's Team column, or just assign manually.Do this once the customer's cards are confirmed. It records who verified it and when.
Why: verifying takes a permanent copy of each card — name and image — into the break itself. It stays intact even if that card is later edited or removed from inventory.One shop, many people. Or one person, many shops.
+ Invite staff, by email. They sign in on their own account and see the same inventory.
Your inventory, sales and breaks are visible only to your shop's staff. Enforced by the database, not just the screen.
If you're staff at more than one, a picker appears next to your shop name. Your last choice is remembered.
A picker at the top of Break Manager lists every break you have run, by name and date. Older ones can still be edited and verified.
Phone for photographing cards, desktop for pricing and breaks. Same shop either way.
Every tile says where its number came from. That's the difference between a price you can put on a sticker and one you should check.
A median of what this card actually sold for. This is the number to trust.
No completed sales found, so this is what sellers are asking. Asking prices run high — a ceiling, not a value.
Sold data exists but the sales don't agree. Usually parallels mixed in. Worth a look.
Something didn't add up — the listings disagree with the year on the card, or the set couldn't be confirmed.
It grabbed a piece of a card rather than the card. Re-detect that one.
Both sides were used. These reads are the most reliable.
Each of these has a cause worth knowing rather than a button to press.
Almost always spacing or glare. Spread the cards further apart, angle shiny cards away from the light, and shoot from further back.
Shiny and refractor cards are the hardest — a bright reflection can hide an edge entirely. If one card keeps getting missed, move it and re-shoot.
You skipped backs, or the back photo didn't come out. The year and number are printed on the back and can't reliably be read from the front.
The price you get is then for that player generally, not that card — which can be off by a lot. Re-scan with backs.
The card was identified wrongly and the search matched something else — a sealed box or a lot. You'll usually see it flagged.
Don't add it. Re-scan that card in a group of three or four with the back captured.
Cheap cards often sell at auction for almost nothing while fixed-price copies go for several times more. If the card is flagged as limited or thin, there weren't enough clean sales to price from.
Check the sold comps link on the tile and judge it yourself.
It happens. The app checks itself: if the listings it priced from all disagree with the year it read, it re-runs the search with the year the listings agree on and says so.
The card name still shows what it read. Fix it by re-scanning with the back captured, which is where the year is printed.
Add all to inventory ran twice. Tick the duplicates and use bulk Remove — they'll have the same added date.
Press once and wait for the green confirmation rather than pressing again.
They need to be invited and signed in on their own account. A blank Inventory tab usually means signed out, not missing data.
If they were added while the tab was open, reload it.
Worth knowing before they surprise you. This is a beta, and this list is honest rather than short.
The same card can come back with a different card number or year on different scans, particularly without a back photo. Prices follow the identification, so a wrong read means a wrong price.
Capture backs, shoot from a distance, and check anything flagged. If a price looks wrong for a card you know, trust yourself over the app.
The break picker lists every break by name and date. If you have run two on the same day and given them the same name, there is nothing on screen to tell them apart.
Name them something you will recognise — the product and the date, or the customer group — rather than leaving them Untitled.
Twelve of the same common is twelve rows. Fine for singles and hits, tedious for bulk.
Cards scanned on a phone can't be assigned to break spots on a desktop until they've been added to inventory. Only saved inventory is shared; unsaved scan results are not.
They come from completed eBay sales over the last 30 days. Thin markets, parallels and condition all move real value in ways a median can't see.