2019 · Problem B — Bottle Battles
Mass-balance ODE Policy modeling Scenario analysis Externality mathThe prompt, restated
A university (and, by extension, similar institutions) is considering banning the sale of single-use plastic water bottles on campus. Advocates of the ban argue it would meaningfully reduce plastic-waste exports, ocean pollution, and the carbon footprint of bottled-water production; opponents argue students will substitute other single-use beverages, that vending revenue is non-trivial, and that infrastructure investments (refill stations) won't fully substitute.
The team is asked to (1) build a model of bottle flows on a representative campus — purchase, use, recycle, landfill, litter — calibrated against a real institution's data, (2) model how campus behaviour responds to a ban (substitution to canned drinks, to reusables, to off-campus purchases), (3) quantify environmental impact (plastic-waste reduction, CO₂ savings) and financial impact (lost revenue, refill-station capex, recycling-program changes) over a 5-year horizon, (4) recommend whether the university should adopt the ban, with conditions, and (5) write a one-page brief to the university president.
Key modeling idea
This is a compartmental flow model (purchase → use → recycle / landfill / litter) combined with a behavioural-substitution layer. The interesting modelling decision is parameterising the substitution: when a single-use bottle becomes unavailable, some students buy a canned beverage, some refill a reusable, some go off-campus, and some skip the drink entirely. Each substitution has a different environmental cost.
Suggested approach
- Step 1 — Baseline flow model. $\dot P = B - (R + L + W)$, where $P$ is bottles in-use, $B$ is purchases, $R$ is recycled, $L$ is landfilled, $W$ is wasted/littered. Use a compartmental ODE (technique 6) or a discrete weekly time-step.
- Step 2 — Substitution sub-model. Define a vector $s = (s_{\text{can}}, s_{\text{reuse}}, s_{\text{off}}, s_{\text{skip}})$ summing to 1; each has its own per-unit environmental footprint (g CO₂ and g plastic).
- Step 3 — Calibrate with published campus-sustainability data: National Geographic estimates ~50B plastic bottles/year in the US (~17 per capita per year that go to landfill). Use a 10,000-student campus.
- Step 4 — Scenarios. No-ban / ban-with-refill-stations / ban-without / surcharge-only (e.g., +$0.10 fee). Run each over 5 years.
- Step 5 — Cost-benefit summary. Net CO₂ reduction, plastic-mass reduction, net revenue change, and one-paragraph qualitative effects.
Data sources to consider
| Source | What you get |
|---|---|
| AASHE STARS reports | Campus sustainability metrics — many universities publish bottle data |
| EPA Facts and Figures on MSW | US recycling/landfill rates for PET bottles |
| National Geographic plastic waste data | Per-capita single-use estimates |
| IBWA bottled-water industry stats | Per-unit production water + carbon footprint |
| University facilities reports | Refill-station counter data (Elkay, Brita) |
| Local recycling-MRF data | Actual recovery rates, often <30% |
Common pitfalls and judge commentary patterns
- Ignoring substitution. "Ban removes 100% of bottle waste" is naïve. The judges flagged this exact issue in their commentary.
- Static behaviour. Habits change over time — refill-station use is small in year 1 and grows.
- Cherry-picked recycling rate. PET recycling on campus is typically much lower than the 30% national headline number. Use observed campus data.
- No financial side. The president cares about both axes — papers that only do CO₂ get marked down.
- Recommending without conditions. Strong papers say "ban yes, if refill density > 1/200 students within X meters" — i.e., a contingent recommendation.
Python sketch
Discrete weekly flow simulation with substitution. Adjust constants for your chosen campus.
import numpy as np
WEEKS = 52 * 5
N_STUDENTS = 10_000
# baseline weekly purchases per student (illustrative)
buy0 = 1.5
# substitution shares under "ban + refills"
subs = dict(can=0.20, reuse=0.55, off=0.15, skip=0.10)
# per-unit footprints (g CO2 / g plastic), illustrative
fp = {"bottle": (83, 10), "can": (170, 0), "reuse": (3, 0), "off": (83, 10), "skip": (0, 0)}
def simulate(policy):
co2, plastic, revenue = 0, 0, 0
for w in range(WEEKS):
if policy == "none":
u = {"bottle": buy0}
else: # ban
u = {k: buy0 * v for k, v in subs.items()}
for kind, per_student in u.items():
n = per_student * N_STUDENTS
c, p = fp[kind]
co2 += n * c; plastic += n * p
revenue += n * (1.75 if kind == "bottle" else 0)
return co2/1e6, plastic/1e3, revenue # tCO2, kg plastic, $
print("no ban:", simulate("none"))
print("ban :", simulate("ban"))
Sensitivity & validation checklist
- Sweep the reusable-substitution share $s_{\text{reuse}}$ from 30% to 80%. Where does the ban stop helping?
- Use a +$0.10 surcharge instead of a ban — compare net impact and revenue.
- Vary recycling rate from 10% to 50%; does the recommendation flip?
- Compare against a real campus (e.g., University of Vermont post-ban data) for sanity.
- Confirm units throughout — kg plastic vs. g plastic is a classic mistake.