How Fortunate is a Bowl of Fortunate Charms?


tl;dr model: A crew of scholars helped design and perform an experiment to find out whether or not bowls of Fortunate Charms are equally “fortunate” over the course of a field of cereal. Seems, not a lot. We estimate a lower of roughly 2.7 complete charms per extra bowl on common. This corresponds to greater than a 50% drop-off in charms from the primary bowl to the final. The load of cereal additionally seems to play a task, and for every 1g of cereal we estimate roughly 0.5 extra charms on common with bowl held fixed. The interplay between bowl and weight will not be statistically important.

See this GitHub repository for the info, code, photographs, and so forth.

An opened box of Family-size Lucky Charms
Determine 1: They’re Magically Scrumptious! (Picture by creator)


Within the early 2010’s there was a kerfuffle on the Web over an investigation into whether or not or not “Double Stuf” Oreos had been really double-stuffed. (They’re not.) It was a fascinating concept, and a considerable quantity of fabric has been written about it since, see right here for starters. The dialogue induced sufficient splash that some academics had been evidently repeating the experiment as an exercise of their lecture rooms, and native college students have reported performing related experiments at their very own colleges greater than 10 years later.


One morning in the summertime of 2023 I used to be consuming a bowl of Fortunate Charms for breakfast. The field was almost empty and I sighed to myself, “Can’t wait till this field is finished so I can open up a brand new one…” Now, when you’re something like me, or hundreds of thousands of different folks, then you definately love Fortunate Charms, and also you’ve cherished them for so long as you possibly can keep in mind, being round for 60 years and all. They honestly are Magically Scrumptious. However sitting there on that summer season morning of discontent with a spoon in my hand it struck me that the bowl of cereal I used to be consuming simply didn’t fairly appear as magical as the sooner bowls had been. It was lacking one thing. (The charms, in fact.) Was it my creativeness? Might this impact be actual? And if that’s the case, might it’s measured?

I occurred to be instructing an undergraduate likelihood & statistics course on the time and the 4 college students and I had been decided to seek out out.

Experiment and knowledge

After some dialogue, the crew selected the next supplies and strategies.


  • Six (6) containers of Household-size Fortunate Charms (18.6oz, 527g)
  • Digital kitchen scale
  • Two plastic “bowls”, Container A and Container B, measuring 40.125g and 28.375g respectively
  • Massive bowl for discards, some trash baggage, different ancillaries

The Fortunate Charms had been bought from our native retailer—Wal-Mart. There was nothing particular about n = 6 containers, it was merely the variety of containers an individual might carry with two fingers to the sixth ground of Cafaro Corridor in a single journey. The kitchen scale was for measuring the burden of cereal, which the crew thought is likely to be vital, and the dimensions would additionally assist with knowledge assortment as a result of we didn’t need to be overly preoccupied with sampling the very same quantity of cereal each time.

An electronic scale with a sample bowl of Lucky Charms.
Determine 2: Weighing in. (Picture by creator)


For the needs of this experiment, a “bowl” was taken to be roughly 1 serving of cereal as beneficial by the field (1 cup or 36g), despite the fact that it’s ridiculous for anyone however a tiny magic leprechaun to get by on 36g of Fortunate Charms for breakfast. The crew was not particularly choosy about sustaining bowl measurement consistency, something near 1 cup was thought of ok. We had been accounting for mass of cereal with the kitchen scale anyway and had been taking pictures for a wholesome vary of noticed weights.

Determine 3. Gavin Duwe (L.) and Brenna Brocker (R.) (Picture by creator)

Every bowl of cereal was poured immediately from the field into the plastic container, weighed, after which emptied onto the desk floor for counting. The toasted oats had been separated from the marshmallows and discarded. Subsequent the next eight (8) allure sorts had been acknowledged and their quantity recorded: Pink Hearts, Rainbows, Purple Horseshoes, Blue Moons, Inexperienced Clovers, Unicorns, Tasty Pink Balloons, and Orange Stars.

