← Past problems · 2019 set

2019 · Problem B — Bottle Battles

Mass-balance ODE Policy modeling Scenario analysis Externality math

Read the official PDF →

The 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

SourceWhat you get
AASHE STARS reportsCampus sustainability metrics — many universities publish bottle data
EPA Facts and Figures on MSWUS recycling/landfill rates for PET bottles
National Geographic plastic waste dataPer-capita single-use estimates
IBWA bottled-water industry statsPer-unit production water + carbon footprint
University facilities reportsRefill-station counter data (Elkay, Brita)
Local recycling-MRF dataActual 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.

Related pages