REM Gems
| Brand | Sport | Year | Set | Player | Card # | Subset | Parallel | Print Run | Market value | Lowest BIN |
|---|
Inventory
| Brand | Sport | Year | Set | Player | Card # | Parallel | Serial # | Auto | Patch | Grader | Grade | Purchase | Sale | Status | Match |
|---|
PSA Submissions
| Name | Service | Cards | Total DV | Status | Created |
|---|
| # | Year | Brand | Set | Player | Card # | Parallel | Serial | Auto | Market | Declared Value |
|---|
Model Performance Overview
Correction Rate Trend (30d)
Parallel Taxonomy
| Canonical Name | Status | Aliases | Version | Updated | Actions |
|---|
Detection engine
Every scan uses the V2 pipeline (image quality gate, checklist matching, reranker, candidate picker). This control only changes Phase 2: how player, set, parallel, and other fields are read from the photos (local OCR vs a cloud vision model).
Detection Quality Diagnostics
Failure Types
Failure Stages
Recent scans
Last 10 rows from detection_logs. Open a row for pipeline timings (preprocess / OCR+vision phase / retrieval bundle / rerank / post), then OCR cues, top candidates, and explainability. Use request_id with server logs (vision_detect_trace).
| Time (UTC) | Request ID | Mode | Card type | Conf | Band | Total ms | Blur | Fallback |
|---|
Admin Users
| Role | Status | Last Login | Actions |
|---|
Audit Log
| Time | Actor | Action | Entity | Reason |
|---|
Taxonomy Versions
| ID | Active | Note | Created | Actions |
|---|
Label Readiness
Identification Rules
Configure global/brand/set/subset rules used by detection and ingestion. Rules are authored in natural language, compiled to structured DSL, then applied deterministically.
Bundles
Impact Preview
Try a sample detection/ingestion context to see matched rules and changed output before publishing.
Rules in bundle
| Name | Layer | Scope | Priority | Enabled | Actions |
|---|
Rule Editor
Scope filters always apply in addition to guided/CEL conditions. Effective match is: scope filter AND condition query.
For extract regex to field: use field=target, value/source=source field, reason/pattern=regex, delta/group=capture group.
if brand is Panini and set contains Prizm then require field card_number when year >= 2020 then boost candidate where set contains Prizm by 0.2 if card_number starts with PP, set the parallel column to these values based on the proceeding letters: M = Mercury V = Venus MA = Mars
For complex branching logic, use JSON DSL directly for now. A guided conditional form is planned if authoring becomes too complex.
Adjacent-year duplicate sets
The scan_canonical_duplicates job fills this queue when two consecutive years share the same brand, sport, and set name with overlapping checklist rows.
Approve repoints foreign keys and deletes overlapping rows in the merge year. Dismiss records your decision so this pair is not enqueued again (same fingerprint).
Choose the keeper year, then use View to inspect overlapped rows and source metadata before approving.
| Brand / sport / set | Years | Overlap | Keeper (merge other year into) | Actions |
|---|
Duplicate details
Overlaps (merge row ↔ keeper row)
| Merge id | Keeper id | Player | Card # | Parallel | Subset | Seq (/n) | Merge source | Keeper source |
|---|
Non-overlap rows in merge year
| Row id | Player | Card # | Parallel | Subset | Seq (/n) | Source |
|---|
Canonical Set Proposals
New product lines discovered during import (e.g. from Cardboard Connection URLs) appear here for review. Approve creates a canonical set entry so future imports resolve consistently. Reject marks the proposal as not needed. You can optionally edit the display name before approving.
| Brand | Sport | Year | Set Key | Display Name | Raw Name | Source | Status | Actions |
|---|
Manual Card Entry
Add individual cards from sets not covered by any automated source.
These rows are written to card_types with canonical_source = "manual".
Recent Manual Entries
| ID | Brand | Sport | Year | Set | Subset | Player | # | Parallel | Seq | Added |
|---|---|---|---|---|---|---|---|---|---|---|
| No manual entries yet. | ||||||||||