Interactive Module · Label Literacy

The Words on the Carton

Which claims carry a rule, and which are only decoration.

A supermarket refrigerated aisle seen head-on: a chilled case stacked with egg cartons labeled Farm Fresh, All Natural and Pasture-Raised, dairy coolers on both sides. The opening scene of the module.
Type Interactive module · Branching
Subject North American egg labeling
Role Sole designer & developer
Build Self-contained HTML · 18 narration files
Live · Try it yourself

The full module runs right here: 12 screens, 5 endings, and the measurement layer described below.

Open in a full tab →
01 · What it is

Two kinds of language sit on the same carton, and they look identical.

Farm fresh. All natural. Happy hens. Nobody regulates any of them. They're marketing, printed in the same typeface as everything else.

Cage-free. Free-range. Pasture-raised. Each of these has a rule behind it, and the rules are narrower than the pictures suggest.

Twelve screens separate the two, then turn the carton over and read the stamped code on the back. Five branching endings, depending on which cartons the learner opens and in what order.

02 · How it's built

One file. No third-party requests. Nothing phoning home.

Self-contained

The module ships as a single HTML document with its media bundled alongside. Nothing is fetched from a third-party server at runtime: no CDN, no web fonts, no analytics. What you open is what runs.

Narrated throughout

Eighteen narration files, twelve minutes and nineteen seconds in total, written to be heard rather than read aloud off the screen.

Instrumented, not surveilled

Thirty-eight measurement points are designed and wired. None of them transmit from this copy. The data stays in the browser. The instrumentation is there for the day there's a real study to run, not to quietly collect in the meantime.

Final check · 179 of 179 passed
13 / 13
Static checks
166 / 166
Runtime checks
38 / 38
Instrumentation points
0
External requests (this copy)
03 · The part that mattered

The build passed. Then I checked the sources, and found three real errors.

Before publishing I pulled all sixteen cited figures and read them against their original sources: USDA memos, welfare research, advocacy analyses. I expected a clean pass. I got three corrections.

The worst one wasn't a typo. We had written that USDA defined pasture-raised in 2025. The source memo says the opposite: third-party certification is required precisely because no single definition exists. The claim wasn't slightly off. It was inverted.

4 screens and 5 narration files were rewritten and re-recorded. Then the whole check suite ran again, clean.

Why it nearly slipped

Eighteen narration files were already recorded. And narration spells numbers out as words: forty-eight percent, not 48%. Searching the on-screen text for a wrong figure doesn't surface the audio that says it.

A text-level find-and-replace would have left the voice track confidently stating the corrected screens' old numbers.

Verification isn't due at publication. It's due the moment something lands in a medium you can't quietly edit.

A few of the sixteen, as verified

No USDA definition of pasture-raised. Since April 2025, graded cartons carrying the claim need third-party certification.

USDA AMS QAD 709 (2025-04)

45.7% of US hens were cage-free as of June 2025.

USDA

Moving hens out of cages is modeled to cut disabling pain by 64% and hurtful pain by 57%, an estimate labeled as one.

Welfare Footprint Project (modeled)
04 · Tone · What I held to

This subject makes it easy to lecture. I decided not to.

No guilt

Nothing in the module implies the learner has been buying wrong. The premise is that the label is confusing by design, which it is, not that the shopper wasn't paying attention.

No game show

No points, no buzzers, no streaks. Choosing a carton is a reading exercise, and dressing it as a quiz would have made the wrong thing feel like the goal.

Both sides carry the same weight

Where the evidence is contested, both readings get the same amount of room and the same tone. The module hands over a distinction; it doesn't hand over a conclusion.

05 · Honest about outcomes

I said I'd only claim what I could support. So I built the support.

The module shipped with its measurement wired but silent, because collecting data with no pathway and no consent would have been theater. Later I switched it on for real. Four things came out of that.

The module had made a promise first. Its opening screen says nothing leaves your browser, and that was true. Turning measurement on would have made the sentence false for everyone who had trusted it. So this copy is untouched, and a separate measured copy runs with its own first screen saying so. Each copy tells the truth about itself.

Measurement's first finding was about the module, not the learners. Lining up what the module said it recorded against what actually arrived surfaced three defects that every on-screen check had missed. The build looked fine and reported wrong. Without measurement I would never have known, because there is no way to notice a number you have never seen.

What I can claim now. What people get wrong before taking the module is a question with an answer available, recorded in a standard form another researcher could query.

What I still can't. The early records are my own test sessions, so the effect on real shoppers stays an open question. The next step is running it inside an LMS, where learners are identified properly.

When measurement would falsify what the screen has already told the user, the sentence is not the thing that gives way.

Read the front. Then turn it over.

Twelve minutes in a browser tab. Nothing to install, nothing to sign up for.

Open the module → See other work
Send me a message

Let's talk.

Hiring, a project, or a question about how something on this site was built. It reaches me directly and I answer every one.

Prefer email or LinkedIn? (click to copy) · LinkedIn