Two Purple Horseshoes and a small Purple Horseshoe bit.
Determine 4. This was counted as 3 Purple Horseshoes. (Picture by creator)

Often there have been little marshmallow bits within the bowl; not each allure was 100% intact. To cope with this, the crew tried to categorise the bit into the kind of allure (Inexperienced Clover, Blue Moon, and so forth.), and if the sort might be decided, then that bit was counted as 1 within the respective class. If the bit was nondescript or too small for sort identification then it was discarded.

The information

Knowledge had been collected throughout two separate class conferences. The scholars labored in pairs to pour and depend the charms. I helped with the dimensions and recording a tough copy of weight values as they had been known as out for entry into the pc. The crew received into a knowledge assortment groove and by the tip of the experiment all 4 college students had been pouring and counting charms independently.

Raw data.
Determine 5. Knowledge don’t get a lot rawer than this. (Picture by creator)

The plastic container + cereal had been weighed collectively every spherical, and the burden of the container (measured firstly of the experiment) was subtracted from the noticed complete weight. The charms had been entered into their respective columns and totaled.

A laptop for data entry.
Determine 6. Pictured: Kate Coppola (Picture by creator)

Measured variables

  • Field: the field quantity (1 by 6)
  • Bowl: the sequential bowl for every field (ranges from 1 to 13)
  • Commentary: the noticed order of bowls throughout containers (1 to 69)
  • Totweight: weight of the plastic container + cereal, in grams
  • Weight: of cereal in grams, after subtracting the burden of the container
  • Hearts, Stars, and so forth: what number of of that allure in that bowl
  • Totcharms: sum complete of the various charms
Determine 7. Pictured: Haziq Rabbani (Picture by creator)

Right here is a few R code to learn in and present the highest of the dataset (first 6 rows). The information and all code are shared in this GitHub repository.

Fortunate <- read_excel("Fortunate.xlsx")
Fortunate$Field <- as.issue(Fortunate$Field)

Geared up with these knowledge we will report issues just like the imply noticed Weight was roughly 46.3g, the utmost variety of a selected allure in anybody bowl was 15 (Pink Hearts tied with Purple Horseshoes), and so forth. Certainly, we might spend all day computing statistics on this dataset to our Pink Coronary heart’s content material, however in the meanwhile we’re primarily targeted on Totcharms and the way it pertains to Bowl and perhaps Weight to a lesser extent.

Here’s a graph of Totcharms by Bowl, coloured by Field:

Fortunate |> ggplot(aes(x = Bowl, y = Totcharms, shade = Field)) + 
geom_point(measurement = 3) +
labs(y = '# Charms') -> p1
A ggplot of # Charms versus Bowl
Determine 8. A scatterplot of Totcharms versus Bowl coloured by Field

Right here we see a transparent lowering development in Totcharms as Bowl will increase, and the sample is surprisingly linear. There could also be a slight curvature. The colours are difficult to pick, so let’s make a line plot and spotlight a few sequence:

sizes <- c(2, 1, 2, 1, 1, 1)
alphas <- c(1, 0.2, 1, 0.2, 0.2, 0.2)
Fortunate |> ggplot(aes(x = Bowl, y = Totcharms)) +
geom_line(aes(color = Field, linewidth = Field, alpha = Field)) +
scale_discrete_manual("linewidth", values = sizes) +
scale_alpha_manual(values = alphas, information = "none")
Line plot of selected series of Totcharms versus Bowl
Determine 9. A line plot of chosen sequence of Totcharms by Bowl coloured by Field

