Card
Adjust / verify
For meaningful purchases, verify exact printing, condition and recent sold data before committing capital.
Current Deal
Each card saves as its own History row sharing one lot id. Skipped cards are logged as declined (§9.2). Totals are shown in the current display currency.
Buylist
IMPORT FROM GOOGLE SHEETS
Build it the night before: quote each priority card and tap ADD TO PRE-SHOW BUYLIST (§12.2 target: 100–150 SKUs, weighted OP + Gundam). Rows show Max Cash / Trade instantly; QUOTE loads one back into the engine. REFRESH uses the optional Worker URL in Settings (daily snapshot — re-verify Recent Sale for A+ buys). Degraded mode: buy on-list only, or price off-list one tier lower.
Inventory
MOVEMENTS LEDGER
Every card in (BOUGHT saves) and out (trade-settled deals) is logged here with qty, cost basis and sticker at the time of the movement — the §13.2 trade capture. Export after every show and paste into the workbook's movements tab; the ledger keeps the newest 2,000 rows.
IMPORT FROM GOOGLE SHEETS
The dashboard weighs liquidity by VALUE — where the capital sits, not card counts (§9.1). A sheet "tier" column overrides the engine tier when present. Costs stay hidden until SHOW COSTS (a seller can read your screen). QUOTE loads a card into the engine; REFRESH updates markets on rows with a product ID. Movement tracking — trades pulling cards out of here — is the next phase.
Show Review
ACCEPTANCE · GAPS · DECLINE CLUSTERS
Acceptance = bought ÷ (bought + declined); open quotes are ignored. Read it per §9.2: a cell where nearly everything is declined means the cash % is probably too low for that game×tier; near-total acceptance means it may be too high. Gaps compare the recorded final price (bought) or seller counter (declined) to the cash quote — playset rows use the tapered quantity total. Bring this plus the exception log to the monthly §13.3 review; a pattern of profitable exceptions is how the matrices earn a change.
Quote History
Saved only on this phone/browser. Export CSV to back up quotes or combine several phones' offers into one sheet after a show.
Settings
- Scan/check exact card in TCGplayer.
- Enter Market, Low and Most Recent Sale.
- Which numbers: Market = TCGplayer's Market Price stat for the exact printing (not the lowest listing, not the median). Low = the cheapest credible current listing for your condition band — never the one-month low (the margin guard measures today's resale competition; a month-old dip understates it and you under-offer). Skip junk floors (damaged copies, $0.99-card-$25-shipping) or leave Low blank. Enter Near Mint prices and set Condition in the app — the engine applies the condition discount itself (LP ×0.90 etc.), so entering LP-page prices AND setting LP double-discounts. Use the month chart for Price action (stable/moving/volatile) and the Latest Sales list for the activity buttons.
- Glance at Latest Sales and tap Strong / Normal / Thin.
- Confirm the exit channel, then tap Get Offer. Use Target; do not exceed Max without a reason.
- Multiple cards from one seller: tap ADD TO DEAL after each quote, then close out in the Deal tab — live totals, edit/skip cards, final lot price, one save.
- Looked the card up on TCGplayer? Paste the product link into the link field — the exact card is saved with the quote (tap VIEW ON TCGPLAYER in History to reopen it) and the link instantly fills game and condition, plus the card number when the link contains one (most links do not — type it from the card). Enter Market / Low / Recent by hand from the page you are already viewing.
- §12.3: check the Buylist tab first at the table — on-list rows show Max Cash / Trade instantly, and QUOTE loads a card back into the engine. Build it the night before with ADD TO PRE-SHOW BUYLIST; it dedupes by product ID, so re-quoting a card updates its row.
- Sheet workflow: keep the buylist in Google Sheets using the JaguarTCG Buylist Template. Select the rows including the header \u2192 Copy \u2192 Buylist tab \u2192 IMPORT FROM GOOGLE SHEETS \u2192 paste \u2192 IMPORT \u2192 CONFIRM (or download the sheet as CSV and use UPLOAD CSV). Only game + card are required; tcg_url enables one-tap REFRESH; blank prices import as NEEDS PRICE. MERGE updates matching rows, REPLACE wipes first, and the app's Export CSV round-trips back into the sheet. Skip the copy-paste entirely with SYNC FROM GOOGLE SHEET. Recommended (private) setup: install the workbook Apps Script, do the one-time Deploy → New deployment → Web app (Execute as: Me · access: Anyone), then IRIS → Sync endpoint setup in the sheet hands you two ready links — paste them into Settings. The spreadsheet itself stays fully private; the secret token in the link is the key, and Regenerate sync token revokes old links instantly. Public alternative (fine for the buylist, which holds nothing secret): File → Share → Publish to web → tab → CSV. Either way SYNC fetches through your worker (v1.3 — re-paste jaguar-worker.js in Cloudflare once) and stages rows for the usual CONFIRM.
- Prices refresh themselves once a day: on the first open (when online, worker URL set) the buylist and inventory markets update automatically — turn it off in Settings if you prefer manual only. Installed as a PWA (from the hosted URL: menu → Add to Home Screen), IRIS opens instantly, works fully offline after the first visit, keeps the real icon, and shows an update note here whenever a new version lands — no more file swapping. The Files-app standalone copy keeps working exactly as before and remains the emergency fallback.
- Playsets: set Qty in Adjust — copies 3–4 price 5 pts lower, 5+ ten pts lower, and totals count toward the §13.3 approval threshold. The Sealed toggle adds the §12.4 release-window checklist.
- Comps: after GET OFFER, the COMPS row opens the card's eBay solds (eBay now requires being signed in to see sold results — sign in once in your browser and stay signed in), eBay active listings, or copies the search text for 130point (tap, then paste into their search box — they show best-offer accepted amounts eBay hides). Read the comp with your own eyes and type Recent Sale yourself; the app never guesses it. Your typed prices survive app-switching and reloads now, and flipping USD/MXN always converts from what you originally typed, so flipping back restores your exact numbers.
- Inventory (§9.1/§7.3): import your existing stock on the Inv tab the night before a show (game + card required; qty, sticker, cost_basis, tier optional — a sheet tier overrides the engine's). The dashboard shows position value and VALUE-WEIGHTED liquidity by tier and game — how much capital sits in fast vs slow cardboard, and how each show shifts it. Costs are hidden until SHOW COSTS. QUOTE loads any card back into the engine; REFRESH updates markets by product ID. Saving a BOUGHT quote or deal adds the cards to inventory automatically (the → INVENTORY toggle under Settled as; what you paid becomes the cost basis, weighted-averaged when you already hold copies — tap SKIP for immediate flips or personal pulls). Trades OUT: on the Deal tab, search your inventory under "Trade out" and add the cards you're giving — the §7.3 check runs live (embedded margin from your cost basis, incoming vs outgoing liquidity, accounting trade cost) and tells you whether the trade premium is EARNED or the quote should sit at the cash band. When the lot saves as BOUGHT + TRADE, those cards leave inventory and the movements ledger (Inv tab) records both sides with basis and sticker — export it into the workbook after every show. The "Position if closed" line shows how the deal moves your overall liquidity before you commit.
- Between shows: History → Show Review reads the outcomes you logged — acceptance by game×tier, final-vs-quote gaps, and where declines cluster (§9.2). Filter by event after a show; bring it to the monthly §13.3 review. It only works if BOUGHT / DECLINED get tapped before saving, so log declines too. End of show: tap SHOW CLOSE (History tab) — one share sheet carries every CSV (quotes, buylist, inventory, movements) plus a full backup JSON. Keep that backup off the phone: it is your device-loss insurance, and Settings → RESTORE FROM BACKUP brings a new phone back in one confirm.
V2.11 is fully offline at the table; the optional Worker URL is used only by the Buylist REFRESH button. Save this HTML file directly on the phone (Files app / downloads) and open it from there — it then runs fully offline. If you access it from a hosted URL instead, load it once before the show and keep the tab open; a hard refresh with no connection will not reload it. Saved quotes stay on this device only.