📷 1. Scanning Barcodes
↑ top
The Scan tab is the primary way to add items to inventory. You can use your device camera, a USB/Bluetooth barcode scanner, or type a barcode manually. When a barcode is recognised, product name, MSRP, and market price are fetched automatically from the cloud database.
| Control | What it does |
| 📷 Open Camera / Stop Camera | Toggles the live camera barcode scanner. Works on phone and desktop. Point the camera at any UPC/EAN barcode and hold steady — scan triggers automatically. Uses the rear-facing camera on mobile. |
| Barcode field | Type or paste a barcode manually and press Enter to trigger a lookup. Also receives input from a USB or Bluetooth barcode scanner connected to your device — just focus the field and scan. |
| Item Name | Auto-filled from the cloud database if the barcode is found. If not found, type the product name. Once entered for a barcode, the name is remembered permanently for that barcode. |
| Buy Cost (WS) | Your wholesale / buy price per unit. Used to calculate landed cost, net margin, and suggested sell price. Can be set via the Buy Cost Prompt when scanning. Rescanning the same barcode at a new price updates the weighted-average cost across all units already in stock. |
| Retail / Sell Price | Optional. The price you plan to sell at. Used in the net profit preview bar beneath the scan form. |
| Category | Dropdown populated from your category list (Settings → Categories). Controls which wholesale % is used in the Buy Cost Prompt wholesale calculation. |
| Qty | Number of units being added this scan. Defaults to 1. If the item already exists in inventory, qty is added and the weighted-average cost is recalculated. |
| Add / ✓ Add Item button | Saves the item to inventory. Keyboard shortcut: Enter in any field triggers the lookup; a second Enter or pressing the button confirms. |
| Buy Price Mode | Dropdown to auto-fill the buy cost field: Wholesale (% of MSRP), Market, MSRP, Custom % of market, or leave blank for manual entry. The mode can be saved per-barcode (see Buy Cost Prompt). |
| 🔴 Remove Mode | Toggles scan-to-remove. In remove mode, scanning a barcode decrements qty by 1. If qty would reach 0 you are prompted to remove the item entirely. A red badge appears in the header when active. Disables buy cost prompt automatically. Returns to normal when toggled off. |
💡 USB Scanner tip: Click the barcode field once to focus it, then scan — the scanner keystroke stream is captured and the lookup fires on the Enter that most scanners append automatically.
💡 Net Profit bar: The coloured bar below the scan form updates live as you type, showing estimated margin at the current buy cost and sell price, after all your expense settings are applied.
💰 2. Buy Cost Prompt
↑ top
When the camera scans a barcode (or a barcode is entered manually with the prompt enabled), a modal appears letting you choose how to set the buy cost before adding the item. This keeps scanning fast while still capturing accurate cost data.
| Option | How the cost is calculated |
| Wholesale | MSRP × the wholesale % for this item's category (configured in Settings → Categories). E.g. if MSRP is $10 and category wholesale is 55%, cost is set to $5.50. |
| Market Price | Sets cost to the current market value from PriceCharting. Useful when buying at market rate. |
| MSRP | Sets cost to the manufacturer suggested retail price. Use when buying sealed product at full MSRP. |
| Custom % of Market | Enter a percentage (e.g. 80) and cost is set to market × that %. Useful for consistent deal-buying strategies. |
| Manual Entry | Type any dollar amount directly. No automatic calculation. |
| Skip | Adds the item with $0.00 buy cost. You can edit the cost later in the Inventory tab. |
Prompt controls
| Control | Description |
| Don't show for this barcode | Suppresses the prompt for this specific barcode on future scans and applies your last-used mode automatically. Saved to browser storage per barcode. Can be cleared in Settings. |
| Enable buy cost prompt (Settings toggle) | Master on/off for the entire prompt. When off, items are added immediately at $0 cost. Lives in Settings → Scanning. |
💡 The prompt is automatically re-enabled each time the app loads, even if Remove Mode turned it off last session — so you always start a new session with cost tracking active.
The Inventory tab shows your full stock list. Every column is sortable and most fields are editable inline. The table respects the price columns you've enabled in Settings.
Filter & search controls
| Control | Description |
| Search | Filters by item name or barcode. Case-insensitive, partial match. |
| Category filter | Dropdown — show all items, or only items in a specific category. |
| Sort | Sort by: Name A→Z / Z→A, Qty high→low / low→high, Buy Cost high→low / low→high, MSRP high, Market Price high, Suggested high, or Net % high for any price column. |
Inventory table columns
| Column | Description |
| ☐ (checkbox) | Select rows for bulk actions. Selecting a row prompts to also select all rows with the same barcode. Use Select All to check everything visible. |
| Barcode | UPC/EAN or custom barcode string. Editable inline. |
| Name | Product name. Editable inline. Changes also update the barcode database so future scans of the same UPC use the new name. |
| Category | Dropdown — select from your configured categories. Affects wholesale % used in the Buy Cost Prompt. |
| Qty | Units in stock. Editable inline. Clicking the field and typing a new value saves on blur. |
| Buy Cost | Weighted-average buy price per unit. Editable inline. |
| Landed Cost | Buy Cost + all Product Acquisition expenses (inbound shipping, taxes, tariffs, custom costs). Calculated from Settings — not editable directly. |
| MSRP / MSRP Net | Manufacturer suggested retail price from the database, and net profit at that price (MSRP − landed cost − selling expenses). Shown when enabled in Settings. |
| Market / Mkt Net | Current market value from PriceCharting, and net profit at market price. Shown when enabled in Settings. |
| Suggested / Sugg Net | Price calculated to hit your Target Net Profit % (Settings). Shown when enabled. Recalculated automatically when your target % or expense settings change. |
| @X% / Net | Custom % of market price column. Header shows the current percentage. Shown when enabled and a % is set in Settings. |
| ✎ (edit icon) | Opens the full inline editor for that row — lets you change name, barcode, category, qty, buy cost, and retail price in one place. |
Bulk actions (appear after selecting rows)
| Action | Description |
| Edit Price | Set buy cost and/or retail price for all selected rows at once. |
| Delete Selected | Permanently removes selected items from inventory. Prompts for confirmation. |
| Print Labels | Opens the Label Generator with the selected items pre-checked. |
💡 Item count shown above the table (e.g. "47 of 312") reflects the current filter. Export always exports the full unfiltered inventory.
The Reports tab provides a financial summary of your entire inventory — total value, margin by price column, and a per-item breakdown. Useful for understanding your overall position before a show or a buying run.
| Section | Description |
| Summary cards | Total SKUs, total units, total buy cost (inventory investment), and total landed cost across all items. |
| Price column summaries | For each enabled price column (MSRP, Market, Suggested, Custom %), shows: total revenue if everything sold, total net profit, and average margin %. Also shows the best- and worst-margin scenarios. |
| Per-item table | Same columns as Inventory. Sorted by the same sort controls. Use to find your highest-margin items or items underwater on cost. |
| Export (CSV) | Downloads a CSV of the report. Includes all enabled price columns and net profit columns. |
| Export (Excel) | Downloads a two-sheet Excel workbook: Sheet 1 is the summary, Sheet 2 is the full per-item inventory with all price columns. |
💡 Net profit in reports uses your full expense settings (landed cost + selling costs), so the numbers reflect what you'd actually pocket per item.
Sessions let you group a batch of scans into a named buying event — e.g. "Hobby Con June 2025" or "Alpha Investments buy". While a session is active, every item added to inventory is also logged to the session. Sessions are stored locally and can be exported as CSV.
| Control | Description |
| 💾 Save Session | Prompts for a session name and saves a snapshot of everything scanned since the last save. Items already in inventory from before the session are not included — only new additions during the session window. |
| Session list | Shows all saved sessions with name, date, item count, and total buy cost. Click a session to expand it and see the individual items. |
| Export (CSV) | Downloads the session as a CSV with barcode, name, qty, buy cost, and timestamp for each item. |
| Delete session | Removes the session record. Does not affect inventory — items remain in stock. |
💡 Start a session before a buying run, scan everything you buy, then save. The session gives you a clean record of that purchase separate from your existing inventory.
🏪 6. Vendor & Show Tracking
↑ top
The Vendors tab lets you log each show or selling event as a record with its own expense breakdown — table cost, mileage/gas, and any additional costs. The app calculates gas cost automatically from your vehicle settings.
Creating / editing a show
| Field | Description |
| Show Date | Date of the event. Used for sorting and display in the dashboard. |
| Show Name | Name or description of the event (e.g. "Hobby Con", "Local Game Store Buy"). Defaults to "Unnamed Show" if left blank. |
| Table Cost ($) | The fee paid for your vendor table or booth space. |
| Miles Driven | Round-trip distance. Copy from Google Maps directions. The app multiplies this by your vehicle's MPG and the current fuel price for your selected fuel type to estimate gas cost. |
| + Additional Expense rows | Add any number of labelled expenses (e.g. "Hotel", "Advertising", "Food"). Each row has a label text field and a dollar amount. Click + Add Expense Row to add more. These appear in the show's expense breakdown and in CSV exports. |
Show dashboard cards
| Display element | Description |
| Show header | Shows name, date, table cost, miles driven, and any additional expenses at a glance. |
| Expense total | Table cost + estimated gas + all additional expenses combined. |
| Net profit badge | If the Sales Tracker has been used for this show, displays net profit (revenue − COGS − selling expenses − show expenses). Red = loss, green = profit. |
| ✎ Edit | Re-opens the show form to change any field. Saves as "Update Show". |
| ✕ Delete | Permanently removes the show record including all sales and expense data. |
Vehicle settings (used for gas cost)
| Setting | Description |
| MPG | Your vehicle's fuel efficiency in miles per gallon. Formula: miles ÷ MPG × price per gallon = estimated gas cost. |
| Fuel Type | Regular (87), Mid-grade (89), Premium (91/93), or Diesel. The app uses a built-in regional price table keyed to your fuel type to estimate cost per gallon. |
💡 Get mileage from Google Maps: enter your home address and the venue, select "Directions", and copy the total miles shown. Enter the round-trip total (there and back).
📦 7. Sales Tracker
NEW ↑ top
Each show card has a 📦 Track Sales button that opens a live sales panel. Use it at the show to log every item sold. The panel calculates true net profit using your real landed cost and selling expense settings — not just the raw buy price.
Adding items to sales log
| Method | How to use it |
| Inventory picker + Add | Select an item from the dropdown (populated from your current inventory) and click + Add. If that item is already in the sales list, its qty is incremented by 1 instead of adding a duplicate. Sell price defaults to the item's retail or market price. |
| Barcode field + Enter | Type or paste a barcode and press Enter. If found in inventory, adds the item (or bumps qty). If not found in inventory but exists in the barcode database, adds it with the stored name and price. If completely unknown, adds with the barcode as the name. |
| 📷 Scan button | Opens the camera scanner inline within the sales panel. Point at any product barcode — lookup and add happen automatically. The camera closes after each successful scan. Same logic as the barcode field for inventory matching. |
| + Custom | Opens a prompt for item name, sell price, and buy cost. Use for items not in your inventory (e.g. trade-ins, store credit sold, one-off items). Buy cost entered here is used in profit calculation. |
Sales row controls
| Control | Description |
| Qty field | Editable inline. Changing qty recalculates revenue and profit totals immediately. |
| @ price field | The sell price per unit. Editable inline. Change this if you sold at a different price than the default (e.g. discounted at the show). Updates the summary totals live. |
| ✕ Remove row | Removes that item from the sales log. Does not affect inventory. |
Day-of Additional Expenses
Below the sales list is a section for expenses you incur on the day that weren't in the original show record — lunch, parking, supplies, etc.
| Field | Description |
| Label | Name of the expense (e.g. "Lunch", "Parking", "Bags"). |
| Amount ($) | Dollar value of the expense. |
| + Add | Saves the expense. It appears in the list above and is included in the P&L summary and CSV export. |
| ✕ (remove) | Deletes an individual day-of expense entry. |
P&L Summary
| Line item | How it's calculated |
| Revenue | Sum of (qty × sell price) for all items in the sales log. |
| Landed COGS | Sum of (qty × calcTotalProductCost(buy_price)) per item. This applies your full Product Acquisition Cost settings — buy price + inbound shipping + taxes + tariffs + custom acquisition costs. |
| Selling expenses | Sum of (qty × calcTotalSellingCost(sell_price)) per item. Applies your Selling Cost settings — outbound shipping + packaging + platform/payment fees. |
| Show expenses | Table cost + estimated gas + additional expenses from the show record. |
| Day-of expenses | Additional expenses entered in the Sales Tracker panel (only shown if > $0). |
| Net profit | Revenue − Landed COGS − Selling expenses − Show expenses − Day-of expenses. |
Action buttons
| Button | Description |
| ⬇ Export Show Report | Downloads a CSV with two sections: Expenses (table cost, gas, all additional expenses) and Sales (per-item name, qty, sell price, landed cost, selling expense, revenue, and COGS), plus a summary block at the bottom with net profit. |
| Remove sold from inventory | For each inventory-linked item in the sales log, decrements qty in your main inventory by the qty sold. Items with remaining stock stay in inventory; items that hit 0 are removed. Custom items (not linked to inventory) are skipped. Prompts for confirmation before running. |
⚠️ "Remove sold from inventory" is permanent. Run it once at the end of the show after confirming your sales log is complete.
🏷️ 8. Label Generator
↑ top
Generate printable price tags with barcodes or QR codes for any item in your inventory. Labels print directly from the browser — use a label printer, a standard printer, or save as PDF.
Label settings
| Setting | Options / description |
| Label Type | Barcode — Code 128 barcode with the product UPC beneath. QR Code — TCG IMS QR code encoding the item ID for instant lookup. Both — stacks QR and barcode on the same label. |
| Price to show | Per-item dropdown: Market, MSRP, Suggested, Custom % of market (enter your %), or None. Each item in the list can have a different price mode. |
| Copies per item | Number of identical labels to print for each selected item. Useful when tagging multiple copies of the same SKU. |
| Label size | 2×1″ (standard), 3×2″, 4×2″, 4×3″, Letter (8.5×11″ sheet — labels arranged in a grid), A4 sheet. Sheet sizes print multiple labels per page. |
Item selection
| Control | Description |
| Search field | Filter the item checklist by name or barcode. |
| Item checkboxes | Check items to include in the label batch. Custom items created in this session appear at the top. |
| Select All / Deselect All | Check or uncheck all currently visible (filtered) items at once. |
| Create Custom Barcode | Add a one-off item with a custom name, barcode, and price. The item is added to inventory and appears in the label checklist. Use for store credit, mystery packs, or any item not in the cloud database. |
Printing
| Action | Description |
| Live preview | The right panel shows a live preview of all selected labels at the chosen size and settings. Updates as you change options. |
| Print / Save PDF | Opens a new browser window with only the labels and triggers the print dialog. Select your label printer, or choose "Save as PDF" to create a file. The browser handles page sizing — the CSS page size matches your selected label. |
💡 QR codes printed by TCG IMS encode the item ID. Scanning them in the QR Lookup tab gives you instant access to that item's full record — faster than scanning a product barcode, and works even for custom items.
🔍 9. QR & Barcode Lookup
↑ top
The Lookup tool lets you scan any barcode or TCG IMS QR code and instantly see that item's full inventory record — without navigating to the Inventory tab. Ideal for quickly checking a price or margin at a show or while buying.
| Element | Description |
| Camera view | Live camera feed. Point at any barcode or QR code. Lookup triggers automatically on detection — no button press needed. |
| Result card | Slides in after a successful scan with: item name, category, qty in stock, buy cost, landed cost (with all acquisition expenses applied), MSRP, market price, and net margin at market. |
| Scan next | Dismisses the result card and restarts the camera for the next scan without closing the Lookup panel. |
| Close (✕) | Closes the Lookup overlay and stops the camera. |
💡 TCG IMS QR codes (from the Label Generator) look up by item ID — more reliable than barcode matching for items with identical UPCs across different conditions or sets.
📤 10. Import / Export
↑ top
Export your inventory at any time and re-import it cleanly. The export format matches the import format exactly, so the file can be edited in Excel and brought back in without issues.
Export
| Format | Description |
| CSV | Single flat file with all inventory rows. Opens in any spreadsheet app. Column picker lets you choose which columns to include before downloading. |
| Excel (XLSX) | Two-sheet workbook. Sheet 1: Summary (totals, margin by price column). Sheet 2: Full inventory with all enabled price and net columns. Column picker applies to both sheets. |
Column picker (export)
| Column | Included by default |
| Barcode, Name, Category, Qty, Buy Cost (WS) | ✓ Always included |
| Landed Cost, MSRP, Market Price, Suggested | Optional — check to include |
| Custom % column, Retail Price | Optional — check to include |
Import
| Detail | Description |
| Accepted formats | Excel (.xlsx, .xls) or CSV (.csv). Row 1 must be a header row. |
| Column name matching | Case-insensitive. Accepted aliases for each field are listed in the Import Format Guide below this section. |
| Merge behaviour | Import adds items — it does not wipe existing inventory. If a barcode already exists in inventory, the import row is skipped. Use the Settings → Import to replace-all if you want to start fresh from a file. |
| Unknown columns | Ignored. Extra columns in the file will not cause errors. |
💡 To bulk-update buy costs: export to CSV, edit the buy_cost column in Excel, save, and re-import. Tip: clear inventory first (Settings → Danger Zone) then import the edited file.
Settings persist across sessions (saved to your account via cloud sync, or to browser storage for guest users). All expense settings affect cost calculations app-wide in real time.
Application Settings
| Setting | Description |
| ☁️ Cloud UPC Database | Toggle on/off. When ON, scanning a barcode fetches product name, MSRP, and market price from the TCG IMS cloud database automatically. When OFF, you rely on a manually imported product list or enter names by hand. Turning it off also reveals an Import Product List button. |
| 💱 Currency | Sets the currency symbol shown throughout the app. Options: USD ($), EUR (€), GBP (£), CAD ($), AUD ($), JPY (¥). Does not convert values — only changes the display symbol. |
| 🎨 Theme | ☀️ Light, 🌙 Dark, or ✨ Fantasy TCG. Fantasy applies a special colour palette themed for TCG collectors. |
Price Column Display
| Toggle | Description |
| MSRP | Shows the MSRP and "MSRP Net" columns in Inventory and Reports. MSRP comes from the cloud database. |
| Market Price | Shows Market Price and "Mkt Net" columns. Market price is the current PriceCharting value from the database. |
| Suggested Sell Price | Shows the Suggested and "Sugg Net" columns. Suggested price is calculated to achieve your Target Net Profit % after all expenses. |
| Custom % of Market | Shows an extra price column at X% of market price. Enter the percentage in the adjacent number field (e.g. 110 = 10% above market). The column header updates live. |
Target Net Profit
| Setting | Description |
| Target Net Profit % | Enter a percentage (e.g. 30). The Suggested Sell Price column is then calculated so that after all your selling and acquisition costs, the net margin on each item equals this target. The scan form net profit bar also uses this target to colour-code margins. Set to 0 to disable the suggested column. |
Product Acquisition Cost
These costs are added to every item's buy price to compute its Landed Cost. Each field has a value and a mode ($ flat or % of buy price).
| Field | Mode | Description |
| Inbound Shipping | $ or % | Cost to receive the item — postage, freight, etc. Set as a flat per-item fee or as a % of the buy price. |
| Taxes Paid (on purchase) | % or $ | Sales tax or VAT you pay when buying. Usually a % (e.g. 8.5). |
| Tariffs / Import Duties | % or $ | Import duties on goods purchased from overseas. Usually a % of buy price. |
| + Add acquisition cost | $ or % | Add any number of custom product cost line items (e.g. "Grading fee", "Storage"). Each has a label, value, and flat/% mode. |
Selling Costs
These costs are deducted from the sell price when calculating net profit. Each field has a value and a mode ($ flat or % of sell price).
| Field | Mode | Description |
| Outbound Shipping | $ or % | Postage or courier cost when selling online. Set as a flat amount if you charge a fixed rate, or as a % if your marketplace rolls it into the sale price. |
| Packaging | $ or % | Cost of boxes, bubble mailers, sleeve/toploader materials, etc. per sale. |
| Platform / Payment Fees | % or $ | Marketplace or payment processor fee (e.g. eBay ~13%, TCGplayer ~10.25%, PayPal ~3%). Usually a % of the sale price. |
| + Add selling cost | $ or % | Add any number of custom selling cost lines (e.g. "Show table spread across items", "Insurance"). |
Categories
| Control | Description |
| Category list | Shows all configured categories. The default categories are Pokémon, Supplies, and Other. |
| Wholesale % per category | The percentage of MSRP used as the buy cost when "Wholesale" is chosen in the Buy Cost Prompt for items in that category. E.g. set Pokémon to 55% — when scanning a Pokémon item and choosing Wholesale, cost = MSRP × 0.55. |
| Add category | Type a new category name and click Add. It immediately appears in category dropdowns across the app. |
| Remove category (✕) | Deletes the category. Items already assigned to it keep the category name but it won't appear in new dropdowns. |
Vehicle Settings (for gas cost)
| Setting | Description |
| MPG | Your vehicle's fuel efficiency. Used to convert show mileage into a gas cost estimate. |
| Fuel Type | Regular (87), Mid-grade (89), Premium (91/93), or Diesel. Sets which regional fuel price is used in the cost formula. |
☁️ 12. Cloud Sync & Account
↑ top
Paid accounts sync inventory, vendor shows, categories, and settings to the TCG IMS cloud automatically. Guest access is local-only and expires after 24 hours.
| Feature | Description |
| Auto-sync | Every change (scan, edit, delete, settings update) is synced to the cloud with an 800ms debounce — changes are batched briefly to avoid excessive requests during rapid scanning. |
| Sign-in load | On sign-in, cloud data is fetched and merged with local data. Cloud wins if newer. This means you can clear your browser, switch devices, or open the app on a new phone and your full inventory is restored. |
| Guest mode | Grants 24-hour access with all features. Data is local-only — no cloud backup. Expires after 24 hours; you'll be prompted to sign up to retain your data. |
| Sign out | Clears your session token. Local inventory data remains in browser storage until manually cleared. Cloud copy is preserved. |
| Google Sign-In | Click the Google button on the login screen to sign in or register with your Google account. No separate password needed. |
| Password reset | Click "Forgot password?" on the Sign In screen to receive a reset link by email. |
💡 If you make changes on two devices simultaneously, the last-write-wins for each data type (inventory, vendors, categories, settings are each synced independently).