There’s a common development downward for all sequence, however the path to get there varies for particular person containers. Discover how Field 3 begins excessive and stays excessive for just a few bowls earlier than dropping off easily to Bowl 10, crashing promptly afterwards. Take a look at how Field 1 begins the bottom of the gang, will increase after Bowl 5, peaks at Bowl 8, then nosedives right down to Bowl 12. The information would recommend that charms had been extra concentrated close to the highest of Field 3, however had been extra clustered in a pocket close to the center of Field 1. Some containers bounce round, different containers drift in additional of a straight line downward. Put all of it collectively, although, and the general development is lowering and linear. Be aware that each field made it not less than to Bow1 = 11, however solely two containers had 12 bowls, and a single field (Field 4) lasted to Bow1 = 13.

Now let’s check out Totcharms versus Weight:

Fortunate |> ggplot(aes(x = Weight, y = Totcharms, shade = Field)) + 
geom_point(measurement = 3) +
labs(x = 'Weight (g)', y = '# Charms') -> p2
Scatterplot of Totcharms versus Weight.
Determine 10. A scatterplot of # Charms versus Weight of cereal coloured by Field.

This plot is noisy as we would have guessed. We have now a pleasant vary of weights, from a minimal below 30g to a most close to 70g. Discover there was one bowl that clocked-in terribly heavy. The outlier doesn’t have any apparent clarification, but when we dig slightly deeper and plot Weight versus Bowl we could achieve some perception:

Fortunate |> ggplot(aes(x = Bowl, y = Weight, shade = Field)) + 
geom_point(measurement = 3) + ylim(5, 75) +
labs(y = 'Weight (g)') -> p3
Scatterplot of Weight versus Bowl.
Determine 11. Scatterplot of Weight versus Bowl coloured by Field

We see that the extra-heavy bowl was the final Bowl = 12 of Field = 1. The origin of that exact knowledge level has sadly been misplaced to the sands of time, however taking into account that it was the primary field the crew had ever completed, close to the tip it could have been troublesome to evaluate how a lot cereal was left, and maybe all the rest was dumped into that closing bowl—I do the identical factor at breakfast on a regular basis once I get near the tip of a field of cereal. If that twelfth bowl of 70g had been cut up into (say) two bowls of 40g and 30g, respectively, then there would have been two containers that made all of it the best way to 13 bowls as a substitute of only one, and perhaps the fashions beneath would have match the info barely higher. Alas! We’ll by no means know. Such is the scientific enterprise.

Whereas there isn’t a lot of a linear affiliation between Totcharms and Weight by themselves, there’s a hidden relationship between Totcharms, Bowl, and Weight which may greatest be explored with a 3D visualization:

fig <- plot_ly(Fortunate, x = ~Bowl, y = ~Weight, z = ~Totcharms, shade = ~Field) |>
add_markers() |>
structure(scene = record(xaxis = record(title = 'Bowl'),
yaxis = record(title = 'Weight (g)'),
zaxis = record(title = '# Charms')),
legend=record(title=record(textual content='Field')))
Static 3D scatterplot of Lucky Charms data
Determine 13. (Static) 3D scatterplot of Fortunate Charms. Go attempt the interactive model!

Plots in 3D are super-cool, however the above static show doesn’t do the info justice. I’ve arrange an interactive model of the plot on the following hyperlink which ought to work in most cellular/desktop browsers:

Interactive Fortunate 3D Scatterplot

Please go there, spin the info round, zoom, pan—test it out. For those who spin it round good you will note that the dots scatter loosely a couple of flat airplane in 3D-space. That is precisely the form of relationship we’re on the lookout for in a a number of linear regression mannequin (we’ll get to that in a minute).

Mannequin becoming

Now let’s attempt to quantify the linear relationship between these variables. We’ll begin with a easy linear regression mannequin relating Totcharms to Bowl.

For Bowl

Right here is the mannequin:

