Talk:Card pack statistics

Dead link / linkrot
The source for the statistics seems gone: Card_pack_statistics, how do I mark it as such? -- Karol007 (talk) 14:01, 13 August 2015 (UTC)
 * I've added dead link, and tagged the reference. -- Taohinton (talk) 14:54, 13 August 2015 (UTC)

Golden probability changes
The latest study from HearthSim shows a much lower incidence of golden cards for non-common rarities. Given fairly similar data from two earlier studies, this suggests the probability may actually have been changed. This could make sense given plans for golden cards in Ranked Chests. Until we know, for the meta-study I've simply listed the latest data from HearthSim for golden cards rather than combining all available data. -- Taohinton (talk) 23:57, 31 August 2015 (UTC)

Uniform Distribution
The data given in this article assumes all 5 cards in a pack are drawn from the same randomizer. If that was the case, you would occasionally see packs with nothing but Common cards (roughly about 20% of the time). I'm not sure how the distribution mechanism actually works. It's feasible that each card in a pack is uniformly generated, and if there's ever a pack generated with 5 Commons, one is replaced with a Rare. However, that's a weird way to go about it. (Though, of course, some of the other coding decisions in Hearthstone make no sense to me, so it's certainly possible.) From my experience opening packs, I'm led to believe there are separate rarity tiers for cards, and that each pack has 3 Low-Rarity cards, 1 Mid-Rarity card, and 1 High-Rarity card. I base this on the fact that 3-Rare packs are rather rare, despite the fact that, given a uniform distribution, they should happen about 8% of the time. 2-Rare packs given a uniform distribution should be 1 in 3 packs, but they're not that common either, though far more common than they would be given 4 Low-Rarity slots + 1 High-Rarity slot. (Not 2 Rares or better, simply 2 Rares, ignoring the other 3 cards). --73.13.228.251 19:11, 24 June 2016 (UTC)

Did some testing on one of the raw data sets, HearthSim from August 29th, 2015. Out of 15106 packs (or 15112 depending on how you calculate it, there are 3 "packs" in the data set with 8 commons and 2 rares each, meaning somehow two packs got reported as one. I just ignored them as I can't be positive about the split.) There are 2660 packs with 2 or more Rares (17.6%) and only 135 packs with 3 or more Rares (0.89%). Given a uniform distribution of cards, one would expect 32.1% having 2 or more Rares, and 8.2% having 3 or more. That means that 2+ Rare packs are half as likely as expected, and 3+ Rare packs are a whopping ten times less likely than expected. These cards are definitely not uniformly distributed. --73.13.228.251 19:50, 24 June 2016 (UTC)


 * I'm trying to understand what you're saying. So, you tested whether Hearthstone uniformly distributes its cards into packs, AND then non-uniformly replaces them with other cards? Please enlighten me because I don't follow. EDIT: Ok, the above seems much clearer now. Aegonostic (talk) 03:26, 25 June 2016 (UTC)


 * The analysis in this article presumes that each card in a pack is generated using the same rarity distribution. That is, if 20% of Cards total are Rare, then, in a Pack of 5 cards, each card has a 20% chance of being Rare. My analysis disproves this to a high statistical significance. I'm not sure what the actual method of card generation is. My instinct says that each of the five cards in a pack has its own rarity distribution, say one Card Slot might be 0% Common/75% Rare/20% Epic/5% Legendary, while another Slot might be 80% Common/15% Rare/4.9% Epic/0.1% Legendary. Another possibility is the number of each rarity is determined all at once, say 50% of packs are 4/1/0/0, or 5% of packs are 3/1/1/0, and then cards are randomly picked from the decided rarities. Given that some people report opening packs with 3 Legendaries, I'm disinclined to say it's the latter option, but I have no proof to that effect. --23.24.4.74 04:02, 9 July 2016 (UTC)


 * I'm very strongly inclined to the latter option. I would like to see the data which might imply that each card in a pack has its own rarity distribution. Aegonostic (talk) 02:58, 15 July 2016 (UTC)


 * I think it would be very difficult to tell the difference between the two statistically. I don't think Blizzard would explicitly code in a chance for a 4-Legendary pack, but that's just my supposition. I think such packs are an unintentional outlier stemming from a more random generation. So, my instinct says it is more random than pre-determined, but randomly selected, rarity distributions, and data proves it is less random than a uniform distribution of all cards. That leads me to believe that each pack has a number of different rarity slots, each which uses it's own rarity distribution (even if some slots share the same distribution). Further, as a programmer, given the constraints involved in the generation process (i.e., at least one card must always be Rare or better), that is exactly how I would implement it. If you have one slot that has no chance of being anything less than Rare, you don't have to worry about validation checks, or re-rolling packs. Certainly, maintaining a list of all possible rarity distributions and assigning them probability (and balancing that probability!) would be a maintenance nightmare. I certainly wouldn't code it that way, but that doesn't mean Blizzard didn't. --73.13.228.251 19:46, 16 July 2016 (UTC)


 * How do I quote on this wikipedia, the template doesn't seem to work. >:\ Anyways, what you said is interesting and is definitely worth taking a look at. These two statements are interesting:


 * "There are 2660 packs with 2 or more Rares (17.6%) and only 135 packs with 3 or more Rares (0.89%). Given a uniform distribution of cards, one would expect 32.1% having 2 or more Rares, and 8.2% having 3 or more."
 * "If you have one slot that has no chance of being anything less than Rare, you don't have to worry about validation checks, or re-rolling packs."


 * It is indeed a waste of computation to go down the path of re-rolling the "never-Rare" card, but this may not be costly and may be better intuitively to the programmer(s). Furthermore, assuming re-rolling the "never-common" card (the one card out of five in the pack), this will change the very roughly 72% 23% 4% 1% probabilities of rolling each card to something like 69% 24.5% 5% 1.5% since the Common rarity card is always re-rolled. Something to think about! ^__^ Aegonostic (talk) 14:59, 18 July 2016 (UTC)


 * Yes, re-rolling packs is only a minor hassle. It would be perfectly logical to use a uniform distribution of cards, and simply re-roll any packs that are only Commons. That would indeed be the simplest and most intuitive solution. However, the statistics do not support that theory, so we must look to an alternate implementation. Still, we can apply Occam's Razor here, especially when we consider the value Blizzard places on balancing. Which solution would you use: Define 2 or 3 different Rarity Distributions, and each card in a pack is generated using one of those, or maintain a list of all 55 possible pack outcomes and their associated probability? What if you needed to tweak probabilities to make Legendary cards show up 10% more often (relatively). With pre-determined pack outcomes either the balancer needs to do a whole lot of recalculation to make that simple change, or your programmers need to write a complex routine which takes simple relative distribution values and automatically generates probabilities for the various pack outcomes. With Rarity Slots you just need to increase a couple of numbers, and reduce other numbers by the same total amount. In any case, I'm not convinced that, from the end-user's perspective, that the two methods actually differ. I believe that one can be reduced to the other mathematically, I'm just not sure how to go about proving that. TL;DR, for this whole conversation: You can't look at card draws individually, you have to consider the entire pack to have any useful statistical insight. --73.13.228.251 02:26, 21 July 2016 (UTC)


 * Some data disproving the simple method of generating 5 random cards using a uniform distribution, and then re-rolling if all 5 are commons: I wrote a test program to generate packs in this manner, using rarity weights that will generate final distribution values close to the meta-study. Here's the raw output:
 * Designated Rarity Weights: 'COMMON', 0.823], ['RARE', 0.142], ['EPIC', 0.028], ['LEGENDARY', 0.007
 * Total Rarity (should be 1.0): 1.0
 * Generating 100000 packs.
 * Total Cards: 500000
 * RARE: 114153, 22.8306%
 * EPIC: 22376, 4.4752%
 * COMMON: 357959, 71.5918%
 * LEGENDARY: 5512, 1.1024%
 * 2+ Rares: 24099, 0.24099 %
 * 3+ Rares: 3661, 0.03661 %
 * The result being that, while closer to real values than a true uniform distribution, or even randomly replacing one card in an all-common pack with a rare, they still don't match up statistically. 24% of Packs in the Test Set had 2 or more Rares, whereas actual data had only ~17.5%. 3.6% of Test Packs had 3 or more Rares, while, again, actual data indicates only ~0.9%. Given that the real data set is of a statistically significant sample (15000+ packs), that means that we can be confident that this is not the method used to generate packs.--73.13.228.251 22:57, 21 July 2016 (UTC)

I only processed 13099 packs due to technical limitations (2^16-1 cards (rows) of csv) and didn't bother to concatenate two datasets. :| This is 65495 cards. 6 packs had run-on pack IDs, as already noted, and had to be excluded from my 13099 packs (i.e. rows #2206-2215, 35121-35130, 58431-58440). Anyways, here's my data (using your "designated weights") (how did you come up with those? iterating through numbers until values were within tolerance of the empirical probabilities? :p ). It's just mostly similar to yours, I highlighted the distinctions below:


 * Simulation: Re-rolling implementation:


 * Generating 100000 packs.
 * Total Cards: 500000
 * COMMON: 357561, 71.51 %
 * RARE: 114328, 22.87 %
 * EPIC: 22422, 4.48 %
 * LEGENDARY: 5689, 1.14 %
 * 2+ Rares: 24299, 24.3 %
 * 3+ Rares: 3743, 3.74 %    (You get the point, the above is verified :p )


 * Hearthsim TGT stats:


 * 13093 packs (less than what you did) (this number excludes the 6 odd packs)
 * COMMON: 47040,  71.86 %
 * RARE: 14971, 22.87 %
 * EPIC: 2787, 4.26 %
 * LEGENDARY: 667, 1.02 %
 * 2+ Rares: 2305, 17.6 %
 * 3+ Rares: 112, 0.86 %     (Observation verified, probabilities don't match up  >:

Conclusion? Same as yours, re-rolling method, which assumes every card has a set chance of being a certain rarity, and then re-rolling for 5 Commons, is not the method Blizzard employs in determining the cards you get from packs. >:| But regardless of method, the probabilities of obtaining the cool cards you want / not want are still the same. <:|

Aegonostic (talk) 23:03, 24 July 2016 (UTC)


 * Four score and seven years later, seems like Blizzard's method of distributing cards in packs has backfired on them big-time. Yet another time to grab your pitchforks. Sigh. Aegonostic (talk) 19:35, 1 December 2016 (UTC)


 * I think now, I see the full beauty of the problem. It is definitely impossible foe the end-user to predict the method of card distribution, but it is fun to surmise the possibilities. Aegonostic (talk) 06:45, 4 December 2016 (UTC)

"Spectate a Friend" packs "may" have increased chances of opening a Legendary, or cards of high rarity
Hi all, so to begin, this is just something to think about, and it is based on my experience. So I begin --> I have a lot of HS friends on my friends list (200, the max limit, yey friends!), and I've noticed that maybe around 10% of the time, after a friend has spectated me, they will open up a legendary card as they are opening up that pack (I can tell because it says so right at the bottom of the Hearthstone screen). Maybe I'm just being paranoid/optimistic/unsure/idk, but I would just like to throw this in here. I don't want to make false statements, and this would go against the notion that "all packs / each pack card have the same chances of being a certain rarity". Aegonostic (talk) 14:29, 18 July 2016 (UTC)


 * No joke, opened a spectator pack and I got a Legendary. It was only a 3-card pity timer from my last opened Legendary from the same set (Classic). I swear spectator packs are rigged. My hypothesis only makes sense if and only if Blizzard really wanted people to have a higher chance of opening good/rare/Legendary cards after spectating a friend's match, for the reason that it promotes discussion among friends. Aegonostic (talk) 12:24, 2 August 2016 (UTC)


 * I mean, the above discussion section reinforces the idea that Blizzard can / might have already been implementing pack openings based on non-uniform methods. But the idea of "Spectator packs" being more likely to have Legendary / higher rarity cards presents the idea of a bias in the method of the acquisition of a pack. Not to signify this as a fact, but only as an observation for now. Until corroborating evidence can be found in the future, this is only a hypothesis. Aegonostic (talk) 13:06, 2 August 2016 (UTC)


 * Does anyone have ANY data on this other than me? I swear my speculation is truth, I just had two encounters of friends opening Legendaries right after playing with me for quests. Aegonostic (talk) 15:22, 27 September 2016 (UTC)

I swear this is so true. Opened a Golden Alexstrasza from a Spectator pack. :D :D :D Aegonostic (talk) 16:53, 16 February 2017 (UTC)

Pity timer
One subject remains unexplored here: the so called "pity timer", which ensures the player receives a legendary card at least once each 30 card packs or so. Apparently it also affects epics. I'm not in much of a position to do a good write-up, but there's a fair bit of information out there, and hopefully someone who knows more can do so, since it's conspicuously lacking from this otherwise excellent exploration of the odds. -- Taohinton (talk) 18:39, 14 September 2016 (UTC)


 * Ooh, yes. Every 40 card packs that are opened, at least ONE card in them MUST be a legendary. There's sources out there, but not in the mood right now to search. Just to elaborate on it a little bit more: every legendary that you open will reset the pity timer on card packs, meaning that for example, opening a Leeroy Jenkins will reset the timer to zero, opening another pack will set the timer to one, opening another sets timer to two, etc. If at 39 packs opened, you still don't get a Legendary, you will get one on the 40th card pack. The graph is a skewed bell curve, towards zero. The average number of card packs to open before hitting a Legendary is 18.


 * This same phenomenon (pity timer) occurs with Epic cards. The pity timer for epic cards is 10. Aegonostic (talk) 01:24, 15 September 2016 (UTC)


 * How and where should info about pity timer be created? I feel like "Pity TImer" should have its own page, and be mentioned in the "Cards" page and the "Card pack statistics" page. It does have a significant impact on how people will be buying packs (such as opening packs until a pack with an Epic or Legendary is opened, to maximize gold utility). Aegonostic (talk) 01:27, 10 October 2016 (UTC)


 * If you can muster a sufficiently large amount of information to warrant its own page I guess we could do that, although since it would inevitably overlap with the content on this page that might lead to a bit of duplication/confusion. At the least I would suggest a section of its own on this page, and you could always make a redirect. In terms of other pages I wouldn't say it's directly relevant to Card, since it is strictly related to Card packs not the cards themselves - but it would make sense to mention it in the statistics info summary on that page. -- Taohinton (talk) 21:00, 11 October 2016 (UTC)


 * Oh yea, good points. Aegonostic (talk) 06:35, 12 October 2016 (UTC)

Planning to do card pack opening tables for MSG, be advised
Planning to do card pack opening tables for MSG, be advised. Probably going to only be doing it for Kripp. Results should be mostly consistent with what's already shown in the current data tables. Aegonostic (talk) 18:47, 1 December 2016 (UTC)


 * On second thought, never mind. Blizzard failed to implement the pack openings properly. Great. https://www.reddit.com/r/hearthstone/comments/5fxr6u/the_chance_to_get_a_triclass_card_seems_pretty/ Aegonostic (talk) 19:27, 1 December 2016 (UTC)


 * I think I might still continue with the table creation. It could give some insight on how Blizzard distributes their cards into packs. Aegonostic (talk) 20:15, 1 December 2016 (UTC)


 * Never mind, I stopped partway, because Blizzard SUCKS . Not doing it. Aegonostic (talk) 22:56, 1 December 2016 (UTC)

Ok, I'm going ahead with the table creation again. ;.; The data is just too valuable. Aegonostic (talk) 14:47, 2 December 2016 (UTC)

Min packs needed to complete set
Can someone remove this section or do a better analysis. This section has so many impractical assumptions and the end result isn't even noteworthy. What people want to know is expected number of packs to complete a set, not min packs. Also, assuming you don't redraw the same cards. The statistics involved behind the assumptions itself is less than probably a billionth of a percent. 12:14, 15 December 2016‎ 219.79.109.228


 * I agree with completely overhauling and/or removing that section. Aegonostic (talk) 14:38, 15 December 2016 (UTC)


 * The section read things like "assume a best case scenario with perfect luck" & "depending on luck and crafting habits, one can reasonably expect to need significantly more packs (15-75% based on simulations". This is theorized original simulation research, and the table does not provide useful data. One is interested in average number of packs to complete a set, not a minimum value, basing on statements like "assume best case scenario" and "perfect luck". Things like this should not be submitted to this wiki. If anyone wishes to redo the table, feel free to discuss. Aegonostic (talk) 19:40, 19 December 2016 (UTC)

Sharing some statistics plus note on new player experience
Some friendly stats to share:
 * The average diligent player will receive 9,500 - 10,000 gold per expansion.
 * 100 packs is approximately (98/98) Commons, (64/72) Rares, (20/54) Epics, (4.5/20) Legendaries (Mean Streets of Gadgetzan example)
 * Players will also receive around 6,400 dust per expansion (e.g. 4 Epics and 3 Legendaries).

Regarding the change in rotation from Adventure to Expansion set, it is definitely good financially for Blizzard. However, for players who are just starting out within their first year, this major increase to the cost of Hearthstone is definitely very steep:
 * Adventure (2,800 gold for 45 guaranteed cards) -> Expansion (10,000 gold for 99 (76% of 130) cards)
 * An annual 7,200 gold savings annulled (72 packs), a very steep change in the free-to-play economy

I think it is wise to give players who are just starting out a much wider variety of opportunities at getting more gold and/or dust. Aegonostic (talk) 17:08, 26 February 2017 (UTC)

Massive overhaul of Meta-study and Data sections
Based on the recent comment from 98.111.250.92, I realised that at least some of the numbers here are computed wrong. So I decided to harvest all the numbers from the various studies referenced in the Data sections, and collected them in a database for further analysis. I will first update the Data sections and then do a full overhaul of the Meta-study section. (Gives me something to do while waiting for KotFT to release in EU).

Given the recently published changed to the pack opening logic (which as published should not affect any of the numbers here - but when have Blizzard ever fully published all changes??), I hope that there will be efforts to track massive pack openings for the KotFT expansion and post them in a format that I can harvest and add to my database. If that happens, then please either add a link to the raw data here, or add a new sub-section in the Data section including a link to the raw data. As soon as I have time, I will add the raw data to my database and update the Meta-study and Data sections with my findings.

Unfortunately, I do not have sufficient spare time to watch hours of pack-opening footage to do the actual data collection, so I am dependent on others prividing the raw data, either on a per-pack level (such as in Data subsections for the Old Gods and later expansions), or even on a per-card level (such as in the HearthSim subsection).

-- BigHugger (talk) 19:30, 10 August 2017 (UTC)


 * For reference, comment being referred to is recorded in the page history, which I will state here for completeness:

"Added notations to mark that the 'Probability of a least 1 per pack' data was miscalculated and offered a more accurate prediction of one of the fields based on the information provided (4100=61.0%, 3200=12.2%, all other options not listed give the range"


 * As for the validity of data, since I see some probability numbers being changed in the tables, I can only vouch for the data that I personally had collected over the years, which include only the following datasets, of which I spent hours watching the card opening videos. If anyone finds more errors with any of the datasets in this article, feel free to correct them and make the necessary changes.


 * Also FYI, I will be standing down and no longer be doing data collection for Hearthstone as I have done for the following expansions in this article.


 * April 28, 2016: Amaz opens 413 Old Gods Packs
 * December 1, 2016: Kripparian opens 896 Gadgetzan Packs (Before Tri-Class Bug Hotfix)
 * December 1-2, 2016: Kripparian opens 450 Gadgetzan Packs (After Tri-Class Bug Hotfix)
 * April 6, 2017: Kripparian opens 1101 Journey to Un'Goro Packs
 * April 8, 2017: N. Millar opens 1256 Journey to Un'Goro Packs


 * Regarding the recently published changes to pack opening logic ( Battle.net blog post - 06/22/2017 ), we will definitely need card pack opening data for Knights of the Frozen Throne.


 * Aegonostic (talk) 20:18, 10 August 2017 (UTC)

I'm guessing you're using the original data to calculate the numbers, and that's probably why you're experiencing rounding errors (looking at your edits).

For instance, I used 100/2.05% to get 48.78048, which I rounded to 48.8, instead of saying 48.7. Wikilink to section: Card_pack_statistics.

Also, as an FYI, I only computed this data statistic because it existed in this article long before I had existed in this Hearthstone wiki.

If trying to get some of the table rows to equal 100% and not like 100.1% or 99.9%, you can go ahead and fix those if you want. Thanks for the edits! Aegonostic (talk) 20:34, 10 August 2017 (UTC)


 * Since I have imported all the base data, I can now compute all values directly from the raw data, without using rounded intermediate results. That might explain some of the differences.
 * E.g. for the Kripp example, there were 3942 common cards, 81 of which were golden. So (81 / 3942) = 0.0205479..., and (3942 / 81) = 48.666..., which I rounded to 20.5% and 1 in 48.7.
 * Some of the small corrections I made seem indeed to have been deliberate incorrect rounding to get a total of 100.00. I prefer to have the actual data. I am currently still debating whether to add a note to explain why some rows add up to 99.99 or 100.01, or if I can trust the reader of a page like this to be able to figure that out themselves.


 * By the way, I would like to extend a MASSIVE "thank you" for what must have been a huge time investment to collect all that data and make it available in a format that I could use for easy further analysis. I cannot even begin to envision the effort you put in in watching all those hour-long pack-opening streams.
 * I totally understand that you are no longer able and/or willing to do that, and I can only hope that someone else will step up and take on this task. Blizzard's official announcement on the new pack opening logic seems to suggest no changes to the choice of rarity or the choice of golden vs non-golden, but only a change in the selection of the actual card given the chosen rarity - but just becuase it's not announced is insuficient evidence to conclude that it has not changed, and we need to analyze large numbers of pack openings to verify this.


 * -- BigHugger (talk) 20:57, 10 August 2017 (UTC)


 * Yes! Thank you for your data-studying and edit-revisions, and you're welcome! :) Aegonostic (talk) 21:39, 10 August 2017 (UTC)


 * All the existing sections have been updated (I think), so the page is now once more in a consistent state.
 * The per-card data of the HearthSim study allows me to add even more statistics, and I plan to do at least a breakdown of Class cards vs Neutral cards. But that will have to wait for another day. -- BigHugger (talk) 22:41, 10 August 2017 (UTC)