MTGAHelper — The ultimate collection tracker for Magic: The Gathering Arena

Optimize your deckbuilding experience :) — Never waste another wildcard

Grow your collection more efficiently by having a much clearer picture of which packs to open and which cards to craft

Upload your collection and start tracking your favorite decks!

{{numeral(modelUser.collection.cards.reduce((a, b) => a += b.amount, 0)).format('0,0')}} cards owned as of {{modelUser.collection.collectionDate.startsWith('0001-01-01') ? 'Unknown' : modelUser.collection.collectionDate }} Update

{{numeral(set.pct).format('0.00%')}} ( {{set.nbOwned}} / {{set.nbTotal}} )
{{modelUser.collection.cards.filter(i => i.set === set.name && i.rarity === rarity).reduce(function(a, b) { return a + b.amount; }, 0) }} / {{modelSets.filter(function(i) { return i.name === set.name && i.rarity === rarity.toLowerCase(); }).reduce(function(a, b) { return a + b.totalCards; }, 0) * 4}} {{numeral(modelUser.collection.cards.filter(i => i.set === set.name && i.rarity === rarity).reduce(function(a, b) { return a + b.amount; }, 0) / (modelSets.filter(function(i) { return i.name === set.name && i.rarity === rarity.toLowerCase(); }).reduce(function(a, b) { return a + b.totalCards; }, 0) * 4)).format('0%')}}
Filters
{{color}}
({{numeral(modelUserCollectionFiltered.filtered.filter((i) => color === 'Multicolor' ? (i.color.length > 1 && i.color !== 'Land') : i.color === color).reduce((a, b) => a += b.amount, 0)).format('0,0')}} cards)
  • {{c.amount}}x {{c.name}}
No data available
Date Cards Gold Gems Vault Wildcards
{{moment(h.date).format('YYYY-MM-DD')}} {{numeral(h.newCards.reduce((a, b) => a += b.amount, 0)).format('+0,0')}}   {{numeral(h.goldChange).format('+0,0')}}   {{numeral(h.gemsChange).format('+0,0')}}   {{numeral(h.vaultProgress).format('+0,0.0')}}%   {{numeral(h.wildcardsChange.Common).format('+0,0')}} {{numeral(h.wildcardsChange.Uncommon).format('+0,0')}} {{numeral(h.wildcardsChange.Rare).format('+0,0')}} {{numeral(h.wildcardsChange.Mythic).format('+0,0')}}
Select a date to view its new cards details
No new cards acquired on {{moment(modelUserHistorySelected.date).format('YYYY-MM-DD')}}
{{numeral(modelUserHistorySelected.newCards.reduce((a, b) => a += b.amount, 0)).format('0,0')}} new cards acquired () on {{moment(modelUserHistorySelected.date).format('YYYY-MM-DD')}}
  • {{c.amount}}x {{c.name}}

Track decks and view their details in relation to your collection

Decks are presented in ascending order of their missing cards weight (wildcards needed for you to complete them).

{{modelDecks.decks.filter((i) => i.priorityFactor > 0).length}} decks tracked / {{modelDecks.decks.length}} total
Filters (Press Enter)
Showing {{paginatedDecks.length}} of {{modelDecksFiltered.decks.length}} decks filtered
(...Initializing...Please refresh in 1 minute...)
Priority factor
Name and source Color Date Missing wildcards Missing cards
weight
{{iDeck.name}}
{{formatScraperKey(iDeck.scraperTypeId, true)}}
{{iDeck.color}} {{moment(iDeck.dateCreated).format('YYYY-MM-DD')}}
M: {{iDeck.wildcardsMissingMain.Mythic}} {{iDeck.wildcardsMissingMain.Rare}} {{iDeck.wildcardsMissingMain.Uncommon}} {{iDeck.wildcardsMissingMain.Common}}
S: {{iDeck.wildcardsMissingSideboard.Mythic}} {{iDeck.wildcardsMissingSideboard.Rare}} {{iDeck.wildcardsMissingSideboard.Uncommon}} {{iDeck.wildcardsMissingSideboard.Common}}
{{numeral(iDeck.missingWeight).format('0,0')}} (untracked)
Select a deck to see its details