mod1 <- lm(Totcharms ~ Bowl, knowledge = Fortunate)
## Name:
## lm(formulation = Totcharms ~ Bowl, knowledge = Fortunate)
## Residuals:
## Min 1Q Median 3Q Max
## -16.7629 -5.7629 -0.4327 6.2277 22.2277
## Coefficients:
## Estimate Std. Error t worth Pr(>|t|)
## (Intercept) 55.1309 2.1237 25.960 < 2e-16 ***
## Bowl -2.6698 0.2985 -8.945 4.81e-13 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Residual normal error: 8.313 on 67 levels of freedom
## A number of R-squared: 0.5442, Adjusted R-squared: 0.5374
## F-statistic: 80.01 on 1 and 67 DF, p-value: 4.807e-13

We see that Bowl is strongly linearly related to Totcharms. The slope on Bowl is roughly −2.7, in different phrases, for every extra bowl of Fortunate Charms eaten we estimate the common Totcharms to lower by 2.7 charms. Our coefficient of willpower is = 0.5442, that’s, roughly 54% of the variance in Totcharms is defined by the regression mannequin with Bowl as a predictor. Subsequent we actually ought to incorporate a correct residual evaluation however we’re going to skip it. Suffice it to say that the residual plots are comparatively well-behaved. Let’s try a fitted line plot with confidence bands for the regression line (the default):

p1 + geom_smooth(technique = "lm", aes(group=1), color="black")
Fitted line plot with confidence bands for Totcharms versus Bowl
Determine 14. Fitted line plot with confidence bands for Totcharms versus Bowl

That’s a pleasant relationship with a transparent lowering development.

For Weight

We’ll do the identical factor for Weight, ignoring Bowl in the meanwhile. Right here we go:

mod2 <- lm(Totcharms ~ Weight, knowledge = Fortunate)
## Name:
## lm(formulation = Totcharms ~ Weight, knowledge = Fortunate)
## Residuals:
## Min 1Q Median 3Q Max
## -27.0151 -8.7745 0.6901 7.8328 24.4701
## Coefficients:
## Estimate Std. Error t worth Pr(>|t|)
## (Intercept) 22.1370 10.5650 2.095 0.0399 *
## Weight 0.3502 0.2256 1.552 0.1254
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Residual normal error: 12.1 on 67 levels of freedom
## A number of R-squared: 0.0347, Adjusted R-squared: 0.02029
## F-statistic: 2.409 on 1 and 67 DF, p-value: 0.1254

We don’t discover Weight to be a really helpful predictor of Totcharms by itself, which jives with the scatterplot we noticed earlier. We observe for reference that the slope on Weight is estimated at 0.3502, that’s, every extra 1g of Fortunate Charms corresponds to a median Totcharms improve of 0.35 charms. This sounds affordable: extra cereal, extra charms. The coefficient of willpower is fairly unhealthy: = 0.0347, in different phrases, roughly NONE% of the variance in Totcharms is defined by the regression mannequin with Weight as a predictor. That’s okay; Weight was extra of a supplementary system to assist management for variability within the cereal quantities. The residual evaluation right here seems to be not as unhealthy because it might have been, which is reassuring, and we must always anticipate just a few issues anyway given the intense observations on the excessive/low ends of the burden scale. For the sake of completeness we embrace one other fitted line plot:

p2 + geom_smooth(technique = "lm", aes(group=1), color="black")
Fitted line plot of Totcharms versus weight
Determine 15. Fitted line plot of Totcharms versus Weight coloured by Field

I initially deliberate to make use of the ggpubr package deal to place these fitted-line plots collectively and check out to avoid wasting house within the dialogue, however the plots had been cramped and never very informative. Anyway, that is what I used to be going to do:

ggarrange(p1 + geom_smooth(technique = "lm", aes(group=1), color="black"),
p2 + geom_smooth(technique = "lm", aes(group=1), color="black"),
align = 'h', labels=c('A', 'B'), legend = "proper",
widespread.legend = TRUE)

A number of regression

Now for the enjoyable half: we’ve explored the relationships Totcharms ~ Bowl and Totcharms ~ Weight individually, however what occurs if we put them collectively? Let’s discover out:

