Methodology
How the statistical analysis works, in plain language and with technical detail.
What is and isn't counted
The Bayesian analysis on this site uses two categories of observation:
1. Visits from April 16, 2025 onward. Every visit logged regardless of outcome. These form the bulk of the dataset.
2. Two prior visits in the week before April 16. Both violations. These were the impetus for this project: after witnessing two consecutive violations, I sought advice and was told to begin systematic documentation. I started tracking on April 16, which independently turned out to be a third violation. I have no photos and no exact dates for the two prior visits, but they were the only two visits I made in that window, and they are counted on that basis. Their entries in the log are flagged with an approximate-date marker and a note explaining the absence of contemporaneous documentation.
What is not counted: occasional photos I took across late 2024 and early 2025 of violations I happened to witness. During that period I did not record non-violation visits, so those photos are subject to selection bias — the implied rate would approach 100% by construction, since I only captured positives. Those entries appear in the log under "Pre-tracking — anecdotal photos" for evidentiary completeness only, and are excluded from the analysis below.
The Setup
Each daycare visit is an independent observation: either an illegal handicap parking violation is present, or it isn't. This is a classic Bernoulli trial, and the collection of all visits follows a Binomial distribution.
The Question
If handicap parking violations were rare — say they occur randomly at 5% of any given moment — how likely is it that I would observe violations on 6 out of 8 visits? And more importantly: given what I've actually observed, what should I believe the true violation rate to be?
Bayesian Analysis
Prior
We start with a prior — the uniform distribution over [0, 1]. This encodes total ignorance: before seeing any data, every possible violation rate from 0% to 100% is considered equally plausible. This is the most conservative choice and gives maximum weight to the data.
Likelihood
The data follows a Binomial likelihood:
where is the unknown true violation rate.
Posterior
Because the Beta distribution is the conjugate prior for the Binomial likelihood, the posterior is available in closed form:
This is the updated belief about the true violation rate after seeing the data.
Credible Interval
The 95% credible interval is computed from the inverse CDF (quantile function) of the posterior Beta distribution at 0.025 and 0.975. Unlike a frequentist confidence interval, this directly says: "there is a 95% probability the true rate falls in this range."
Bayes Factor
The Bayes factor compares two models: (the violation rate is exactly 5%) versus (the rate is unknown, drawn from the uniform prior). It is the ratio of their marginal likelihoods:
Under the marginal likelihood is simply . Under with a uniform prior it simplifies to via the Beta-Binomial conjugate identity. A Bayes factor above 100 is conventionally considered decisive evidence in favor of .
Frequentist Confirmation
As an independent check, a one-sided binomial exact test is also computed. The p-value is — the probability of observing at least as many violations as recorded, assuming the null hypothesis that the true rate is 5%. Both approaches reach the same conclusion.
Assumptions & Limitations
Independence: Each visit is treated as independent. This is reasonable since visits are spaced days or weeks apart.
Sampling: Visits are not scheduled around parking lot conditions — they are driven by childcare logistics. There is no selection bias toward or against violation times.
Binary outcome: Each visit is coded as violation/no-violation. When multiple vehicles are illegally parked (as has occurred), it still counts as one violation event. The true severity may be underestimated.
Baseline rate: The 5% null rate is a conservative estimate. Actual illegal handicap parking rates at compliant facilities are likely well below 5%. Using a lower baseline would produce even stronger evidence.
Observer coverage: I attend only a fraction of pickup/dropoff events at this facility. Violations during events I'm not present for are not captured, meaning the documented incidents are almost certainly an undercount.
Recall on the prior 2 entries: The two visits in the week before April 16 are counted based on personal recollection rather than contemporaneous records. Their dates are flagged as approximate. A skeptical reader can verify the conclusion is robust to their exclusion: with only the post-April-16 entries, the Bayes factor against the 5% null remains overwhelming.
Source Code
All analysis code and data are open source and reproducible. The Bayesian computation runs client-side with no external dependencies — you can verify it in your browser's developer tools. The site source is available on GitHub.