The Boonie Conundrum

Subtitle: Monte Carlo Simulation of a Conspiracy

This is the tale of the Great Boonie Conspiracy in which we show through the mathematics of the Gompertz Survival Function that all conspiracies must fail. It's the story of a coverup by people who didn't cover up and were exposed in the end.

The Boonie Story

The high school is an imposing brick building with soaring white columns and a semi-circular drive enclosing an expansive lawn with tall shady oak trees. Go around to the back and you’ll find the sports field where Boonie led the boys’ soccer team.

One of Boonie’s responsibilities as team captain was to organize the fundraising car washes. The year this happened, Boonie decided to spice things up a bit by convincing the team to advertise the car wash by standing in the middle of the main street through town wearing only very skimpy shorts and sandals. Their “Car Wash” signs just barely covered the shorts. It’s not clear whether people were more offended by the lack of clothing or the fact they were actively blocking traffic. The school answering machine rapidly filled with angry messages.

Monday morning’s school announcements included one for Boonie to report to the principal’s office. Principal S. demanded Boonie apologize to the town by writing a letter to the editor, and so Boonie did as he was told. Here’s a lightly edited version:

Saturday the Boys Varsity Soccer had a car wash outside of the high school.

Unfortunately, what we thought was fun and games turned out to be very offensive.

Children of all ages saw us strutting around in our sports shorts; we didn’t consider the consequences of such immature humor.

Kids our age have been having high school carwashes to support our teams, and what we thought was the norm turned out to be disastrous.

It went on from there and seemed to be an abject apology. But if you read the first letter of each sentence you’ll see the start of a hidden message which isn’t exactly apologetic.

Now, if Boonie had kept this to himself maybe nobody would have noticed. The printed version didn’t have the start of each sentence aligned below the previous one as I’ve done here. It would have been difficult to extract the hidden message. But what’s the fun in keeping something like this to yourself?

This is Boonie’s conundrum. As soon as he started telling his close friends, the word got around the school and everyone could read and decode the hidden message. And Boonie had signed his name to the letter.

Modeling the Spread of Rumors, Lies, and Innuendo

As soon as the rumor leaped across the nearly impenetrable student/parent information barrier, Roger and I sketched up a graph something like this on my whiteboard and began estimating how long Boonie had until he faced the wrath of Principal S. a second time.

We figured he had about three weeks, and it turned out we were right to within a day or two.

A simplified version might help explain this. Suppose there are five friends: Alex, Boonie, Channing, Drew, Ellison. A way to visualize this is through a matrix like this,

The row with a “C” in front (for Channing) has TT (true) in columns “Boonie” and “Channing”, but FF (false) for the others meaning Channing is friends with Boonie, but not Alex, Drew or Ellison. Next, we’ll add in a vector of people who know about the hidden message. In the beginning, only Boonie knows.

The highlighted column corresponds to the TT in the knowledge vector to the right of the Friends matrix and indicates everyone Boonie tells, in this case, Channing and Drew. You can multiply the Friends matrix by the rumor knowledge vector by taking the first entry in the vector FF and “multiplying” the entire first column of the friends. This makes everything for that column false, so put an FF in the first position of the output vector on the right after the equals sign. The next entry is TT because Boonie knows, and the column under “B” contains F,T,T,T,FF, T, T, T, F so those places where there’s a TT become TT in the output vector, but FF always remains FF. The remaining entries in the knowledge vector are FF so they don’t contribute anything.

Simulate the spread of the rumor from day to day by repeating this process. On the second day, Boonie, Channing, and Drew are all in on the rumor, so if any one of them tells someone else, that person knows. In other words, a single TT in the yellow highlighted region on the “A” row is sufficient for Alex to know. Drew knows and Drew is friends with Alex, so Alex hears about the story. The reason we put a TT in the Boonie row and column is it keeps Boonie in the know at each step. All of the entries on the diagonal are true for the same reason.

Rumors don’t spread quite this quickly. We have motive, but not opportunity yet. Friends may get together during the school day, but there might be someone else (a teacher, Principal S.?) or another reason the message isn’t passed on. To simulate this, we’ll create an opportunity matrix the same size as the friends’ matrix with mostly FF’s but a few TT’s where the opportunity exists. The opportunity matrix changes randomly every day, simulating different interactions between students. Now if there is a TT in both the friends’ matrix and the opportunity matrix, the rumor expands.

We also need a way to transmit the message from students to parents to teachers to Principal S. A slight simplification is to remove the parents layer because there is about a one-to-one correspondence between students and parental units. That’s not quite true, but good enough for now.