mod3 <- lm(Totcharms ~ Bowl + Weight, knowledge = Fortunate)
## Name:
## lm(formulation = Totcharms ~ Bowl + Weight, knowledge = Fortunate)
## Residuals:
## Min 1Q Median 3Q Max
## -12.8825 -5.4425 -0.9975 5.2475 26.5304
## Coefficients:
## Estimate Std. Error t worth Pr(>|t|)
## (Intercept) 33.3168 6.8655 4.853 7.78e-06 ***
## Bowl -2.7552 0.2796 -9.855 1.35e-14 ***
## Weight 0.4819 0.1452 3.318 0.00148 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Residual normal error: 7.754 on 66 levels of freedom
## A number of R-squared: 0.6094, Adjusted R-squared: 0.5976
## F-statistic: 51.49 on 2 and 66 DF, p-value: 3.363e-14

Test it out! Now Bowl and Weight are each strongly linearly related to Totcharms. The slope on Bowl is nearly an identical to what it was earlier than, −2.7, however the estimated slope on Weight has now elevated to almost 0.5 charms for every extra 1g of cereal. Our (adjusted) A number of has jumped to virtually 60%—that is exceptional contemplating the small pattern measurement (n = 6), the final noise stage of the dataset, and perhaps some questionable design decisions (each little marshmallow bit counts as 1, and so forth.). Looking back, it’s form of wonderful that the info didn’t end up rather a lot worse. Actual knowledge collected by hand within the wild are seldom so good-natured.

Including the regression airplane

The code for this visualization is a little more concerned than the opposite examples and has been omitted for brevity, however you possibly can examine all of it out on this GitHub Gist. Let’s get on with the plot:

3D scatterplot of Lucky Charms with added regression plane
Determine 16. 3D scatterplot of Fortunate Charms with added regression airplane

Once more: a super-cool plot however the static model doesn’t do the info justice. Take a look at the interactive model as a substitute:

Interactive Fortunate 3D with Regression Aircraft

Interactive 3D-plots are loads of enjoyable. I hope you take pleasure in enjoying with the graph as a lot as I’ve. As a closing comment, within the tl;dr assertion we claimed that the interplay between Bowl and Weight will not be important. The reader can affirm it isn’t with the next (output omitted):

abstract(lm(Totcharms ~ Bowl * Weight, knowledge = Fortunate))

Dialogue and questions

I initially thought that both the entire thing would develop into a figment of my creativeness or the impact can be too small to detect with out LOTS AND LOTS of Fortunate Charms. I used to be unsuitable on each counts. The impact is actual, and it’s sufficiently big to detect with a handful of containers, actually two fingers full.

The Fortunate Charms drop-off

The total mannequin leads us rapidly to some startling conclusions. For instance, what number of charms can we estimate within the first bowl of a field of Fortunate Charms? We noticed earlier that the common Weight on this research was 46.3g. When Field = 1 the mannequin estimates the common Totcharms to be

33.3168 + (-2.7552)*1 + 0.4819*46.3
## [1] 52.87357

That’s, round 53 charms within the first bowl of cereal—Mmm, mouth’s watering already. What in regards to the final bowl? Okay, not each field made it to Bowl 13, however all of them made it to Bowl = 11. What number of charms?

33.3168 + (-2.7552)*11 + 0.4819*46.3
## [1] 25.32157

WOW. 25.3 charms on common. This corresponds to a 52% discount in charms from the primary bowl to the eleventh. No, it was most positively not my creativeness. Neglect a number of linear regression fashions and fancy 3D plots, a hungry toddler might detect this distinction sporting a blindfold.

Subsequent query: Why is there a drop-off? An evaluation on bodily grounds would possibly go one thing like this: Think about a field of Fortunate Charms to be a easy mechanical combination of frosted toasted oats and marshmallows. Many exterior forces agitate the field over the course of its lifetime, equivalent to jostling throughout transport, placement on the shop shelf, and transit to the house, to not point out exercise in and across the cabinet. This inevitably results in a shifting of contents, with the marginally much less dense marshmallows migrating towards the highest of the field, and the denser toasty oats settling towards the backside.

