CubeWizard turns submitted deck photos into card lists, then computes per-card and per-color performance from match records.
Data flow
- Upload: A user submits a deck photo + match record (W/L/D) for a selected cube.
- Processing: Uploaded data is run through an OCR (Optical Character Recognition) process to determine the list of cards included in each deck.
- Analytics: Processed decks are analyzed and findings are shown via this site.
Stored Information
- Record (W-L-D): The match record entered on submission.
- Win%:
W / (W + L). If W + L = 0, Win% is treated as 0.
- Cards: The number of card names extracted from the image.
- Pilot: The user-provided name of the deck pilot.
- Uploaded: The timestamp when the deck was recorded.
Dashboard tiles
- Total Decks: Count of decks stored for the selected cube.
- Unique Cards: Count of distinct card names that appear in at least one stored deck for the cube.
- Average Win Rate: The mean deck Win% across all decks in the cube (each deck weighted equally).
Card performance
- Appearances (Apps): Number of decks in the cube that contain the card at least once.
- Card record (W-L): For each deck containing the card, add that deck’s wins to the card’s wins and that deck’s losses to the card’s losses.
- Card win rate:
card_wins / (card_wins + card_losses).
- Laplace smoothing with a weight of 5 is applied to each card’s win rate. In short, we assume that every card is played in 5 synthetic ‘decks’ that have a winrate equal to the cube average. This means in practice that cards start with a cube average winrate, and have to show a consistent above average performance to move their winrate substantially.
- Performance delta (Δ):
card_win_rate − cube_average_win_rate.
- Popularity: Shown via appearances (and in the scatter, higher appearances means more-popular cards).
Synergies
- Together: Consider only decks that contain both cards in the pair.
- Together record (W-L): Sum deck W/L over decks containing both cards.
- Together win rate:
together_wins / (together_wins + together_losses).
- Synergy bonus:
together_win_rate − average(card1_win_rate_over_all_decks, card2_win_rate_over_all_decks).
Color data
- Deck is “a color”: If it contains at least one card with that color in its color identity.
- Color win rate: Computed over all decks that qualify for the color, using the same W/(W+L) aggregation approach.
- Deck presence: Percentage of cube decks that qualify for the color.
Notes & limitations
- Small samples: With few decks, card and synergy deltas can swing heavily. The dashboard shows a “Small dataset” banner under 30 decks.
- OCR misses: If a card isn’t extracted or cannot be found in Scryfall, it won’t contribute to per-card analytics.
Tools
-
Search decks by pilot name
— list every stored deck whose pilot name matches your search (across all cubes), in the same table style as deck data. Click a row to open that deck on the cube’s deck page.