{{vueApp.displayTotalCards(false)}}
You can easily replace the rare dual lands with common dual lands if you don't want to craft them yet.
{{c.nbMissing}}   {{c.amount}}x {{c.name}} {{c.type}}
{{vueApp.displayTotalCards(true)}}
{{c.nbMissing}}   {{c.amount}}x {{c.name}} {{c.type}}
Missing cards summary
{{vueApp.modelDeckSelected.cardsMain.filter(i => i.rarity === 'Mythic').reduce(function(i, j) { return j.nbMissing + i; }, 0) + vueApp.modelDeckSelected.cardsSideboard.filter(i => i.rarity === 'Mythic').reduce(function(i, j) { return j.nbMissing + i; }, 0)}} {{vueApp.modelDeckSelected.cardsMain.filter(i => i.rarity === 'Rare').reduce(function(i, j) { return j.nbMissing + i; }, 0) + vueApp.modelDeckSelected.cardsSideboard.filter(i => i.rarity === 'Rare').reduce(function(i, j) { return j.nbMissing + i; }, 0)}} {{vueApp.modelDeckSelected.cardsMain.filter(i => i.rarity === 'Uncommon').reduce(function(i, j) { return j.nbMissing + i; }, 0) + vueApp.modelDeckSelected.cardsSideboard.filter(i => i.rarity === 'Uncommon').reduce(function(i, j) { return j.nbMissing + i; }, 0)}} {{vueApp.modelDeckSelected.cardsMain.filter(i => i.rarity === 'Common').reduce(function(i, j) { return j.nbMissing + i; }, 0) + vueApp.modelDeckSelected.cardsSideboard.filter(i => i.rarity === 'Common').reduce(function(i, j) { return j.nbMissing + i; }, 0)}}
Set Count Weight
{{c.set}} {{c.nbMissing}} {{c.missingWeightTotal}}
Export to Arena
You can select only the first part if you prefer Bo1

No more wildcards wasted!
Only your collection cards are considered above (e.g. so you don't craft those Opts unwillingly)

Consider opening {{formatSetToFullName(modelDashboard.summary[0].key)}} packs

You are currently missing {{vueApp.modelDashboard.summary[0].value.reduce((a, b) => a += b.nbMissing, 0)}} cards from this set, worth a total weight of {{numeral(vueApp.modelDashboard.summary[0].value.reduce((a, b) => a += b.missingWeight, 0)).format('0, 0')}}
Based on missing cards that are a part of the {{modelDecks.decks.filter((i) => i.priorityFactor > 0).length}} decks currently tracked.

Click on any icon to get to the corresponding filtered view on the Missing cards Details page

{{c.nbMissing}} {{numeral(c.missingWeight).format('0,0')}}
{{set.value.reduce((a, b) => a += b.nbMissing, 0)}} {{numeral(set.value.reduce((a, b) => a += b.missingWeight, 0)).format('0,0')}}
Keep in mind that Ixalan (XLN), Rivals of Ixalan (RIX), Dominaria (DOM), and M19 will rotate and can no longer be played in Standard in Fall 2019. Guilds of Ravnica (GRN) and Ravnica Allegiance (RNA) will be legal in Standard until Fall 2020.

Consider crafting these cards, according to their weight value

Based on missing cards that are a part of the {{modelDecks.decks.filter((i) => i.priorityFactor > 0).length}} decks currently tracked.
Filters
Weight Number of decks
using this card
Owned Missing Avg per deck Card Set Rarity Type
{{numeral(c.missingWeight).format('0,0')}} {{c.nbDecks}} {{c.nbOwned}} {{c.nbMissing}} {{c.nbAvgPerDeck}} {{c.cardName}} {{c.set}} {{c.rarity.startsWith('Rare') ? 'Rare' : c.rarity}} {{c.type}}
Select a card to see in which decks it is used
{{vueApp.modelDetailsCardSelected.card}} found in:
(None)
Deck M S
{{d.deckName}} {{d.nbMain}}x {{d.nbSideboard == 0 ? ' ' : d.nbSideboard + 'x'}}

Customize some stuff to your liking

Your user id : {{vueApp.modelUser.id}}

theme
Manage which live sources you want to follow — These decks are refreshed automatically
(...Initializing...Please refresh in 1 to 3 minutes...)
{{vueApp.formatScraperType(scraperType.type)}}
(None)
Add a new custom deck
{{modelUser.decks.length}} custom decks
(None)
Weights used for missing cards
These values determine the importance of each card based on its rarity and if it's mained/sideboarded.

All values are relative so the number matters less than the relationship between them:
A card worth a total missing weight of 1,200 is twice more important to get than one worth 600.

Rarity Main Sideboard
Mythic {{modelUser.weightsProposed.Mythic}}
Rare (Land) {{modelUser.weightsProposed.RareLand}}
Rare (NonLand) {{modelUser.weightsProposed.RareNonLand}}
Uncommon {{modelUser.weightsProposed.Uncommon}}
Common {{modelUser.weightsProposed.Common}}
Basic lands preference when importing a deck
Select your favorite lands and only those will appear in your decks to import into the game client

Leave a message, feedback is appreciated

If you want a reply, be sure to include an email or some id (reddit, twitch, etc.)

Changelog

Thanks for your consideration

The anti-fun stuff...this costs money to run
A free way to show your support is to whitelist this site from your ad-blocker :)
If you would like to support this service by making a one-time donation, you can do so with Paypal
If you would like to support this service monthly, you can do so with Patreon
A huge thanks to everyone for the support and feedback
Monthly objective for ideal servers availability: 10 / 100$ 10%
zig $5
Anonymous $5
All art is property of their respective artists and/or Wizards of the Coast Inc. This website is not produced, endorsed, supported, or affiliated with Wizards of the Coast. MTGAHelper is unofficial Fan Content permitted under the Fan Content Policy.
Please wait...
Please wait...