This rationale is logical, anyway. But it surely leaves some associated questions unanswered:

  1. Does the identical sample maintain true for the person allure sorts? (A fast look suggests “No”.)
  2. Is the affiliation really linear, or would a extra difficult mannequin higher describe the connection?
  3. What different vital elements have we neglected?
  4. Are there methods an individual can use to decelerate the Fortunate Attraction drop-off?
  • Can we cleverly shake the field (by some means) to higher combine the marshmallows?
  • What about storage practices? Does it assist if the field is saved upside-down?
  • Or flat on its facet?
  • and so forth.

These open questions must wait for one more day.

Subsequent steps

Because the unique experiment in Summer season 2023, I’ve rerun the experiment a pair extra instances with different teams of scholars. The primary was in November 2023 with center schoolers on YSU MegaMath Day. I failed to offer the MegaMath college students very particular directions and earlier than I knew all of it groups had eliminated the plastic baggage of cereal from the field and had been scooping from the center of the bag unfold flat on the tabletop. I couldn’t blame them; it’s simpler to scoop cereal from the center with the bag out within the open. Sadly, this strategy utterly destroys any pure density sort-order which will have have been current, the important thing underlying ingredient we suspect is at play, which compromises the integrity of the experiment. Plus, I doubt anyone’s mother and father ever allow them to eat their Fortunate Charms that approach.

The second was in February 2024 with highschool college students at YSU MathFest in a sequence of two workshops. This time I used to be prepared for them. I put collectively and distributed a knowledge assortment sheet (which you’ll find right here) with extra detailed steering. You possibly can try the additional datasets on GitHub within the extraData listing.

Transferring ahead, extra knowledge are wanted to higher estimate the Fortunate Attraction drop-off, and it might be fascinating to check methods for distributing the charms extra uniformly all through the field. If profitable, the primary bowl of the field may not be so magical, however alternatively, perhaps these closing bowls received’t really feel like such a chore ready to open the subsequent model new field of Fortunate Charms!


This experiment and these outcomes wouldn’t have been doable with out the infectious enthusiasm and tireless consideration to element of all 4 STAT 3743 college students in Summer season 2023: Brenna Brocker, Kate Coppola, Gavin Duwe, and Haziq Rabbani. I thank them for mountaineering down this statistical path with me. I’d additionally wish to thank the Division of Arithmetic and Statistics at Youngstown State College for supporting each this analysis and extra knowledge assortment at YSU MegaMath Day and YSU MathFest.


In case it isn’t already abundantly clear, the creator is a Fortunate Charms fan, so too are the 4 college students. The outcomes reported right here weren’t and are usually not meant as a critique of Common Mills, Inc., its subsidiaries, their manufacturing facility manufacturing requirements, nor the effective people and robots gainfully employed there. We’re all sure by the identical Legal guidelines of Physics, and that features containers of breakfast cereal.

And full disclosure: I’ve taken a peek on the additional knowledge collected within the reruns of the experiment. From what I can inform the impact remains to be current, nevertheless it isn’t as dramatic. I don’t know if it is because the impact is actually smaller than what we initially estimated, or whether it is by some means associated to the info assortment protocol within the center/highschool setting. Solely time — and extra knowledge — will inform.

References and code examples

In placing collectively this text I attempted to maintain a file of the locations I went to seek out code to construct the plots that I needed and beneath is a largely full record, however perhaps I missed some hyperlinks. For those who discover one thing I missed, then please alert me within the feedback and I’ll repair it.


How Fortunate is a Bowl of Fortunate Charms? was initially revealed in In the direction of Knowledge Science on Medium, the place persons are persevering with the dialog by highlighting and responding to this story.

Supply hyperlink


Please enter your comment!
Please enter your name here