Transmission from students to teachers is a matrix with the same number of rows as there are teachers, the number of columns corresponding to the number of students, and populated with TT’s and FF’s according to whether a student is a ratfink or not. Last, we’ll have a one row matrix (vector) which passes information from the faculty to Principal S. Most of the teachers can be considered ratfinks.

To recap, the simulation generates a random student Friends matrix, a Teacher friends matrix, and a Student-Teacher crossover matrix. The code generates rumor knowledge vectors for students and teachers, and a scalar for Principal S. They are all set to false except for the Boonie entry. Every day, the rumor spreads using the friends matrices and random opportunity matrices until it reaches Principal S. and Boonie gets a second trip to the office.

Experimental Results

To run the simulation we need estimates of the interactions between students, teachers, and Principal S. I used these:

With all that, this is a plot of a typical run. (Octave code boonieSim.m)

In 14 school days, or almost three weeks, the rumor travels from Boonie to Principal S. Only 16% of the teachers and 2% of the students (about 30) have heard the story, yet Boonie gets caught anyway.

If you’d like to recreate the simulation, download and install Octave, and then run the function boonieSim.

While working on the Manhattan Project, Stanislaw Ulam developed a method to study the motion and energy of atomic particles. It couldn’t give a precise answer but gave statistical approximations. By running a simple experiment on the ENIAC multiple times he was able to gain insight into the overall properties. Nicholas Metropolis suggested a secret code name for the process, “Monte Carlo” because of the random nature of the method.

We can perform Monte Carlo experiments with the Boonie rumor, too. Since the friends and opportunity matrices are generated randomly each time the function is called, the results will be slightly different at the end of each run. By repeating the experiment many times, we start to see patterns.

In this Monte Carlo experiment, I ran the same Boonie rumor function 1000 times. The peak seems to occur around 20 days, and the longest he got away with it is 80 days, but he always gets caught. In fact, after 40 days, there are fewer and fewer cases, meaning that Boonie is very unlikely to make it longer than 40 days in general. Monte Carlo experiments are useful for obtaining statistical insights into problems. You can also change the experiment by adjusting some of the parameters such as studentFriendship probability to see how sensitive the outcome is to a small change.

On the Viability of Conspiratorial Beliefs

In this simulation Boonie always gets caught. But what about other conspiracies? Was the moon landing faked? Neil deGrasse Tyson says many people saw the Saturn V liftoff, plenty of documents and other evidence is still available, and there were thousands of people at NASA who designed the rocket and its subsystems. In the end, he says it would be easier to send astronauts to the moon than to try to maintain the silence of all those engineers.

David Grimes, from Oxford University, published a paper in PLOS ONE, On the Viability of Conspiratorial Beliefs in which he derived an equation for the survival time of a conspiracy theory. It depends on the number of conspirators, the amount of time since the beginning of the conspiracy, and an intrinsic probability of discovery common to all conspiracies. A faked moon landing would have been uncovered in about 3.7 years. His equation is

L(t,N(t))=1et(1ϕN(t))L(t,N(t)) = 1 - e^{-t \left( 1-\phi^{N(t)} \right) }

where N(t)N(t) is the Gompertzian survival function,

N(t)=N0eαβ(1eβ(t+te)).N(t) = N_0 e^{ \frac{\alpha}{\beta} \left( 1 - e^{\beta (t + t_e)} \right) }.

LL represents the probability of leakage at time tt and ϕ\phi is the Poisson distributed mean number of failures per unit time. The Gompertz function N(t)N(t) has parameters N0N_0 for the initial number of conspirators, the average age of the conspirators tet_e at the time of the event, and empirically derived constants α=104\alpha = 10^{-4} and β=0.085\beta = 0.085 which model how many conspirators take the mystery to their graves. The chance that the conspiracy outlives the conspirators declines rapidly with the number of people involved.

The Boonie Conundrum shows that while conspiracies do exist, eventually there’s a reckoning.

Conspiracy Theory Resources

With so many conspiracy theories running around on the internet we need a way to check and debunk stories. A good start is to Google it to see what comes up. For breaking news check multiple sources around the world (see List of news agencies). For in-depth analysis, scholarly articles are often good although they are sometimes locked behind paywalls.

The list below contains fact-checking organizations, and some articles on how to deal with conspiracy theories and people who believe them. But, even these should be taken with a grain of salt. Question everything!

Abbie Richards created the Conspiracy Chart to test your level of belief in reality.


Image credits

Hero: Atze Lourens, “What do religion, populism and conspiracies have in common?” Medium

The Conspiracy Chart: Abbie Richards 2021

Code for this article

boonieSim.m - Simulates the Boonie Conundrum



GNU Octave is a high-level language, primarily intended for numerical computations. It provides a convenient command line interface for solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with Matlab.

Posts using Octave

See all software used on wildpeaches →