An independent games shop should track preorders, singles and trade-ins as three separate ledgers: preorders as customer-linked allocations with a deposit log, singles as one record per card with a grade and a scheduled price review, and trade-ins as a buy list with a margin rule and a record of what you paid. AI drafts listings and replies, never prices.
The three fail in different ways, which is why one "stock" column cannot cover them. A preorder is someone else's money waiting for a product you may not yet own. A single is a stock item whose value moves every week. A trade-in is stock you buy from a person standing at your counter, with a price you agreed in two minutes. Each one therefore gets its own record and its own job for AI. Here, "singles" means individual trading cards sold from binders or boxes; the same method fits used board games and video games with small changes.
Three kinds of stock that fail in three different ways
| Stock type | Whose risk it is | How it goes wrong | The record it needs |
|---|---|---|---|
| Preorders | The customer's money, your promise | Allocation smaller than demand; release date slips; deposits drift out of step with the till | A ledger per customer and item, with status and a running deposit total |
| Singles | Yours, and the value moves | Stale prices; foil and non-foil merged; the same card sold online and in store | One record per card, condition and finish, with a reference price and a review date |
| Trade-ins | Yours from the moment you pay | Overpaying; buying fakes or stolen goods; no record of what you paid | A dated offer sheet with grades, prices, payout method and seller details where required |
The automation side of events, preorder reminders and sign-ups is covered in AI-powered automation tools for a games shop, and tournaments and listing tools in game store software for trade-ins and tournaments. Underneath all of that sit the inventory records, and they have to be right first.
The preorder ledger: deposits, allocations and slipping release dates
A preorder record needs eight fields: date, customer ID, item, deposit taken and how, expected release date, status, balance due and last contact. Status is the field that matters, and it moves in one direction: requested, allocated, arrived, collected, with cancelled and refunded as exits. Use a customer ID in the ledger rather than a name, so a printed copy on the counter does not expose anyone.
Here is how the numbers behave. A shop takes 30 preorders for a boxed set that retails at $60, with a $15 deposit on each. That is $450 of customer money held. The distributor allocates only 22 copies. Allocation goes by deposit date, so the first 22 customers are marked allocated and the last 8 stay at requested. The 22 allocated customers owe a $45 balance each on collection, $990 in all. The 8 waiting customers hold $120 of deposits against stock that does not exist yet. An illustrative extract of the ledger:
| Deposit date | Customer | Item | Deposit | Status | Expected | Balance | Last contact |
|---|---|---|---|---|---|---|---|
| Week 1, Mon | C-1041 | Boxed set A | $15 card | Allocated | Release day | $45 | Week 3, Tue |
| Week 1, Wed | C-1047 | Boxed set A | $15 cash | Allocated | Release day | $45 | Week 3, Tue |
| Week 2, Fri | C-1062 | Boxed set A | $15 card | Allocated | Release day | $45 | Week 3, Tue |
| Week 3, Mon | C-1079 | Boxed set A | $15 card | Requested | Not allocated | $45 | Week 3, Tue |
| Week 3, Tue | C-1083 | Boxed set A | $15 cash | Requested | Not allocated | $45 | Week 3, Tue |
Then two things happen. The release moves back two weeks, so all 22 allocated customers need a message. And three of the 8 waiting customers ask for their deposits back. Refund them promptly and cleanly: the liability falls from $450 to $405, five customers remain waiting, and the ledger shows exactly who they are. Without a ledger, the shop spends an afternoon reconstructing this from receipts.
The message to the allocated group is a good AI job, provided the facts come from you. A draft that works:
Hello [first name], the distributor has moved the release of [product] to [new expected date]. Your preorder is still reserved and your $15 deposit is held against it. You can keep it, swap to another product, or have the deposit back by replying to this message. We will confirm as soon as the stock arrives. [Your name], [shop]
Two rules keep that message honest. It says "expected", because the shop does not control the date. And it gives the customer the refund option in plain words. For the policy wording behind it, see a pre-order policy checklist with delivery rules.
Singles: one record per card, condition and finish
Most singles problems start in the SKU. If a foil copy and a regular copy share one record, or Near Mint and Played sit together, the system cannot tell a $40 sale from a $4 one. Build the identifier from the parts that change the price: game, set, card number, finish, language and condition. A made-up example, with placeholders: G1-S3-045-F-EN-NM means game 1, set 3, card 45, foil, English, Near Mint. Add a location code (binder or box and page) so staff can find it, and a "held" location for anything reserved.
Use the usual five grade names, Near Mint down to Damaged, but write your own definition of each in two lines and photograph one example per grade for the counter. Your definitions matter more than the names, because customers and staff will argue about the edges.
For the price itself, start from a reference price taken from a price guide, never from memory and never from an AI chat. TCGplayer's help centre, for example, says its Market Price is compiled from recent sales completed on its own site, which is a sensible anchor for popular cards; for thinly traded ones it can rest on only a few sales, so look twice. Then apply your own rule. An illustrative rule for a card with a Near Mint reference price of $4.00:
| Grade | Multiplier | Working | Shelf price (nearest 25 cents) |
|---|---|---|---|
| Near Mint | 100% | $4.00 × 1.00 = $4.00 | $4.00 |
| Lightly Played | 85% | $4.00 × 0.85 = $3.40 | $3.50 |
| Moderately Played | 70% | $4.00 × 0.70 = $2.80 | $2.75 |
| Heavily Played | 50% | $4.00 × 0.50 = $2.00 | $2.00 |
The multipliers are examples, not market facts; set your own from what actually sells. Two guard rails help: a floor, so nothing is priced below 25 cents and everything under that goes into a bulk box at a fixed rate, and a review cadence by value. In a spreadsheet the whole rule is one formula, where column B holds the reference price, column C the grade, and a small Grades sheet lists each grade with its multiplier:
=MAX(0.25, MROUND(B2 * VLOOKUP(C2, Grades!A:B, 2, FALSE), 0.25))
A second formula flags a price that has moved too far since the last review, where D2 is the new reference price and E2 the old one:
=IF(ABS(D2 - E2) / E2 > 0.2, "CHECK", "")
If you would rather not write formulas by hand, an assistant can build them from a plain description; Google Sheets AI prompts shows how to ask. Check the result on three rows you can work out yourself before trusting it on three thousand.
Trade-ins: the offer sum, the buy list and the paperwork
A trade-in offer is a percentage of your own selling price, split into a cash figure and a higher store-credit figure. The right percentages come from your margin and how fast the item sells, so treat these as placeholders: the filled-in offer sheet below uses 50% for cash and 65% for credit.
| Item | Grade | Your selling price | Cash offer (50%) | Credit offer (65%) |
|---|---|---|---|---|
| Rare card A | Near Mint | $12.00 | $6.00 | $7.80 |
| Rare card B | Lightly Played | $8.50 | $4.25 | $5.53 |
| Video game, disc and case complete | Tested, no scratches | $18.00 | $9.00 | $11.70 |
| Controller, tested | Good | $22.00 | $11.00 | $14.30 |
| Total | $60.50 | $30.25 | $39.33 |
Offering credit is cheaper for the shop than it looks. Suppose your average gross margin on shelf stock is 30%. The $39.33 of credit, spent on stock priced at that value, costs you about 70% of it, or $27.53 at cost, whereas the cash offer costs a straight $30.25. The customer gets 30% more value in credit than in cash ($39.33 against $30.25), and the shop still pays less. That is why credit offers sit higher than cash. Two cautions: credit that is never spent is a liability, so keep a credit ledger, and a high credit rate on slow-moving stock only moves your problem into a binder.
Next, the buy list. Decide in advance what you want and how many you will hold: for example, no more than four copies of any single card, nothing under $1 except in bulk, and no cards that have not sold in 90 days. A buy list is also how you say no without a quarrel, because the sheet says no, not you. An assistant can build the first draft of one if you give it a CSV of the last 90 days' sales and your current stock; it can list the cards that sold three or more times and have fewer than two in stock. A spreadsheet filter will find the same rows, so ask the assistant for the readable summary and use the filter to confirm it.
Record each trade-in on a dated sheet: items, grades, prices, payout method, staff initials, and seller details where the rules of your place require them. Some places require second-hand dealers to keep seller records and hold goods for a set period, so ask a trade body or adviser what applies to you. Keep photos of anything over a value you set. For fakes, teach staff a short physical check and keep a genuine reference copy of the cards most often copied; do not use AI image checks as a substitute, because they will give a confident verdict either way. For a sibling problem in another trade, music store inventory with used gear and trade-ins deals with serial numbers and provenance.
Where each ledger lives: a spreadsheet, a till system or a platform
You do not need to buy anything to start. A spreadsheet with three tabs (preorders, singles, trade-ins) and a shared form for staff to log entries will hold a small shop. Past a few hundred active singles, or once you sell online, a till system with barcode scanning earns its cost. Prices below are list prices in USD as checked on 27 and 28 October 2026, so confirm them on the vendor's page.
| Option | List price | Good for | Check before you buy |
|---|---|---|---|
| Spreadsheet and shared form | No licence cost | Small shops, first three months | Who updates it daily; no barcode scanning; online sync is manual |
| Square for Retail | Free; Plus $49 a month per location; Premium $149 | Simple till and inventory | Whether it can hold reserved stock and variants for grade and finish |
| Shopify | Basic $39 a month ($29 billed yearly); POS Pro $89 | Online and in-store stock in one place | How a pre-order app interacts with stock counts |
| Lightspeed Retail | $89, $149 or $289 a month on annual billing | Larger, multi-category shops | Confirm the current plan prices on its pricing page or in a demo |
| BinderPOS (now on TCGplayer's seller site) | $100 or $150 a month plus a 2% or 2.5% commission when checked; new-seller onboarding was paused | Card-focused shops selling on TCGplayer | Whether it is taking new sellers at all |
Whichever you pick, run the same three tests in a trial. Take a preorder deposit and see where the held stock goes. Add a foil and a non-foil of the same card and see whether they stay separate. Take a trade-in and see whether the system records what you paid. If a system cannot do these, a spreadsheet beside it is not a failure; it is a plan. For keeping online and in-store counts aligned, syncing stock across Shopify, Amazon and eBay explains the options.
What AI does in this shop: listings, replies and a weekly report
The assistant earns its place in four jobs, each with a fixed input so it cannot invent anything.
Listings. For online sales, eBay allows titles up to 80 characters and up to 24 photos, so give the assistant the structured fields and the limit:
Write an eBay listing title (maximum 80 characters) and a three-sentence
description for this single card. Use only the fields below.
Do not use "mint", "rare" or "valuable" unless the field says so. No price claims.
Game: [game] | Set: [set] | Number: [045] | Card: [name] | Finish: foil |
Language: English | Condition: Near Mint | Notes: [e.g. light edge wear]
The output follows the pattern "[Card name] | [Set] #045 | Foil | NM | English", which fits in under 80 characters for most names, plus a short description that repeats only the fields you supplied. Count the characters before you paste it in. The usual slip is a title that reads well but runs over the limit, or a description that says "excellent condition" when your field says "light edge wear".
Replies. Give it the status and policy from the ledger and ask for a short answer: "customer asks if the preorder is still on for Friday; status allocated; expected date moved to [date]; deposit $15 held; balance $45; refund of deposit available on request before collection". Never let it promise a date the distributor has not confirmed.
Trade-in messages. It can turn the offer sheet into a friendly summary with both options and an expiry date, and a polite decline that names the buy-list rule rather than blaming the customer.
A weekly report. Paste the preorder ledger as a table and ask it to list preorders due within 14 days with an unpaid balance, deposits older than 60 days with no release date, and the total of deposits held. A spreadsheet can do the same, but the written summary is quicker to act on at the counter. An illustrative answer for the shop above, a week before the new release date: "Due within 14 days with a balance: 22 preorders for Boxed set A, $990 to collect. Deposits older than 60 days with no release date: 3, all for [product B], $45 held. Total deposits held: $450." Before acting on it, check the total against the ledger's own sum. Here $405 for Boxed set A plus $45 for product B is $450, so it agrees; a total that does not match usually means the assistant skipped a refund row.
What it must not do is price a card. A chatbot without live data will guess, and one that searches the web can still pick up a stale or mismatched listing; a confident answer from an old market is worse than none. Prices come from your price guide and your rule, always.
A 45-minute weekly routine that keeps all three honest
- 10 minutes: deposits. Add the week's deposits and refunds to the ledger, then compare the running total with the till or bank record. They should match to the cent.
- 10 minutes: allocations. Enter the distributor's confirmations, update each customer's status, and send the messages that follow from any change.
- 10 minutes: prices. Refresh reference prices for the top tier, check any flagged by the 20% rule, and relabel what changed.
- 10 minutes: buy list and caps. Update the buy list from the week's sales so the counter knows what to take and what to decline.
- 5 minutes: messages. Send the replies the assistant drafted, after you have read each one.
The held copy, the stale price, the chatbot and the merged variant
- The held copy that was sold. A walk-in buys the last boxed set from the shelf because the preorder copy was never moved to "held". A preorder customer arrives to find nothing. Moving stock into a held location when the deposit is taken prevents it.
- The price that lagged. A card jumps in value, and the shop sells three copies at last month's price. A weekly check on high-value cards and the 20% flag catch it in days, not weeks.
- The confident chatbot. A clerk asks an assistant what a card is worth, gets a figure from an old market, and offers $20 for a card the shop sells at $4. The offer sheet exists to stop this: prices come from the guide, the rule and the sheet.
- The merged variant. Foil and regular copies share one SKU, and an online customer is sent the cheaper one. Separate records, separate shelf locations.
Three audits that show whether the records can be trusted
Once a month, run three quick checks and write down the results. A deposit audit compares the ledger's deposit total with the money recorded; any gap is investigated the same day. A singles audit picks 20 cards at random from the binders and checks each against its record for grade, finish and location; zero mismatches is the target, and any mismatch gets traced to a person and a step. A trade-in audit takes ten recent offers and checks that each has the grade, price paid, payout method and any required seller details. Count the mismatches rather than judging by feel, and when the same step causes a mismatch two months running, change the step rather than retraining the person.
Questions games shop owners ask about stock records
Should preorder deposits be counted as sales when I take them?
Treat a deposit as customer money you hold, not as takings, until the product is handed over or the deposit is refunded. Keep a running total in the ledger and reconcile it to the till or bank weekly. Ask your accountant how deposits should appear in your accounts, because the treatment depends on your setup.
How often should I reprice singles?
Set the frequency by value, not by habit. Cards above a price you choose, say $20, deserve a weekly look; mid-priced cards a monthly one; and cheap cards should follow a fixed bulk rule so nobody spends a minute on a 30-cent card. Flag any reference price that moves more than 20% between reviews.
What if a preorder customer never collects?
Put a collection window in your preorder terms before you take the first deposit, for example 14 days after you announce that stock has arrived, and say what happens next: a reminder, a final message, then the copy goes back on sale. Whether you may keep the deposit depends on your terms and consumer law where you trade, so check with an adviser, and log every message in the ledger.
Do I have to record who I buy used items from?
Some places require second-hand dealers to keep records of sellers and items, sometimes with an ID check and a hold period before resale. Rules vary, so ask a trade body or adviser in your own place. Even where it is optional, a record of seller, date, items and price paid protects you if goods turn out to be stolen.
Further reads
- Hardware Store Inventory Management: SKU Clean-Up With AI — Cleaning up a messy SKU list before you add variants.
- How to Run a Stocktake Faster With AI and a Phone Scanner — A faster stocktake using a phone scanner.
- Phone Repair Shop Marketing: Local Search and Trade-In Offers With AI — Trade-in offers marketed by another used-goods shop.
- Music Store POS System: Serial Numbers, Rentals, Repairs and AI — A checklist for choosing a music shop POS: serial-tracked stock, rentals, repair tickets, trade-ins, a test script and where AI really helps.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: Lightspeed, Square, Shopify and BinderPOS pricing pages (checked October 2026); TCGplayer help centre on how Market Price is compiled; eBay seller rules on title length and photos.