Maya is fourteen. She just finished eighth grade and starts high school in September — a new school, bigger and louder than the middle school she just left, in a building she has never set foot in before. Her parents enrolled her in this summer program at the new school because her older sister told them she would have loved this at her age. Her sister is going to college in the fall as a physics major. Maya loves her sister. Maya is not her sister.
Maya does not like math. Something stopped clicking around fifth grade and never started clicking again. Her last report card had a C+ in pre-algebra and she felt good about the plus. Algebra 1 is on her schedule for the fall — she is dreading it. She has spent the last four years making sure adults know she is "not a math kid," because if she names it first, no one else gets to name it for her. She is not afraid of numbers. She is afraid of being asked to be wrong in front of people.
On Day 1 she walks into a classroom in the high school she will attend in the fall — a room that does not look like a classroom. Robots on every small group table. The walls have a few areas taped off and labeled but empty — Leaderboard, Bot Names, Rivalry Cards — as if the room is waiting for something to happen in it. Behind the teacher's desk, a printed PEMDAS reference poster is already up — the same one every middle-school math room has — along with a small Formula Reference card she'll learn to use later. Maya notices the poster, recognizes it from sixth grade, and looks away. She has no idea what any of the empty-labeled wall areas mean yet. The teacher waves everyone over and asks them to form a circle. Within five minutes Maya is standing in that circle, and the teacher is explaining how to play Circle Pass.
Speed · Welcome · The First Bot Drive
Week 1 · Play Lab + Boot CampSound and Movement: Circle Pass + Mirror Pairs
When Maya's turn arrives she claps once and lifts her left foot. The girl to her left copies it exactly, then adds a snap. By the third lap around the circle the room is loud and uncoordinated and nobody is performing — they are just doing it. In Mirror Pairs she gets matched with a boy named Devon who moves slowly enough that she can keep up; she moves slower for him on the swap. Nobody mentions math. Nothing is graded. Maya notices that her shoulders are no longer at her ears.
Name + One Word
The teacher asks everyone back into the circle. "Go around. Say your name and one word that describes how you feel right now." Maya can hear other kids saying things like "excited" and "good" and "ready." She does not feel those things. She is third from the end. By the time her turn comes she has decided to tell the truth.
"Maya. Tired."
The teacher nods once and moves on without commenting. Nobody laughs. Nobody asks why. Maya realizes she just said her own name in front of nineteen strangers and survived.
Pre-Task Diagnostic — Prior Knowledge Assessment
The framing the teacher gives is the only reason Maya is still in her seat: "This is not a test. There is no grade. You are filling this out so I know what I already know." Maya answers what she knows, writes "not yet" on three of the eight questions, and moves on. She does not look up. Nobody else looks up either.
| Q | Question (paraphrased) | Maya's answer |
|---|---|---|
| 1 | If 3 apples cost $1.20, what does 1 apple cost? | $0.40 |
| 2 | Plot (3, 5) on a coordinate grid. | (plotted correctly) |
| 3 | What is the slope of a line through (0, 0) and (2, 6)? | not yet |
| 4 | If a battery starts at 100% and drops 15% per minute, what is the charge at minute 3? | not yet |
| 5 | Find the distance between (1, 1) and (4, 5). | not yet |
Maya answers 4 of 8. The three she leaves are slope, linear decay, and the distance formula — every one of which she will be able to do by Day 5.
Driving Question Reveal + Team Formation
The teacher walks to one of the blank wall sections and unrolls a poster. Big block letters, large enough to read from the back of the room: "How can you use data, equations, and code to build a robot athlete that wins on math, not luck?" She reads it aloud once, slowly, and tapes it to the wall. Math, not luck. Maya reads it twice, the second time without meaning to. The teacher does not explain it. Then she points to the team rosters on the wall. Maya is on a team with Devon (from Mirror Pairs) and a girl named Iris who has bright orange shoelaces. The three of them walk over to their table together. Iris talks fast and decides faster; she carries a chewed-up Bic pen tucked behind one ear and is rumored to have built a Discord bot with her older brother during quarantine, which she does not bring up but also does not deny. Devon is quieter — moves and speaks at the same slow tempo he showed in Mirror Pairs; his dad is a long-haul mechanic, and Devon has spent enough Saturdays in a garage that he reads a small problem by listening before he touches it. Their bot is sitting in the middle of the table, cute and small — not what Maya thinks a robot is supposed to look like. Iris pokes it. It does not move.
Stat Card Distribution
Each student gets a paper card with four rows: Speed, Endurance, Turning, Power. All four start blank. Today they will only fill in the first one. The team has to land on one number. Iris (Coder this week) reads the budget rule off the teacher's board — "20 points total, all four stats combined. So whatever Speed we pick, we have 20 minus that left for the other three." Maya, who just watched her bot at Speed = 10 hit 50% motor power and miss the turn, says: "We saw 10 was too fast on the carpet — the bot overshot. And zero is dead. So somewhere in the middle." Devon, doing math in his head: "Six leaves us fourteen for Endurance, Turning, Power. That's enough for a real bot in three stats." Iris writes SPEED = 6 on her own card; Maya and Devon match. Not because anyone's certain. Because they have to commit to something to keep going, and 6 fits the test data they just saw. The teacher walks past, glances at the card, and names the practice: "Picking a number for one of your four stats — that's called stat allocation. You're going to do it four times this week, one stat at a time. The four numbers have to add up to 20."
STAT CARD · Maya · Team: Iris/Devon/Maya ───────────────────────────────────── SPEED __6__ ← filled today ENDURANCE _____ TURNING _____ POWER _____ ───────────────────────────────────── Total / 20: 6 of 20 allocated
Speed Stat Challenge — What Does Motor Power Actually Mean?
The formula goes on the board: Motor Power % = Speed × 100 ÷ 20. The teacher asks the class what 100% means in everyday life. A boy says "phone battery." A girl says "health bar in a video game." The teacher nods and points to the formula. "This number — what you're calculating — is the bot's motor power percentage. It tells you what fraction of the wheels' max power your bot is running at. 'Motor power' alone is a stat. 'Motor power percent' is what that stat becomes when you put it into the formula." Maya writes both terms in her journal — motor power and motor power % — without being told to. Before anyone calculates anything, every student writes a prediction for Speed = 10. Maya writes 50% — not because she did the formula, but because 10 is half of 20, and half of 100 is 50. She treats the answer like a guess. She is right and assumes she got lucky.
The teacher directs the students to a website and a webpage with the speed activity. They are told to work on their own devices, but that teams can work together.
| Speed | Maya's calc | Motor Power % |
|---|---|---|
| 1 | 1 × 100 ÷ 20 | 5% |
| 3 | 3 × 100 ÷ 20 | 15% |
| 5 | 5 × 100 ÷ 20 | 25% |
| 6 | 6 × 100 ÷ 20 | 30% |
| 8 | 8 × 100 ÷ 20 | 40% |
Sentence at the bottom: "Every 1 of Speed adds 5%. I can just multiply by 5 instead of doing the whole formula every time. Easier."
First Bot Drive — Speed in Real Life
The central question on the board and on the next webpage: does doubling your Speed double the distance the bot travels in 2 seconds? Before anyone touches a robot, Maya circles "yes — proportional" on her worksheet, because that's what the formula says. She does the same on the webpage. Then Iris uploads the code, Devon hits go, and they measure with masking tape and a tape measure — a starting line, a finish mark, and the actual cm read off the tape. At Speed = 3, the bot moves 18 cm in 3 seconds. At Speed = 6, it moves 44.6 cm. Maya wrote down 36 as the prediction. The actual is almost 9 cm farther. The formula was wrong. Or the bot was. Maya looks up from the worksheet and notices, against her will, that she wants to know which.
| Speed | Predicted (2s) | Actual (cm) | Ratio vs. Speed 3 |
|---|---|---|---|
| 3 | 18 cm | 18.0 cm | 1.00× |
| 6 | 36 cm | 44.6 cm | 2.48× |
Maya's written sentence at the bottom of the worksheet:
"Doubling Speed should have doubled the distance. It didn't — it went 2.48 times as far, not 2 times. The formula is close but not exact. The bot is doing more than the math said it would. I don't know why yet."
Free Code Time
For 45 minutes the teacher says nothing useful. She circles the room and asks one question per table: "What are you trying?" Maya's team tries to make the bot do a tight figure-eight, partly because Iris said it out loud first and Devon shrugged and Maya didn't want to be the one who killed the idea. It does not work. They try again with different numbers. It still does not work. Maya does not feel discouraged. She feels something closer to annoyed — annoyed in the way you get when a puzzle is right there and the answer is hiding. She has not felt that in school in a long time.
Goals Wall — Personal + Team
Three minutes to write one personal goal and one team goal. Post them on the wall. Maya writes hers in small block letters.
Personal: Talk in front of the team at least once this week without my voice shaking.
Team: Finish the figure-eight.
Endurance · Decay · Naming the Bot
Week 1 · Play Lab + Boot CampFailure Bow
The teacher goes first: she trips on purpose, takes an exaggerated bow, and the room erupts. Real or fake, big or small, doesn't matter. Maya's turn is fourth. She drops her pencil on purpose, bends to pick it up, and gives a very small bow. The room cheers anyway — loud, generous, not at her, with her. Something inside her unclenches one click.
Slow Down, Slow Down
The teacher calls a tempo and the room matches it. Slower. Slower. Slower than Maya thought a group of 18 teenagers could go. By the time they're moving in slow motion she can hear the fan.
Endurance Stat Challenge — Drawing the Decay
Each student opens the Endurance Discovery interactive lesson on a device. Eight slides. The first one shows an animated power bar draining out of the lesson's sample bot — called Bot #14, with Endurance = 6 — and only the first three minutes of data. The mission card says one sentence: "Figure out what rule controls this battery." On the Notice slide the full data appears: the bot loses exactly 21% per minute for three minutes, then suddenly stops dropping at 20%, even though the pattern says it should keep falling. Maya types what she sees. By the Model slide the lesson has revealed the rule — both the linear drop and the floor. The teacher pauses the room and names what they just discovered: "That straight downward line you just drew — same amount lost every minute — is called linear decay. The number that controls how steep the line is — how much you lose per minute — is called the slope. You're going to use both words again on Day 7 when we map this formula onto y = mx + b." Maya writes both terms in her journal. By the Explore slide she is plugging her team's E = 4 into the same formula on paper. On the Lock In slide she writes Endurance = 4 on her stat card and confirms.
"It drops the same amount every minute — 21%. But then it just stops at 20%. Like the battery has a floor. Even the formula isn't allowed to go below it, because then the bot would stop moving completely."
| t (min) | (20−E) × 1.5 × t | Raw P(t) | After floor |
|---|---|---|---|
| 0 | 0 | 100% | 100% |
| 1 | 24 | 76% | 76% |
| 2 | 48 | 52% | 52% |
| 3 | 72 | 28% | 28% |
| 4 | 96 | 4% | 20% (floor) |
| 5 | 120 | −20% | 20% (floor) |
Maya's sentence under the table:
"It loses the same 24% every minute — that's the slope. Our line is steeper than Bot #14's because our Endurance is lower. We also hit the floor a minute earlier. (I think the floor is the program saying *the bot still has to move even when it's tired*.)"
Program Endurance Into Your Bot
Iris uploads the starter code with the formula plugged in. Devon places Patience on the masking-tape start line. Each press of Button B fires one burst — the bot drives for a fixed window of time at whatever power the decay formula says is left, then stops and waits for the next press. The room is loud. Half the teams are just hammering B because it is fun to press buttons. At Patience's table, Devon presses B four times in a row without pausing. The bot skids forward in a single messy lurch. Maya looks at the numbers in her notebook — 44.2, 30.1, 17.5, 5.0 — and realizes she has no idea which burst was which. She writes them in the table anyway, guessing at the order.
The teacher walks past one table and sees the same thing: kids spamming B and a column of numbers that don't match the decay graph. She calls a quick freeze. "Right now a lot of us are just making the bot move. That's fine. But this activity is secretly about one question: does each burst shrink by the same amount the formula says it should? You can only see that if you fire one burst at a time and label each one." She holds up a sample data table with B1, B2, B3, B4 written down the side. "Reset your bots. This time, say the burst number out loud before you press the button."
Devon resets Patience and presses B once. "Burst one." Maya measures 44.2 cm and writes it next to B1. Second press: 30.1 cm at B2. Third: 17.5 cm. Fourth: 5.0 cm. The numbers fall faster than the line on her Endurance graph predicted. Maya watches the bot slow down and feels the drop, one burst at a time, instead of as a blur.
| Burst | Predicted (cm) | Actual (cm) | Gap |
|---|---|---|---|
| 1 | 44.6 | 44.2 | 0.4 |
| 2 | 33.9 | 30.1 | 3.8 |
| 3 | 23.2 | 17.5 | 5.7 |
| 4 | 12.5 | 5.0 | 7.5 |
Gap sentence at the bottom:
The formula said the bot would decay linearly. It did, but faster than the line. Maybe the motor loses more than 24 per round because of something the formula doesn't include — friction? heat? I don't know yet.
(Written after we re-ran the test one burst at a time like the teacher showed.)
Common failure mode. Students spam the button and record unlabeled distances; the decay pattern and burst-by-burst comparison never surface.
In-the-moment save. If you see multiple teams with one long skid instead of four bursts, pause and (1) restate the goal ("Does each burst shrink by the same amount the formula predicts?"), (2) model labeling bursts B1–B4 aloud, and (3) have them re-run the test with one press per measurement.
Role Rotation Briefing
Three roles on the board: Coder, Fabricator, Analyst. The teacher explains: "This week — Week 1 — every member of every team shares every role. You will take turns at the screen, take turns on the build, take turns with the data. By the end of this week, you will pick which role each of you commits to for Week 2 — and from there it rotates every Monday so every student holds every role at least once over the four weeks." Then she calls for the commitment now, on Day 2, so each team knows what's coming: "Talk for two minutes and write your Week 2 starting roles on the team card." Iris says it first: "I'll be Coder." Devon picks Fabricator without hesitation — he liked the cardboard yesterday. Maya gets Analyst; nobody argues. The teacher walks past and nods once. "Locked. Now go share every job this week so you know what the other two feel like."
TEAM ROLES · 4-WEEK CAMP
──────────────────────────────────────────────
Week 1 Week 2 Week 3 Week 4
──────────────────────────────────────────────
Iris shared Coder → Fabric. → Analyst
Devon shared Fabric. → Analyst → Coder
Maya shared Analyst → Coder → Fabric. ← me
──────────────────────────────────────────────
Week 1 — every role, every member, every day.
Weeks 2–4 — committed role, shifts each Monday.
The Analyst's data tells the Coder what to change. The Fabricator's setup determines whether the data is accurate. Maya reads her column twice. She knows what is hers starting Monday.
Bot Naming Ceremony — Generated by the Math
The teacher opens the Robot Team Name Generator on the projector and says one sentence: "The math will generate your bot's name. Not random — determined." The I-Do takes four minutes. The We-Do walks the whole class through sample inputs x = 4, y = 3, z = 2, working three formulas in sequence — a = 2x + y − 1, b = (a + z) mod 12, n = 3z² − x — and landing on Kinetic Falcons #8. This is where Maya catches both gotchas: she almost writes 2x as 2 + x, then catches herself; and when the teacher writes 3z² on the board she has to remember it means 3 × (z²), not (3z)². Then it is the You-Do, and every student plugs in their own values. Maya works on paper before touching the tool: x = 4 (M-A-Y-A), y = 5 (May), z = 3 (their team number). While she is double-checking, she notices Devon writing (3 × 3)² = 81 next to her arm. She does not say anything. She just slides her paper toward him with the order of operations written out. He looks, says "oh," and re-does it. They post all three of the team's calculated names on the wall. Iris reads them aloud. Maya's name is "Patient Foxes #23". Iris says, "Patient Foxes. I like it. Fits the Endurance build." Devon shrugs and nods. They write the full name on the sticky note, then shorten it for everyday use: Patience.
INPUTS x = 4 ← letters in "Maya"
y = 5 ← her birth month, May, written as a number (Jan=1, Dec=12)
z = 3 ← Team #3
ADJECTIVE a = 2x + y − 1
= 2(4) + 5 − 1
= 8 + 5 − 1
= 12 → adjective[12] = "Patient"
ANIMAL b = (a + z) mod 12
= (12 + 3) mod 12
= 15 mod 12
= 3 → animal[3] = "Foxes"
TEAM NUMBER n = 3z² − x
= 3(3²) − 4
= 3(9) − 4
= 27 − 4
= 23
GENERATED Patient Foxes #23 ← nickname: Patience
Sticky note on the Bot Names wall:
PATIENCE · Patient Foxes #23 · Team 3: Iris / Devon / Maya · Endurance focus
Yesterday Maya almost said "Patience" out loud as a guess. Today the math gave it back to her. She does not point this out. But she notices.
Inputs: x = 2, y = 5, z = 3. Compute n = 3z² − x.
Maya's work:
n = 3(3²) − 2
= 3(9) − 2
= 27 − 2
= 25
Answer: n = 25.
She writes her name on the slip and hands it to the teacher on her way out. Correct. Three students at the next table turned in 79 — they computed (3z)² − x = (3·3)² − 2 = 81 − 2 = 79, treating 3z as one base instead of recognizing that the exponent applies only to z. The teacher notes their names. She will revisit the misconception with them on Day 3.
Free Code Time
Patience completes a figure-eight on the fourth try. Iris cheers. Devon high-fives Maya without thinking about it. Maya does not flinch.
Name One Math Concept — Write the Calculation, Translate to Behavior
Four minutes. Name one math concept you used today. Write the full calculation. Share it with a teammate. Then explain what it means for your bot — not in formula terms, in behavior terms. Maya picks linear decay because she has had it in her head all afternoon.
Concept: Linear decay.
CALCULATION P(2) for Endurance = 4
P(t) = 100 − (20 − E) × 1.5 × t
P(2) = 100 − (20 − 4) × 1.5 × 2
= 100 − 16 × 3
= 100 − 48
= 52%
Translation to bot behavior:
"By two minutes into any match, Patience is at 52% power. That means halfway through, she is already only half as strong as at the start. If we want her to win in the last minute, we either reallocate Endurance higher, or we use a strategy that only needs short bursts."
Iris's only response: "Yeah. That changes Season 1."
Turning · Coordinates · The Distance Formula
Week 1 · Play Lab + Boot CampHuman Robot Programming Challenge
Pairs of students. One plays robot. The other gives instructions. Maya is the robot first; Devon directs her. "Move forward three steps. Turn 90 degrees left. Move forward two steps." She does — but each "step" she takes is a different size, and the 90-degree turn ends up at maybe 70 degrees, and she lands a foot off where Devon wanted her. They swap. Maya is more specific. "Move forward, heel-to-toe, four times. Pivot left until your shoulders face the door." Devon ends up closer. Still not exact.
Distance-Time Graphs + The Distance Formula
Two scatter plots side-by-side: Run A and Run B. The teacher says nothing — teams plot, then write one sentence about why the lines look different. Maya writes "Run B was slower." The teacher walks by, taps the paper, and says one word: "Why?" Maya looks again. The slope is shallower. She rewrites: "Run B's Speed allocation was lower — the slope is smaller, so it travels less distance per second." Then comes the distance formula on the arena grid. Maya catches herself adding |x₂ − x₁| + |y₂ − y₁| instead of using the quadratic. The teacher does not correct her. Iris does. Maya redoes it. Once the grid is on the board the teacher names the practice: "Every point on the arena is a coordinate — an (x, y) pair. The first number is how far across, the second is how far up. Two coordinates and one formula give you the straight-line distance between them. You'll use coordinates in every match for the rest of the program."
Bot starts at (1, 1). Ball at (4, 5).
What is the straight-line distance?
First attempt (wrong):
|4 − 1| + |5 − 1| = 3 + 4 = 7 squares
Iris: "It's not a city grid. Use the c² one."
Corrected:
d = √((4 − 1)² + (5 − 1)²)
= √(9 + 16)
= √25
= 5 squares ✓
Sentence underneath: "Walking around the block is not the same as going through it. The Pythagorean way is shorter. Always."
Coordinate Navigation — Arc Approximation
The activity opens with a launch sequence that brings the morning's distance formula straight into the room. The arena is an 8×4 grid with the ball at (4, 2) — dead center. Teams pick one of the two starting corners: (0, 4) or (8, 0). Maya's team picks (0, 4). She does the math on her worksheet — d = √((4−0)² + (2−4)²) = √(16 + 4) = √20 ≈ 4.47 squares × 27 cm/square ≈ 121 cm. But the bot doesn't drive in cm — at SPEED = 6 it drives at a constant PWM for whatever number of milliseconds you tell it. So Maya does a second conversion. She flips back to her Day 1 Speed Stat Challenge notes: at SPEED = 6, Patience covers 1 cm every 33 ms (her measured calibration). Multiply: 121 × 33 ≈ 4000 ms. Iris programs Patience to cruise at 30% PWM for 4000 ms, then stop — using the Launch Sequence Quick Help page since she has never written a Cutebot program from scratch before. Patience drives. They measure: 8 cm short of the ball. Maya logs the gap. Before they move on the teacher says it once: "Save your launch sequence. Name it so you can find it. You will reuse this on Day 5." Iris hits the Share button in MakeCode, copies the URL, and pastes it into the team's notes — labeled LAUNCH-V1 · (0,4)→(4,2) · 121 cm · 4000 ms @ SPEED 6.
Then the embodied piece. Maya walks a 2-segment "arc" to a target spot (it looks like a triangle, not a curve), then walks an 8-segment one (it looks like a curve, almost). She gets that more segments approximate a curve but never equal one.
Back at the worksheet — before anyone reveals the formula — teams calculate turnRatio for T = 5: 0.2 + 5 × 0.02 = 0.30. Maya draws three arc paths on the grid for T = 2, 5, and 10, predicting where each will land. Only then does the teacher turn to the board and write the formula they all just used: turnRatio = 0.2 + T × 0.02. Maya already had it on her paper.
Now the MakeCode part. The team opens the Turning Test program. The defaults all start at zero — SPEED, ENDURANCE, TURNING — and the teacher says one thing: "If any stat is zero, the bot won't move. Fill them in from your stat card before you flash." Iris is on the device today — Week 1 has everyone trading roles, and right now it is her turn. She types in SPEED = 6, ENDURANCE = 4. Then they cycle through the Coverage Challenge: TURNING = 2, flash, place Patience on the start, press Button A. The bot roams for 15 seconds tracing gentle, long arcs; the RGB strip on top alternates blue when arcing left and green when arcing right. Maya tallies squares covered on the taped grid. Reflash with TURNING = 5. Reflash with TURNING = 10. With each higher T, the arcs get sharper and shorter. At T = 10, Patience hits the white border — and Maya watches it brake, back up, turn 115°, and keep going without anyone touching it. It recovered itself.
STARTING CORNER (0, 4)
BALL POSITION (4, 2)
STEP 1 — DISTANCE FORMULA
d = √((x₂−x₁)² + (y₂−y₁)²)
d = √((4−0)² + (2−4)²)
d = √(16 + 4)
d = √20
d ≈ 4.47 squares
d ≈ 4.47 × 27 cm/square ≈ 121 cm
STEP 2 — TIME CONVERSION (the bot drives in ms, not cm)
Day 1 calibration: SPEED 6 → 33 ms per cm
ms = 121 × 33 = 3993 ≈ 4000 ms
PROGRAM pwmCruiseControl(30, 30) for 4000 ms, then stop.
ACTUAL Patience stopped 8 cm short of the ball.
GAP NOTE Distance formula was correct.
The bot just doesn't always drive exactly what it's told —
calibration drift, wheel slip, or both.
| T | turnRatio | Arc style | Squares covered (15s) |
|---|---|---|---|
| 2 | 0.24 | Gentle, long arcs | 22 |
| 5 | 0.30 | Medium | 18 |
| 10 | 0.40 | Sharp, short | 11 |
Maya's synthesis sentence:
"Lower Turning covers more squares — bigger arcs. Higher Turning stays local — tighter, but doesn't go anywhere. I picked T = 5 to be middle for my stat allocation. And the bot recovers from the white border by itself — every time it hits the line it backs up, turns, and keeps going. We don't have to babysit it. That changes what I thought programming the bot meant."
Free Code Time
Maya pulls up the data dashboard and writes one full row by herself for the first time. She is not asking Iris if it's right. She just enters the number. On her way past the Goals wall she catches sight of her Day 1 sticky note and pulls a pen out of her pocket.
Personal: Talk in front of the team at least once this week without my voice shaking. ← done. Picked the bot's name on Day 2.
Collaboration Rating — Hold Up Your Number
Each person silently rates today's team collaboration: 1 = rough, 2 = okay, 3 = solid. Hold up your number at the same time so everyone sees at once. If anyone holds up a 1, the team takes two minutes to talk about what specifically happened.
Iris [3] ← solid Devon [3] ← solid Maya [3] ← solid No discussion needed.
Three threes. Nobody had to explain anything to anyone. Maya is the one who held hers up first. She did not check the others before she did.
Power · The Quadratic Surprise · Build a Scoop
Week 1 · Play Lab + Boot CampFinger Speed-Sums — Faster ≠ Better
Students stand in a circle. The teacher gives the rules: hold up some number of fingers; the goal is to call the group total first. Each round speeds up. Round 1 is slow — Maya counts everyone's fingers carefully, gets seven, and someone else calls it. Round 2 she sums faster and wins clean. Round 3 the tempo doubles; Maya shouts "twelve" before she has actually counted — the real total is thirteen. She loses the round to someone who took half a second longer. By round 5, she has noticed the pattern: when she pushed for speed, her error rate went up. Iris laughs. Maya laughs. Then the teacher pulls the class into the debrief: "When did being fast help you? When did it hurt? Where else in your life have you seen this pattern?" The class names sports, video games, music practice. The teacher writes one sentence on the board and leaves it there for the rest of the day: faster ≠ better. Maya copies it onto the inside cover of her journal. "Save this thought," the teacher says. "Power is next. Watch for where this shows up."
ROUND PACE MY CALL REAL RESULT
─────────────────────────────────────────
1 slow — 7 someone else won
2 medium 9 9 ✓ won
3 fast 12 13 ✗ rushed → wrong
4 fast 11 11 ✓ won
5 fastest 6 9 ✗ rushed → wrong
PATTERN Rounds I rushed → wrong (3, 5).
Rounds I let myself count → right (2, 4).
Faster ≠ better. Cognitive load is real.
NEXT Power Stat Challenge. Watch for where
"more = more" stops being true.
Power Stat Challenge — Ratio and Motor Speed
The formula goes on the board: Charge Speed % = Power². The teacher asks for a gut prediction for Power = 8 before anyone calculates. Maya writes 40 — she assumed it would be linear like Speed was, so eight times five. Then she does the math: 8² = 64. The teacher pushes the comparison: P = 4 gives 16. P = 8 gives 64. Doubling Power quadrupled charge speed. Maya looks down at the inside cover of her journal, at the sentence she copied moments ago — faster ≠ better — and realizes this is exactly where the teacher told her to watch for it. More Power doesn't just give you more kick. It gives you a lot more kick. Possibly more kick than the ball needs.
The Explore phase uses three tools at once. Teams open the Power Stat Challenge interactive lesson on a device, which walks them through the ratio table and the underlying formula chargePower = POWER². Maya fills in the worksheet column by column — Power, Power², resulting chargePower — then logs a prediction for each before any bot moves. Iris downloads the Power Test program to the bot — Week 1 still has the three of them trading off who's at the screen, and right now it's Iris's turn. They place the ball about 40 cm in front of the bot, set POWER = 2, and press Button A. The bot's ultrasonic sensor pings the ball, computes chargePower (4%), drives until it reaches the ball, strikes through it for 250 ms, then follows through for 190 ms. Maya measures the result. Reflash with POWER = 4. The chargePower jumps to 16 and the follow-through stretches to 260 ms — Patience arrives faster now, with a firm bump that pushes the ball forward maybe a foot before it stops. Reflash with POWER = 8. The chargePower jumps to 64 and the follow-through stretches to 400 ms. Patience races toward the ball at full PWM and slams into it. The bot stops exactly where the code told it to — at the ball — and the ball rolls forward just a couple of feet before stopping. Maya looks at the numbers: she just used a Power² of 64 to move the ball about twice as far as POWER = 4 (Power² = 16) did. Iris is impressed by the speed of the charge. Maya is more interested in the math: at POWER = 8 the bot moved 16× the Power² of POWER = 2, but the ball moved maybe 4× the distance. That's the diminishing return — without something to channel the impact, a bare bumper can only transfer so much energy to a ball. The formula's prediction is mathematically right; the bot just runs out of useful work to do. Before the room moves on, the teacher names the math: "A formula like chargePower = POWER² — where the input is multiplied by itself — is called a quadratic. That's why doubling POWER didn't double chargePower; it quadrupled it. And the comparison '16× the Power² but 4× the distance' is a ratio — two numbers held up against each other. You're going to need both words again on Day 7 when we put POWER² on a graph."
| Power | Linear guess | Power² (actual) | chargePower (SPEED=6) | Bot trial result |
|---|---|---|---|---|
| 1 | — | 1% | 25 | Crawls to ball. Ball doesn't move. |
| 2 | 10 | 4% | 26 | Soft bump. Ball rolls ~15 cm. |
| 4 | 20 | 16% | 34 | Firm bump. Ball rolls ~30 cm. |
| 8 | 40 | 64% | 134 | Hard hit. Ball rolls ~60 cm. |
Maya's sentence under the table:
"Doubling Power makes Power² four times bigger. But when I doubled Power, the ball only went about 2× as far. So the formula isn't wrong — the bot just can't kick that hard with a bare bumper. Same as Finger Speed-Sums. Past a point, more doesn't help. POWER is whatever's left after the other three stats. For us: 20 − (6 + 4 + 5) = 5. Power 5 is between P=4 and P=8 on the curve. The scoop probably matters more than one extra point. (Building one next.)"
Power Allocation — Stat Card Fill-In
All four rows on the stat card today, and there is no argument to have. Speed = 6 (Day 1), Endurance = 4 (Day 2), Turning = 5 (locked yesterday after the Coverage Challenge). The four stats must total exactly 20, so POWER = 20 − (6 + 4 + 5) = 5. The team doesn't pick it; the budget picks it. Maya does the arithmetic on her stat card and writes 5 in the POWER row. What she does now know — from the worksheet trials a half hour ago — is what Power = 5 actually means: chargePower = 25, follow-through = 295 ms, ball travel somewhere between her P = 4 and P = 8 measurements.
STAT CARD · Maya · Team Patience ────────────────────────────────────── SPEED __6__ ← Day 1 ENDURANCE __4__ ← Day 2 TURNING __5__ ← Day 3 (Coverage Challenge) POWER __5__ ← 20 − (6 + 4 + 5) = 5 (residual) ────────────────────────────────────── Total / 20: 20 of 20 — locked.
Scoop Build + Ratio Testing
Devon does most of the cutting. Iris does the lego and tape. Maya holds the cardboard steady and takes the measurements. They attach the scoop to Patience's front bumper. Then three kick-distance trials at Power = 2, 4, and 8. Maya records.
| Power | Formula prediction (P²) | Avg kick (3 shots, cm) |
|---|---|---|
| 2 | 4 | 3 cm |
| 4 | 16 | 44 cm |
| 8 | 64 | 160 cm |
Sentence at the bottom:
"The formula said going from Power 4 to Power 8 would multiply the kick by 4×. The actual was 160 ÷ 44 = 3.6×. Close but not exact — like before. The scoop probably wobbles at high power. Devon wants to reinforce it with tape."
Free Code Time
Maya re-reads her notes from all four days laid out next to each other. Four formulas. Four shapes. She makes a small chart on the back of her stat card.
SPEED ×5 line ENDURANCE goes down over time line that drops TURNING ratio thing different curves POWER squared hockey-stick 3 of them are lines. POWER is the only one that's not. And POWER is whatever's left after the other 3. P=2 → chargePower 4. P=8 → chargePower 64. Only 6 points apart but 16× as much kick. Where we end up on POWER actually matters a lot.
Skill Bridge — Today's Skill, Tomorrow's Use
Three minutes. Write one specific skill you used today and one specific moment you'll use it tomorrow.
"Today I tested Power = 2, 4, and 8 on the bot and wrote down how far the ball went each time. Our Power = 5 is between 4 and 8, so I know roughly how far one kick will go. Tomorrow when we test loadouts I won't have to guess — I can predict from the numbers I already have."
She underlined predict. She has not used that word about her own math in a long time.
Budget · Cold Recall · First Simulation
Week 2 · Day 1 — Pre-Season SetupConditional Simon Says — IF your stats…, THEN…
Five rounds. Every condition is built on the four stats. The teacher's rule: "Right answer, right reason. Wrong and fast doesn't count." Maya pulls out her stat card and lines up the values she has filled in: Speed = 6, Endurance = 4, Turning = 5, Power = 5.
Round 1. "IF Speed = 5, THEN stand up." Maya checks her card. Her Speed is 6. She stays seated. Four students stand. The teacher asks one of them "why?" — "My Speed is 5." Simple equality. Maya gets the shape.
Round 2. "IF Power is greater than 6, THEN stomp twice." Maya's Power is 5. Stays still. Two students stomp. Devon (Power = 7) stomps. The teacher asks: "What values of Power count?" A student answers "seven, eight, nine, ten." The teacher pauses. "What about Power = 6?" The student catches it: "No — strictly greater. Not equal." Maya marks this in her head — strict inequality, the boundary doesn't count.
Round 3. "IF Speed plus Endurance equals 10, THEN clap four times." Maya does the math: 6 + 4 = 10. She claps four times. Iris does not (her Speed + Endurance ≠ 10). Maya is one of seven students who clapped. The teacher asks the whole room a question and does not call on anyone: "What would have to change about your allocation for your hand to go up next time?" She lets the question sit. Maya thinks: if my Endurance had been 3 instead of 4, my Speed would have to have been 7. If Endurance had been 5, Speed would have to have been 5. She has just informally solved for a variable.
Round 4. "IF Power plus Turning is less than 8, THEN wave both hands." Maya: 5 + 5 = 10. Stays still. She glances at Devon — he is starting to raise his hands. She catches him: his sum is at the boundary, and Round 2 just established that the boundary doesn't count. He drops his hands. The teacher catches it too: "What if Power plus Turning is exactly 8 — do you wave?" A student answers "no — less than is strictly less." Same shape as Round 2.
Round 5. "IF Speed plus Power plus Turning plus Endurance equals 20, THEN cheer." Maya adds: 6 + 5 + 5 + 4 = 20. So does everyone else. The whole room cheers. The teacher waits a beat, then quietly asks: "Why did everyone just cheer?" Maya is the one who raises her hand. She says it out loud — first time today: "Because every allocation in the room adds up to 20. The equation is true for all of us." The teacher writes on the board:
SPEED + POWER + TURNING + ENDURANCE = 20
Maya copies it into her journal. Underneath, in her own handwriting:
"This is what's been true all last week. We just proved it with our bodies. The teacher called it a budget constraint. It's a line in four variables, whatever that means."
This activity is the deliberate foundation for systems of inequalities on Days 11–14. Today's S + P + T + E = 20 is a single linear constraint in four variables — every student's allocation satisfies it by design. On Day 11, the Commissioner introduces a competing constraint (e.g. "Endurance ≤ 4") and students must find allocations that satisfy both at once. The graphing work on Day 13 builds directly on the strict-vs-non-strict inequality distinction students practiced in Rounds 2 and 4 today.
Maya does not have any of this perspective yet. She doesn't know about Day 11. She is correctly noting that a line in four variables is unfamiliar to her, and recording the term budget constraint for later. The metanarrative arc — single constraint → system → graphing two constraints simultaneously — is yours to hold, not hers.
Two-Formula Warm-Up
Two numbers are already on the board when Maya walks in: Speed = 7 and Endurance = 5. Not her team's stats — a hypothetical bot. Three minutes, alone, no devices, no team. Use the formulas on the wall. Compute both outputs from memory. Maya picks up a pencil.
Q1 first. motorPower = SPEED × 100 ÷ 20 = 7 × 5 = 35%. Easy — she has been doing this all week. Q2: P(t) = 100 − (20 − E) × 1.5 × t. With E = 5: (20 − 5) × 1.5 = 22.5, so P(t) = 100 − 22.5t. She plots two points in her head — at t = 1 → 77.5%, at t = 2 → 55%. By t ≈ 3.5 the bot hits the 20% floor. Then Q3 — the one with no right answer: "What do both numbers together reveal about how that bot performs?" Maya writes for the full minute.
BOARD INPUTS Speed = 7, Endurance = 5
Q1 SPEED OUTPUT motorPower = SPEED × 100 ÷ 20
= 7 × 5
= 35%
Q2 ENDURANCE OUTPUT P(t) = 100 − (20 − E) × 1.5 × t
P(t) = 100 − 22.5 × t
t = 0 → 100%
t = 1 → 77.5%
t = 2 → 55%
t = 3 → 32.5%
t = 3.5 → ~20% (floor)
Q3 — "What do both numbers together reveal about that bot's performance?"
"Speed 7 is fast at the start — 35% motor power. But Endurance 5 means it loses 22.5% every minute. That's worse than ours. So this bot is fast early and tired fast. By 2 minutes it's at 55%. By 3.5 it's done. If I were on that team I'd try to score in the first minute and a half. After that the Speed doesn't help."
Open discussion. The teacher takes Q1 and Q2 in 30 seconds — easy, factual answers. Q3 takes ten minutes. Three students share. Maya is one of them. She does not raise her hand first, but when the teacher pauses long enough that the silence is going to break, Maya offers the line about the bot being "fast early and tired fast." Two other students build on it. No winner is picked. The teacher closes with: "Two numbers, four sentences of insight. That is what doing the math is for." Then hands out the Budget Constraint worksheet.
The Budget Constraint — Speed + Endurance + Turning + Power = 20
Two rival loadouts are revealed on the board— same 20 points, very different distributions:
| Team | SPEED | ENDURANCE | TURNING | POWER | Total |
|---|---|---|---|---|---|
| Kinetic Cobras 145 | 8 | 4 | 4 | 4 | 20 |
| Galactic Falcons 105 | 4 | 8 | 4 | 4 | 20 |
The teacher writes the budget equation underneath: S + E + T + P = 20. Then, in red marker: "What are you giving up if Speed = 8?"
Teams open the Budget Constraint interactive lesson and the paper worksheet at the same time. The instructions: design three hypothetical loadouts on the worksheet, then test them in the interactive lesson — calculate all four formula outputs for each. Maya picks three deliberately extreme loadouts so the trade-offs show up clearly. While she's working, she watches Devon adjust his draft — he is about to bump his Speed to 8 without dropping anything else. Sum: 22. She slides her pencil across his paper. "You added 2. You owe 2." He drops his Endurance from 6 to 4. Sum: 20. He nods.
| Loadout | S | E | T | P | motorPower | chargePower | decay slope | turnRatio |
|---|---|---|---|---|---|---|---|---|
| A · Speed-heavy | 8 | 4 | 4 | 4 | 40% | 16 | −24 | 0.28 |
| B · Endurance-heavy | 4 | 8 | 4 | 4 | 20% | 16 | −18 | 0.28 |
| C · Power-heavy | 4 | 4 | 4 | 8 | 20% | 64 | −24 | 0.28 |
| (ours, for reference) | 6 | 4 | 5 | 5 | 30% | 25 | −24 | 0.30 |
Maya's answer to the red-marker question, at the bottom of the worksheet:
"What are you giving up if Speed = 8? 12 points for everything else. If Speed = 8, then E + T + P = 12. That's only 4 each on average. So you're fast (40% motor power) but your kick is weak (16), your decay is fast (−24/min), and your turning is meh. You're fast and that's it. Every + has to come from a −."
Maya finishes the three loadouts and the answer sentence with ten minutes to spare. The teacher walks past her table, sees the worksheet flipped over, and points to the projector: "Crack the Bot. Try it." Maya opens Crack the Bot on her device. The puzzle: a mystery bot's five formula outputs are given, and the student has to reverse-engineer the four stat values that produced them. She has been doing forward calculations all week. This is the inverse problem. Her first bot: THE MARATHON — flavor text reads "Built to last. High endurance, balanced everywhere else."
GIVEN OUTPUTS (THE MARATHON) Motor Power = 20% Power at t = 3 min = 46% Turn Ratio = 0.28 Charge Speed = 16% Follow-Through = 260 ms Maya works each formula backward: Motor Power = S × 5 20 = S × 5 → SPEED = 4 Power at t = 3: 100 − (20 − E) × 4.5 = 46 100 − 46 = 54 54 ÷ 4.5 = 12 (20 − E) = 12 → ENDURANCE = 8 Turn Ratio = 0.2 + T × 0.02 = 0.28 T × 0.02 = 0.08 → TURNING = 4 Charge Speed = P² = 16 P = √16 → POWER = 4 Follow-Through check: 120 + P × 35 = 120 + 4 × 35 = 260 ✓ BUDGET CHECK 4 + 8 + 4 + 4 = 20 ✓ ANSWER (S, E, T, P) = (4, 8, 4, 4) "THE MARATHON"
Underneath, on the worksheet margin:
"THE MARATHON is the opposite of Patience. They put 8 in Endurance and 4 everywhere else. Their decay is −18/min, way slower than our −24. By minute 3 they're still at 46% — we'd be at 28%. If we play them, we have to score in the first 60 seconds. They beat us late."
At minute 45 the teacher pauses the room for the Misconception Correction. She does not name names — she just puts a wrong loadout on the board: Speed = 9, Endurance = 5, Turning = 5, Power = 4. Total: 23. "What's wrong here?" Three hands. The teacher takes one: "They added points without subtracting any." She writes underneath: "Every + needs a − somewhere else. The equation has to balance." Then she picks two team loadouts for whole-class discussion. Team Patience's loadout C is one of them. Maya stands up and explains the Power = 8 trade-off without looking at her paper.
Watch for the equals-sign error during the Explore phase — students adding to one stat without subtracting from another — but do not correct individual students when you see it. Save it for the public Misconception Correction at minute 45. The error caught publicly and anonymously becomes a teaching moment; corrected privately, it becomes a shaming one. This is the same misconception that will block algebraic balance work on Day 13.
Cold Recall Check — Five Problems, Individual, No Grade
Five math problems on paper. Individual. Ten minutes. The teacher says again: "This is not a grade. It is what I look at to know where the room is." Maya picks up the pencil. The first question makes her pause for a second — not because she can't do it, but because none of the problems are about bots. They are about recipes, cars, lines, budgets, and grid distances. Then she sees it: these are all the same things from this week, just wearing different clothes. She works the problems in seven minutes. Checks twice. Hands it in.
| # | Question | Maya's answer | Correct? |
|---|---|---|---|
| 1 | A line passes through (0, 4) and (3, 10). What is the slope? | m = (10 − 4) ÷ (3 − 0) = 6 ÷ 3 = 2 | ✓ |
| 2 | A recipe scales proportionally: 3 cups of flour makes 9 servings. How many cups are needed for 15 servings? | 3 / 9 = x / 15 → x = 5 cups | ✓ |
| 3 | A car drives at 75% of its maximum speed. The maximum speed is 120 km/h. What is the car's actual speed? | 0.75 × 120 = 90 km/h | ✓ |
| 4 | A 20-point budget assigns 7 points to one category and 6 to another. What percentage of the total budget is still unallocated? | 20 − 7 − 6 = 7 left; 7 / 20 = 0.35 → 35% | ✓ |
| 5 | Calculate the distance from (1, 1) to (4, 5). Show every step. | d = √((4−1)² + (5−1)²) = √(9 + 16) = √25 ≈ 5.2 | ✗ |
Score: 4 / 5. Question 5: Maya wrote √25 ≈ 5.2. The teacher circles the squiggle and writes underneath: "√25 is exactly 5. No rounding."
Maya looks at it for a long second. I rushed. I didn't even check that one. √25 is the easiest square root in the question. She'd written ≈ out of habit, like she'd been doing for the messy ones all week.
In the margin, in pencil, very small, where the teacher won't read it unless she looks for it:
"Slope = decay rate. Recipe = proportional. 75% = endurance left. Budget = budget. Distance = distance formula. These are the same five things from this week. Algebra was here the whole time. Next time, check if √x is a clean number before writing ≈."
The Cold Recall problems are deliberately written in non-bot contexts. This is the assessment that tells you whether students transferred the algebra from bot form to other contexts. A student who can compute P(t) for an Endurance value but cannot find a slope from two points has memorized a bot procedure, not learned algebra. A 4/5 with a rounding error — student got every concept but rushed on one arithmetic check — is a normal-good result for a student who arrived shaky on algebra a week ago. Don't overcorrect "Maya got 4/5" as a problem; the missed point is a real student behavior, not a scaffold failure.
Dashboard Introduction
The teacher pulls up the Velocity Arena Team Data Dashboard on the projector and walks the room through it using the Pre-Season Setup guide as her own teaching script. The dashboard has two panels stacked vertically. The top is STAT LOADOUT — four big stat cards (Speed, Power, Turning, Endurance), each with its formula written underneath and the computed output in red that updates live as you type a number into the stat. At the bottom of that panel, a budget bar tracks how many of the 20 points have been spent. Next to the budget there's a button: "Set as underdog (+2 budget for Season 2)" — the teacher tells them to ignore it for now; it will matter on Day 11. The bottom panel is SIMULATION LAB: a table with columns Round · Formula · Predicted · Observed · Gap and a form below to add new rows. One row per round per formula. The teacher demonstrates entering one example loadout on the projector, then sets the room loose: each team's Analyst opens the dashboard on their own screen and enters their team's actual stats. Maya types in Patient Foxes #23's numbers and watches the formula outputs compute themselves on her screen. "Wait, what's a row?" a student at the next table asks. The teacher gave a longer answer earlier — one row per round per formula — but the student missed it the first time. The teacher repeats it. Two other tables look up because they had the same question and didn't ask. The instruction wasn't bad. It just needed to be said twice.
STAT LOADOUT EACH STAT 1–20 · TOTAL MUST EQUAL 20 ────────────────────────────────────────────────────────────────────── SPEED 6 / 20 POWER 5 / 20 motor power = (pts/20)×100 charge speed = Power² / 2 · follow through Motor power: 30% Charge speed: 12.5 · Follow through: 295 ms TURNING 5 / 20 ENDURANCE 4 / 20 arc segments = Turning P(t) = 100 − (20 − E) × 1.5 × t turn ratio = 0.2+(T×0.02) Decay rate: 24 / min Arc segments: 5 Turn ratio: 0.30 BUDGET 20 / 20 ✓ [ Set as underdog (+2 budget for Season 2) ] ← ignore until Day 11
Per the teacher's walk-through, Maya copies the five logging rules into her journal before any round begins:
"1. Stat Loadout panel goes in before any round. 2. One row per round per formula in the Simulation Lab. 3. Predicted goes in BEFORE the round. 4. Observed goes in AFTER. 5. The gap field is a sentence, not just a number — name it in plain language ('0.5 sec slower than predicted') so the team can read it back later."
Simulation Matches: Your Loadout vs. Reality
Two minutes to commit. The teacher says it twice: pick one of the three hypothetical loadouts you designed this morning. No new designs. No deliberation. Team Patience confers fast. Maya argues for keeping their actual locked allocation (6 / 4 / 5 / 5) instead of swapping in one of the worksheet hypotheticals — "if we're going to test something, test what we're actually about to run in Season 1." Iris and Devon agree.
MakeCode setup — copy the full game code, plug in your stats. The teacher shares the canonical Velocity Arena game program — the same code that will run in every Season 1 match. Teams don't write it from scratch; they copy the full program and plug in their own stat values. Iris (Coder, this week) opens the share link, makes her own copy, and fills in the four stat slots from Maya's stat card: SPEED, ENDURANCE, TURNING, POWER. The four formulas are already wired in. The four behaviors — motorPower, decay curve, chargePower, turnRatio — all derive from the four numbers Iris just typed.
Three simulation rounds, three minutes each. No opponent. Just Patience running her own program, with Maya (Analyst) logging Simulation Lab rows in real time while Devon (Fabricator) places and resets Patience between rounds. Before each round, Maya enters the predicted column for every formula they plan to track. During the round, she watches; after it ends, she enters the observed column and writes the gap as a plain-English sentence.
| R | Formula | Predicted | Observed | Gap |
|---|---|---|---|---|
| R1 | SPEED | 30% motor power · reach line in 4 sec | 4.4 sec | 0.4 sec slower |
| R1 | ENDURANCE | 100% power at t = 0; 76% at t = 60s | 68% at t = 60s | predicted 76, got 68 — off by 8 |
| R1 | TURNING | turn ratio 0.30 → gentle arcs | arcs as predicted | matched |
| R1 | POWER | charge speed 12.5 → kick ~30 cm | kick 28 cm | 2 cm shorter |
| R2 | ENDURANCE | 52% at t = 120s | 44% at t = 120s | off by 8 again, same gap as R1 |
| R2 | POWER | charge speed 12.5 → kick ~30 cm | kick 25 cm at t = 90s | chargePower predicted no decay; kick dropped 5 cm — underlying motor power is what decayed, not chargePower |
| R3 | POWER | kick ~30 cm at fresh power · ~23 cm at t = 90s (per R2 finding) | kick 30 cm fresh · 23 cm at 90s | matched — corrected model holds |
Maya's note in the dashboard's Analyst observations field after Round 3:
"Round 2 showed us something we missed in Round 1. The kick formula doesn't drop over time, so we predicted the same kick distance at 0 seconds and 90 seconds. But the bot kicked WAY less far at 90 seconds. We were wrong.
Took me a minute to figure out why. The kick formula doesn't get tired, but the motor that's doing the kicking does. Patience is tired at 90 seconds, so even though the kick is the same NUMBER on paper, the motors don't have enough power left to actually make it happen.
For Round 3 we predicted differently — kick distance = chargePower times whatever endurance is left. That matched the bot. The formula wasn't lying. It just wasn't telling us the whole story."
Between Round 2 and Round 3, Devon stops resetting Patience for a second to do some quick math out loud. "Round 1 we got three kicks. Round 2 we got two. Round 3, maybe two again." Maya checks her dashboard and confirms — 3, 2, and yeah, probably 2 in the last round. Iris looks up. "And that's with NO opponent. In a real match with another team's bot racing us to the ball, we maybe get half of that. Two real chances per match." Devon nods slow. "Launch sequence has to win the race to the ball. Every time. If they beat us there, we're chasing them all match and we lose." Maya writes a new page in her dashboard notes — How Patience actually scores:
To score a goal, Patience has to do one of these — every time the ball is loose:
- Beat the opponent to the ball — fastest, cleanest launch wins the race.
- Have a clear kick — don't shoot with the opponent's bot in the way.
- Push the ball away from the opponent — if you can't shoot cleanly, push it where they can't reach.
- Block the opponent's path to the ball — defense buys time and steals their chances.
None of this matters in today's solo simulation. All of it matters starting Day 7. The launch sequence is the part we control most.
Post-match debrief — the teacher walks the class through the stats in order: Endurance, Turning, Power. Endurance first, because the decay caught most of the room off guard. Turning second, because that one mostly went as expected. Power last, because Power is the stat where the bot did something the formula didn't predict, and figuring out why took the most work. When the teacher gets to Power she asks Iris to share what Team Patience figured out, and Iris explains the kick-distance drop. Then the teacher turns to Maya: "Say back what Iris just said in your own words, then add to it." Maya does: "The kick formula doesn't get tired. The motor that has to carry the kick out does. Same number on paper. Different reality on the floor." The teacher writes the last sentence on the board.
Before anyone moves onto the next activity, the teacher hands out a half-sheet with two questions on it — the only piece of paper she will read tonight. "Two minutes. Individual. Hand it to me when you're done." Maya writes.
Q1. Your bot's Speed is 5 and Endurance is 3. Predict: is your bot moving faster in minute 1 or minute 3 of a match? Explain why using what you know about how Endurance works.
"Minute 1, way faster. Endurance = 3 means the decay rate is (20 − 3) × 1.5 = 25.5 each minute. At minute 1 the bot is still at about 74 (out of 100). At minute 3 it's down to about 23. Speed = 5 is the same number in both minutes, but the motor running that Speed gets weaker every minute. By minute 3 the bot is barely crawling."
Q2. Name one thing you observed about your bot's behavior today. What stat do you think caused it? What change would you make, and what would you expect to see differently?
"Patience kicked the ball about 30 cm fresh and only 25 cm at 90 seconds, even though our Power didn't change. I think Endurance caused it — the kick formula stays the same, but the motors making the kick happen get tired. If I could re-allocate one point I'd move it from Speed to Endurance. We'd lose a little cruise speed (motor power drops from 30 to 25) but our decay rate slows from 24 per minute to 22.5 per minute. I'd expect our kicks at 90 seconds to look more like our kicks at 0 seconds. Less drop-off."
Test Three Loadouts — Which One Matched Your Predictions Best?
The teacher writes the question on the board and steps back: "Which loadout matched your predictions best?" Then she circulates with a single question for any team she walks past: "What are you trying?" No more guidance. Teams reflash MakeCode with each of their three morning loadouts in turn and re-run the simulation, with Maya (Analyst) logging predicted vs. actual for every formula. Iris (Coder) handles the reflashing. Devon (Fabricator) places and resets Patience.
After Round 1, Iris says "Loadout A was best — Patience covered way more ground." Maya hesitates, then says: "But that's not what 'best' means here. Loadout A — we predicted 22 squares, she did 24. Off by 2. Loadout B — we predicted 18, she did 18. Off by zero. B matched what we predicted. A just moved more." Iris pauses, then nods. "OK. Yeah." The teacher passes the table and doesn't say anything.
| Loadout | Stats | Predicted (squares) | Actual | Gap |
|---|---|---|---|---|
| A · Speed-heavy | 8/4/4/4 | 22 | 24 | +2 |
| B · Endurance-heavy | 4/8/4/4 | 18 | 18 | 0 |
| C · Power-heavy | 4/4/4/8 | 15 | 11 | −4 ⚑ |
Maya's note under the table:
"Loadout B was off by 0 squares. Loadout C was off by 4. That's the biggest miss of the day — same thing I saw yesterday with Power = 8. The formula stops matching reality up there. Loadout A had the most movement but moving the most wasn't the question. The question was which one matched what we predicted. Today, B did."
The teacher calls a single 10-minute warning. The room doesn't quite hear, but Maya does, and starts closing the dashboard while Iris finishes her last reflash. At the buzzer, devices close. No summary. The teacher reads the journal prompt one time, and the room goes quiet for the Closing Ritual.
Name One Thing You Are Good At That Most People Do Not Know About
"What is one thing you are good at that most people do not know about? Be specific. Name the thing. Give a real example from your own life." Then she sits down at the back of the room with her own journal and writes alongside the students for five minutes of full silence. Maya sits very still for two minutes. Then she writes.
"I notice when stuff is about to break. Or when it is already broken and nobody knows yet. The toaster started smelling weird last fall and my dad was about to throw it out. I pulled the crumb tray and dumped it. Worked fine. My mom gave up on the bathroom sink draining for almost a year. Last spring I unscrewed the cover and pulled out a hairball big enough to fill a coffee mug. The drain has worked since. Nobody asked me to do either of these. I just noticed. I do not say I am good at this because then people will ask me to fix THEIR stuff and I do not want to fix their stuff. I want to fix MY stuff, when I want to. But I am good at it."
The teacher stops writing at the five-minute mark and opens the room. Volunteers first, one sentence each. Three hands. "I can identify any bird call in my neighborhood." "I can juggle four bean bags." "I can fall asleep anywhere — buses, classrooms, the dentist." Laughter, finally. Then the teacher reads from a list of two students who haven't shared today. They each give one sentence. Iris shares she can imitate her grandma's accent perfectly. Devon gets called and says he can name every starting lineup of the 2014 Detroit Pistons. Maya does not get called. The teacher built her shortlist during the silent writing minutes — she had been watching the room — and left Maya off it on purpose. Something about how long Maya sat still before she started writing told the teacher this reflection was a private one.
Field Geometry · The First Residual · The Loop Closes
Week 2 · Day 2 — Final Pre-Season PrepEquation Relay Race
Teams of 3 at whiteboards. On the board the teacher has written the Speed formula with a question mark where the value goes: motor power = (? / 20) × 100. Three steps, three people: Person 1 substitutes the given value, Person 2 does the division, Person 3 multiplies by 100 and calls the answer out loud as a percent. Wrong answer = team is not done. The teacher does the launch script slowly and refuses to give the Speed value until the last sentence. Then: "Round 1: Speed = 8. Marker goes to Person 1. Go."
Round 1 — Speed = 8 — Answer 40%. Iris is Person 1 for Team Patience. She writes (8 / 20) × 100, slaps the marker down, taps Maya on the shoulder. Maya is Person 2. She writes 0.4 × 100 — not 40 — and taps Devon. Devon calls out "forty percent!" They place second. From the table to their right, a different team yells "four thousand percent!" and laughter ripples across the room. Maya understands instantly — they wrote 8/20 = 40 instead of 0.4. She does not say anything. The teacher does not say anything either. The room teaches itself. After the laughter dies down the teacher points at the PEMDAS poster behind her desk: "That's why we run it as a relay — three people, three steps, in order. Parentheses, exponents, multiplication and division, then addition and subtraction. The acronym is PEMDAS. The team that yelled four thousand multiplied before they divided. Same numbers, wrong order, wrong answer."
Round 2 — Speed = 5 — rotated lineup — Answer 25%. Maya goes first this round (the teacher cycled positions). She writes (5 / 20) × 100. Devon does the division and writes 0.25 × 100. Iris closes and calls "twenty-five percent!" They place third out of four teams running. The top two advance to the Final. Team Patience is out. The teacher hands them Card A on her way past: "Speed = 17. Find motor power."
Maya does Card A in about twenty seconds. 17 / 20 = 0.85. × 100 = 85%. She slides it across to Iris and Devon. They both nod. The teacher walks by again and drops Card B on their table. This one is different — "Motor power = 35%. Find Speed." Iris reads it, raises her eyebrows: "It's running backwards." Maya stares at the formula for a second, then writes.
GIVEN motor power = 35%
FORMULA motor power = (Speed / 20) × 100
SOLVE 35 = (Speed / 20) × 100
Divide both sides by 100:
35 / 100 = Speed / 20
0.35 = Speed / 20
Multiply both sides by 20:
0.35 × 20 = Speed
7 = Speed
ANSWER Speed = 7
She did not plug 35 into the formula like Speed. She worked it backwards. She did not think about it as algebra. She thought about it as "I know the answer; what was the input?"
The final ends. The teacher calls time. She holds up Card B in front of the room: "Someone who worked Card B — what did you have to do differently to find Speed instead of motor power?" A student says: "You had to undo the formula." The teacher nods. "Card B answer: Speed = 7. Here's how it runs backwards: 35 = (Speed / 20) × 100. Divide both sides by 100. Multiply both sides by 20. Speed = 7." She pauses. "That is algebra. You just did it."
Official Stat Allocation — Interleaved Problem Set
Individual silent work. No team huddling. No formula sheet visible anywhere in the room. The worksheet itself has the six concept tags printed at the top with their definitions, problems below — Maya reads the definitions once before starting. The teacher reads the task once aloud: "Twelve problems. Before you calculate any of them, write the concept tag in the tag column. No tagging is an incomplete answer. If you have a question, write it on your paper — I will not be answering questions during the work period. Begin." Then she walks the room slowly with her clipboard, deliberately unhelpful. Hands go up; she does not meet eyes. After about four minutes, the room stops waiting for her.
| Tag | Definition (as printed) |
|---|---|
| unit rate | A fixed amount of output per 1 unit of input |
| linear decay | Output that decreases at a constant rate over time |
| linear function | Output that increases at a constant rate with a non-zero starting value |
| nonlinear function | Output that grows by a changing amount as input increases |
| proportional scaling | Output that scales in direct proportion to input from zero |
| ratio | A part-to-whole relationship within a fixed total |
Maya works in order. She gets the Speed problems first because she has done that formula a hundred times this week, and she tags them unit rate — the ÷20 step is the giveaway. She notices the worksheet writes the formula (S × 100) ÷ 20 — multiply first, then divide. The Relay this morning had it (8 / 20) × 100 — divide first, then multiply. Same formula. Sequenced multiply-first here so MakeCode doesn't trip on the decimal. And the shortcut she wrote on her Day 1 worksheet still applies: 100 ÷ 20 = 5, so (S × 100) ÷ 20 simplifies to S × 5. She uses the multiply-by-5 trick on the rest of the Speed problems and writes the long form once in the margin so the teacher can see she knows the formula too. She gets the Power square problems next and tags them nonlinear function, glancing at the definition ("output grows by a changing amount as input increases") to confirm. The Endurance decay problems take a little longer — she has to remember to use (20 − E), not just E — and she tags them linear decay. The trap waits at the Turn Ratio problems. Her instinct is to tag them unit rate, because of the × 0.02. Then she stops and re-reads the definitions printed across the top of her sheet. Unit rate: fixed amount per 1 unit, from zero. Linear function: constant rate, non-zero starting value. She writes 0.2 + (0 × 0.02) = 0.2 in the margin. Not zero. Linear function, not unit rate. She erases unit rate and writes linear function. When she gets to the Follow-Through problem a few rows later — 120 + (P × 35) — she catches the same shape immediately. Constant plus variable times multiplier. Starting value 120 ms, not zero. Same structure as Turn Ratio. Linear function on the first try. She just finishes when the teacher calls time. Two students at the next table finished the main twelve minutes ago and have been working through a digital version of the problem set. This version has immediate feedback on each tag and answer. Maya is not in that group. She is in the larger group that finished the paper version right when time is called.
Extra credit. The bottom of the worksheet has two chaining problems that reach back into the main twelve — find Question 6's motor speed %, and find Question 12's charge power. Each one asks the student to take a stat value from an earlier problem and run it through a second formula. Maya does not get to them. The teacher calls time as she's writing the last tag on Problem 12.
| # | Problem | Tag | Answer |
|---|---|---|---|
| 9 | Turn Ratio if T = 2? | linear function | 0.2 + (2 × 0.02) = 0.24 |
| 10 | If S = 4, what is Speed%? | unit rate | 4 × 5 = 20% |
| 11 | If P = 6, what is Charge%? | nonlinear function | 6² = 36 |
| 12 | Budget — given S = 8, E = 6, T = 2. Find P. | ratio | 8 + 6 + 2 + P = 20 → P = 4 |
Verification walk. After pencils down, the teacher picks one problem per formula type. She asks Maya: "Walk me through how you knew which formula to use for Problem 9." Maya explains it out loud — "if T is zero the ratio is still 0.2, so it can't be a unit rate. The printed definition says unit rate goes from zero. This one doesn't." The teacher initials Maya's sheet and moves on. Three students at the next table do not get their initial today; the teacher hands them a formula practice sheet for the Open Lab block instead of letting them into MakeCode. No initial = no MakeCode. Maya is in the MakeCode-ready stack. Maya puts the worksheet in her folder with the extra credit blank, the way the page tells her to: Keep this sheet — it goes in your data log.
Prove Your Build — official Season 1 lock-in. The Analyst on each team opens Prove Your Build on their device with their teammates at their shoulder. The header reads Day 6 · Lock In. The opener prompts her: "We are going with Loadout ___." Maya types Patient Foxes #23. Then the four stats from her card — Speed 6, Endurance 4, Turning 5, Power 5 — and the budget bar fills as she types: 6, 10, 15, 20. ✓ Budget balanced lights green.
Step 2 unlocks. Six formula rows appear, each one with its computed value live on the right and the prompt "This formula is a —" with six tag chips below it. The team works through them together. Iris reads the first row off the screen — Motor Power = S × 5 = 30% — and elbows Maya: "that's your Day 1 trick. Multiply by 5." Maya taps unit rate. The row turns green and a short explanation slides in underneath. They go through the rest the same way — Iris calling each formula from her growing code-side familiarity, Devon adding what he's seen the bot actually do, Maya making the tag call. Endurance: linear decay. Turn ratio: linear function. Charge: nonlinear function. Follow-through: Devon points at the screen — "same shape as turn ratio, right?" — and Maya nods. Linear function. Budget: ratio, all three of them say at once. Six green rows. The Lock In Season 1 button at the bottom of the page turns yellow.
Maya clicks it. A loadout card reveals: Patient Foxes #23 in big yellow letters, ✓ Locked In, all four stats stacked across the top, the five computed outputs in a grid, and the six confirmed tag pills lined up under Math Confirmed. The save fires off to the facilitator's sheet behind the scenes — invisible to Maya, but it's the receipt the teacher will pull tomorrow morning. Devon reads the card off the screen: "We're locked." Maya nods. Season 1 starts tomorrow.
Exit ticket. Two problems. Two minutes. Slips dropped on the desk before they start the next activity.
Q1. Which Velocity Arena formula is nonlinear? Write it out in full.
"Charge% = P². The gaps get bigger each time P goes up by 1. P = 4 → 16. P = 5 → 25. P = 6 → 36. Gap from 4 to 5 is 9. Gap from 5 to 6 is 11. Bigger every step. That's the nonlinear part."
Q2. A bot has Endurance = 6. The match lasts 4 minutes. What is P(t)? Show your work.
"P(t) = 100 − (20 − 6) × 1.5 × 4 = 100 − 14 × 1.5 × 4 = 100 − 84 = 16%. The bot is at 16% power by minute 4. Almost done."
Field Geometry + Approach Planning
The arena is taped out on the floor — an 8×4 grid with the ball A at (4, 2), opponent's goal G at (8, 2), their own goal at (0, 2). Before they pick a starting corner, the team has to do the Field Geometry worksheet's distance analysis. Part 3 asks Maya to calculate the distance from each of the four corners to the ball. She runs the formula four times and finds the answer she didn't expect: every single corner is √20 ≈ 4.47 units from the ball. Same distance from all four. The ball sits at center; corner choice doesn't change the launch distance at all.
Part 4 asks for two specific candidate positions to compare. Both have to be on Team Patience's own half (x = 0 to 4 — soccer doesn't let you start in the opponent's territory). Maya picks P1 = (0, 4) and P2 = (0, 0) — both left-side corners, just at opposite ends of the y-axis. Same distance to ball, same distance to goal, both miror images of each other. So what actually distinguishes them is the launch path: from P1, the bot's L-path goes through (0, 2) — which is their own goal location, meaning the bot rolls right past its own goal during launch. From P2, same situation — the bot also passes (0, 2). Either corner makes the bot brush past its own goal on the way to the ball. Maya notes it: the launch path interferes with the team's own goal area no matter which left-side corner they pick. That's a setup constraint the team has to work with, not a strategic choice.
The team picks P1 = (0, 4) because that's where Devon already taped the bot during simulation matches and the launchSequence is already tuned for that direction (left turn → 2 blocks sideways → right turn → 4 blocks forward). Re-tuning for P2 would mean swapping every "left" for "right" and re-running every trial. Geometry doesn't pick; the existing tuning does. Maya writes that on the reflection line and moves on.
PART 3 — Distance from each corner to the ball A(4, 2) ───────────────────────────────────────────────────────── (0, 0) → A: d = √((4)² + (2)²) = √(16+4) = √20 ≈ 4.47 (8, 0) → A: d = √((-4)² + (2)²) = √(16+4) = √20 ≈ 4.47 (0, 4) → A: d = √((4)² + (-2)²) = √(16+4) = √20 ≈ 4.47 (8, 4) → A: d = √((-4)² + (-2)²) = √(16+4) = √20 ≈ 4.47 ALL FOUR EQUAL. Ball is centered; corner doesn't change the launch distance. (And we can only legally start on our own half anyway — left side, x = 0 to 4.) PART 4 — Compare P1 vs P2 (both on our own half) ───────────────────────────────────────────────────────── P1 = (0, 4) d to A = 4.47 d to G = √68 ≈ 8.25 P2 = (0, 0) d to A = 4.47 d to G = √68 ≈ 8.25 Closer to ball: Same. Closer to goal: Same. Geometrically equivalent — mirror images. NOTE — Launch-path constraint Both P1 and P2 have the bot passing through (0, 2), which is our own goal location. Either corner forces the launch L-path to brush past our own goal on the way to the ball. That's a setup we work around. REFLECTION — Why P1 Geometry doesn't decide between P1 and P2. We pick P1 because that's where Devon taped the bot during Day 5 simulation matches and our launchSequence is already tuned for that direction. Swapping to P2 would mean flipping every "left" turn to "right" and re-tuning. Lock in P1 — keep the existing trials. DATA LOG Starting position (x, y): (0, 4) Distance to ball A: 4.47 units Distance to goal G: 8.25 units Motor power = Speed × 5 = 30% Speed stat: 6
Now the launch sequence itself. Maya starts to run the distance formula again — d = √20 ≈ 121 cm — then stops a second time. A straight diagonal from (0, 4) to (4, 2) would hit the ball at an angle and scatter it sideways instead of pushing it toward the goal. Patience has to hit the ball head-on, moving along the goal direction at the moment of contact.
The launchSequence in the game code from Day 5 already handles this. Five steps mapped to the grid:
Step 1 Set block size: 1 block = 27 cm (= 1 grid square)
Step 2 Turn 90° left — now facing the center line
Step 3 Drive 2 blocks → 2 × 27 = 54 cm
(0, 4) → (0, 2) on the center line
Step 4 Turn 90° right — now facing the goal
Step 5 Drive 4 blocks → 4 × 27 = 108 cm
(0, 2) → (4, 2) head-on at the ball, then kick
TOTAL 54 + 108 = 162 cm (vs the 121 cm straight diagonal)
Longer path, but the ball gets hit toward the goal.
Maya walks through the geometry: from (0, 4), turning left points the bot at the center line; 2 blocks sideways lands at (0, 2); a 90° right turn squares it up with the goal axis; 4 blocks forward reach the ball at (4, 2) head-on. The block counts are fixed in the code. The ms each block takes is whatever the bot's actual speed is at SPEED 6. Four blocks is four blocks. The number of milliseconds it takes is whatever the bot does on the floor.
But today isn't just "does the default work." Yesterday's simulation showed the team they only get two real scoring chances per match against an opponent — and the launch sequence is the part they control most. This is their chance to make the code better than it was yesterday. The Launch Sequence Design worksheet says it plainly across the top: Precision gets it there. Reliability gets it there every time. And it makes them design two strategies before testing either one. A and B. Predict which is more consistent. Test both. Decide.
Maya sketches both on her worksheet. Strategy A — Direct Hit: the L-path she just worked out. 90° left, 2 blocks, 90° right, 4 blocks, kick. 162 cm total. Sharp turns, predictable, head-on contact. Strategy B — Buffered Approach: 45° left turn, diagonal cruise to (2, 2), 45° right back to square, 2 blocks forward, kick. 130 cm total. Shorter path, smoother angles, harder to tune because the 45° turns have to land exactly. In the Prediction box, Maya checks Strategy A — Direct Hit. Her one reason: "Two 90° turns are easier for the bot to repeat than two 45° turns at exact angles. A is more reliable, even if it's a longer drive." She passes the worksheet to Iris.
Launch Sequence Programming + Testing
Three trials of Strategy A. Iris codes the L-path tunables, downloads, hands the bot to Devon. Devon places Patience to (0, 4). Maya stands near the ball with the worksheet's trial table. Trial A1: Patience runs the L-path, stops 4 cm past the ball — kick still fires clean toward the goal. Hit ball? Y. Good kick? Y. Maya circles both, writes "+4 cm overshoot — shave ms" in the notes column. Iris tunes. Trial A2: 3 cm short of the ball, kick fires anyway because the bot is touching the ball when it triggers — but the ball goes off-line by 5°. Y / N. Maya tunes the ms again. Trial A3: dead-on contact, ball goes straight at the goal. Y / Y. Strategy A: 3 hits out of 3. 2 clean kicks, 1 off-line.
Three trials of Strategy B. Iris changes the tunables — 45° turns and a shorter forward leg. Trial B1: the 45° diagonal lands the bot at (2.2, 2.3) instead of (2, 2); the 45° right turn squares up, but the forward leg hits the ball at a shallow angle and the ball squirts sideways. Y / N. Trial B2: same problem, slightly worse — the bot ends up at (2.3, 2.1) and grazes the ball. Y / N. Trial B3: Iris adjusts the diagonal time down by 200 ms; Patience lands closer to (2, 2) this time and hits the ball cleanly. Y / Y. Strategy B: 3 hits, 1 clean kick out of 3.
STRATEGY A — Direct Hit (L-path, 90° turns) ───────────────────────────────────────────── TRIAL HIT BALL? GOOD KICK? NOTES A1 Y Y +4 cm past ball — clean kick toward goal A2 Y N −3 cm short — ball goes off-line by 5° A3 Y Y Dead-on — ball straight at goal STRATEGY B — Buffered Approach (45° diagonal) ───────────────────────────────────────────── TRIAL HIT BALL? GOOD KICK? NOTES B1 Y N Diagonal landed long; ball goes sideways B2 Y N Same problem — angle is off B3 Y Y Shaved 200 ms — finally clean Strategy A hit the ball 3 out of 3. (clean kicks: 2) Strategy B hit the ball 3 out of 3. (clean kicks: 1) More consistent: A ✓ Faster approach: B (shorter path) More accurate: A ✓ More reliable: A ✓
Post-kick landing — Phase 2. The worksheet asks one more question before the decision. Where does the bot END UP after the kick? Because the match doesn't stop when the kick fires — Phase 2 starts, and the bot roams autonomously, bouncing off walls and reacting to the ball. Where Patience lands when the kick is over decides what arc of the field she covers next. After Strategy A, Patience ends near the center of the field, around (5, 2) — 360° of arena to react to wherever the ball goes. After Strategy B, the angled approach leaves her near the right wall at about (4, 1.5) — her roaming arcs get cut short by the wall. Strategy A wins this dimension too.
Decision. Maya circles Strategy A on her worksheet and fills in the sentence: "I chose Strategy A because it hit the ball 3 out of 3 times. It is more reliable. After the kick, my robot ends near center field, which helps roaming because she has all four directions to react and the wall isn't blocking her arcs." Her Day 5 prediction held — the 90° turns ARE easier for the bot to repeat than the 45° turns. The simpler strategy was the better one.
Revise one variable. The worksheet's last instruction: change exactly one thing in your chosen strategy, run it again. One change at a time — that's how you know what actually worked. Maya picks the forward leg's ms. "A1 was +4 cm, A2 was −3 cm, A3 was dead-on. The ms is locked. But what about Turn 1? It's a 90° in-place turn — what if we shaved 20 ms off the turn-rest pause? Faster off the corner without changing the geometry." Iris shaves 20 ms from the post-turn pause. Trial A4: Patience runs the same path, same hit, same clean kick, but 40 ms faster overall (the change applies to both turns). Maya logs the new total launch time in the data log.
FINAL STRATEGY A — Direct Hit (L-path, 90° turns) HIT RATE 3 of 3 (clean kicks: 2 of 3 → 3 of 3 after Trial A4) TURN 1 90° left in place, post-turn pause 100 ms TURN 2 90° right in place, post-turn pause 100 ms POST-KICK LANDING center field (~5, 2) PHASE 2 READINESS Good — 360° coverage, no wall blocking arcs TOTAL LAUNCH TIME ~40 ms faster than default after Trial A4 revision Big Idea "A good launch is not just about hitting the ball once. Ours worked 3 out of 3 tries, and it left Patience near the center of the field — which means she can react to the ball no matter which way it goes."
Launch Showcase
Each team demos their launch sequence. Team Patience goes fifth. Iris places Patience at corner (0, 4); Devon waits near the goal line to retrieve the ball. Patience runs the sequence — left turn, two blocks, right turn, four blocks, kick — and hits her mark within 4 cm. From the edge of the arena, Mike from Team Magnetic Raptors 22 has been mumbling each step to himself as the bot moves through it, scribbling into his Launch Showcase worksheet — every team's launch captured for scouting later. When Patience scores he claps — loud enough that Devon turns red — then goes right back to his sheet to write left 90 · 2 blocks · right 90 · 4 blocks · kick next to Patient Foxes #23.
Free Code or Final Verification
Maya pulls up the dashboard and runs back through every trial Iris flashed today. She enters the residual column for the first time — predicted distance vs. actual, with the sign — and notices it: every trial went 3–5 cm past where we wanted it to stop. She writes in the dashboard's Analyst observations field: "Every trial today went 3–5 cm past where we wanted. Same gap every time. I think the motor keeps going a little after the code says stop. Try taking 4 cm off all the launch distances next time and see if that fixes it." Iris reads over her shoulder, says "true, that," and nods.
Goals Wall — Week 2
Three minutes. Write one personal goal and one team goal for Week 2 — post next to Patience's name.
Personal: Have an opinion about a math thing and be wrong out loud once this week, on purpose. (To practice not being scared of being wrong.)
Team: Win at least 3 matches in Season 1. )
First Real Match · Slope-Intercept · The Bot Maya Programmed Plays
Week 2 · Season 1 Round-Robin Day 1y = mx + b and the algebra clicks. Predicts a match outcome with math before it happens. Watches Patience — coded by her — play in a real round-robin. Wins Round 1. Loses Round 2 and goes through the four-step loss recovery, writing her own Power-gap rule. Round 3: compromises that rule because she wants to score, predicts 2−2 instead of a loss, and Patience draws 0−0 — her biggest miss of the day. Final: 1 win, 1 draw, 1 loss. Steady Hawks #17 wins Best Prediction. Maya finishes 4th.Trashketball Warm-Up Round
A recycling bin sits about four meters from the seats — far enough that even a seated underhand shot has real miss probability. Every table has a stack of scrap paper. The scoreboard on the board has three columns — Round 1 · Round 2 · Total — and the teacher writes each team's name in the rows while they watch. "Yesterday you built your stat card. Today that card decides who earns the shot." Then the four rules: (1) calculate independently on your own paper, then agree as a team. (2) All three stand together — one person standing doesn't count. (3) The teacher checks the answer before the shot. Wrong answer, sit back down and keep working. (4) Shooter rotates: Round 1 = Person 1, Round 2 = Person 2, tiebreaker = Person 3. Iris is Person 1. Devon is Person 2. Maya is Person 3 — she only shoots if it goes to a tiebreaker.
Scoring goes on the board next to the scoreboard: 1 point for the first team standing with the correct answer. +1 bonus point if your shooter — from their seat, not the aisle, not standing — sinks it. Same in Round 2. Tiebreaker is 1 point for the correct answer if you need to run one. Max total: 4. Then the teacher writes a sentence underneath in smaller letters: "Score is a pretext. Post it anyway."
Round 1. "Turning = 6. What is the turning ratio?" Maya knows this one cold from yesterday's Interleaved Problem Set — Turn Ratio is a linear function, multiply first, then add the 0.2 starting value. She writes 6 × 0.02 = 0.12, then 0.2 + 0.12 = 0.32. Iris matches. Devon matches. All three stand. The teacher walks over. "What's your answer?" "Zero point three two." "Earned. One point. Iris, shoot from your seat." Iris stays in her chair, crumples her paper, lobs it underhand across four meters of air. The shot bounces off the rim and into the bin anyway. Bonus point. Round 1: Patience earns 2 points — 1 for the correct answer + 1 for the made shot. Across the room, two teams stand with 0.124 — they added 0.2 + 6 first, then multiplied. The teacher hands their papers back without saying which step broke. They sit and rework it.
Debrief 1. The teacher calls Iris to walk through her steps. Iris does: "6 times 0.02 first because of the parentheses — that's 0.12. Then 0.2 plus 0.12 is 0.32." The teacher says it back to the class in her own words: "So the parentheses mean 6 × 0.02 gets computed first, giving 0.12, and then you add 0.2." Then she names the practice on the board: "Working systematically with the formula. Same move you'll need this afternoon when you sit down for the Pre-Match Prediction Huddle and run your own bot's decay slope and chargePower from your stat card."
Round 2. "Endurance = 3. Power at minute 3." This one's harder. Maya works the formula fast from her stat card. (20 − 3) = 17. 17 × 1.5 = 25.5. 25.5 × 3 = 76.5. Steady Hawks #17 scrapes their chairs to stand before Maya is done with the last step. Maya rushes — rounds 76.5 to 77 in her head — and writes 100 − 77 = 23%. She glances at Iris and Devon. Iris has 23.5%. Devon has 23.5%. Maya frowns: "I got 23." Devon points at his paper: "100 minus 76 point five — not 77. The decimal carries through. It's 23.5." Maya stares for a second, redoes the subtraction in her head. He's right. She crosses out 23, writes 23.5. All three stand — but Steady Hawks #17 is already standing, and the teacher walks to them first. "What's your answer?" "23.5%." "Earned. Person 2, shoot." Steady Hawks #17's Person 2 lobs from her seat. Goes in clean. Round 2: Steady Hawks #17 earns 2 points — same way Patience earned R1. Standings after Round 2: Patience 2, Steady Hawks #17 2, everyone else 0. Patience earned nothing in Round 2 — they had the right answer, but the script's rule is firm: the point goes to the first team standing with the right answer. Standing second with the right answer earns nothing.
Debrief 2. The teacher pulls another team's paper that wrote 20 × 1.5 × 3 = 90 → P(3) = 10 — they skipped the first subtraction. She names the second practice: "Respecting mathematical structure. Skip the (20 − E) step, and for an opponent with Endurance 8 you'll predict they end the match at 64% — when they actually end at 46%. Order is not optional." Half the room nods like they get it. The other half is still looking at the wrong-paper example trying to figure out which step the team skipped. Maya is in the second half. She doesn't ask, because she doesn't want to be the kid who didn't follow. She writes "come back to this" in the margin of her journal. The debrief moves on without her.
Tiebreaker. The scoreboard reads Patience 2 — Steady Hawks #17 2. Tied. "Different formula. Check your stat card. Person 3 shoots if you earn it." The problem: Speed = 7. What is motor power %? Maya doesn't even reach for paper — Speed × 5, her own Day 1 shortcut. 7 × 5 = 35%. Iris and Devon write it out and confirm. All three stand. Patience first. The teacher checks. "35%. Earned. One point. Maya, shoot." Maya picks up the crumpled paper. Four meters across the room. She has been Person 3 the whole activity — hasn't thrown a single shot. She lobs it underhand, too short. The paper lands a foot in front of the bin. No bonus point — but Patience earned the tiebreaker point for the correct answer. Patience: 3. Steady Hawks #17: 2.
Exit ticket. One problem on the board, individual, ninety seconds. Endurance = 5. Power at minute 2? Maya works it on her scrap: (20 − 5) × 1.5 × 2 = 15 × 3 = 45. 100 − 45 = 55%. Writes 55%, name on top, drops it on the table. The teacher reads the final score aloud — just the numbers, no commentary: "Patience 3. Steady Hawks #17 2. Everyone else 0. Challenge Block starts now."
TEAM R1 R2 TIE TOTAL
──────────────────────────────────────────────────
Patient Foxes #23 (Patience) 2 0 1 3 ← us
Steady Hawks #17 0 2 0 2
Cobalt Wolves #14 0 0 — 0
Iron Ravens #25 0 0 — 0
Magnetic Raptors #22 0 0 — 0
Kinetic Falcons #8 0 0 — 0
R1 (Turn Ratio): Patience stood first, Iris's bouncer
went in. 1 pt + 1 bonus.
R2 (Endurance): Steady Hawks #17 stood first with 23.5%,
made the shot. Patience stood second with
the right answer — zero points. The rule
is firm.
TIE: Patience won the tiebreaker (35%).
Maya's shot was short — no bonus.
Score is a pretext. The teacher posted it anyway.
Endurance Decay Equations in Slope-Intercept Form
The teacher pulls up the Endurance Decay Equations lesson on the projector. Three numbered tabs across the top: 1. From Formula to Equation · 2. Two Times on Your Graph · 3. Your Personalized Equation. Progress bar at 0%. "Your bot starts at full power, and every minute power drops. Today you're going to find exactly when that matters — and there are TWO different moments on that line we care about, not just one." The teacher say sbefore anyone clicks into Section 2: write your E and compute r. Maya writes: E = 4, so r = (20 − 4) × 1.5 = 24.
Section 1 — From Formula to Equation. The page breaks the formula into four colored parts: P(t) (cyan: "Power right now"), 100 (green: "Starting power — every bot starts here"), (20 − E) × 1.5 (yellow: "Power lost per minute — this is your slope"), and t (purple: "Time"). Then a red misconception block flashes onto the screen: STOP — most students get this wrong. Higher Endurance does NOT mean more decay. The subtraction (20 − E) flips it: a bigger E makes the decay rate smaller. Maya already knows this from yesterday's Interleaved Problem Set — linear decay, not direct proportion. She nods at the warning and scrolls past. The slope-intercept mapping section maps P(t) = 100 − 24t onto y = mx + b for her: y = −24x + 100. Slope = −24% per minute. Y-intercept = 100% at t = 0. Tab 1 turns green.
Section 2 — Two Times on Your Graph. Two input boxes. Box 1: 20% power floor time. Maya sets P = 20: 20 = 100 − 24t → 24t = 80 → t = 80/24 ≈ 3.33 min. Box 2: true x-intercept. She sets P = 0: 0 = 100 − 24t → 24t = 100 → t = 100/24 ≈ 4.17 min. Two different numbers. She enters both. Iris looks at the screen: "So the math line flattens at 20% at 3.33 minutes — but the line doesn't hit zero until 4.17. Why are there two different answers?" Maya: "Because the power-budget line holds at 20%. The bot's power on paper never goes below 20 — the math line just flattens out." Tab 2 turns green.
Section 3 — Your Personalized Equation. A big card appears at the top with Patience's actual equation: y = −24x + 100. Below it, a graph draws itself — Patience's decay line going from (0, 100) down through the t-axis. Two markers light up on the line: a yellow dot at (3.33, 20) labeled "power-budget floor — math line flattens", and a red dot at (4.17, 0) labeled "x-intercept (math only)". A vertical band shaded across the graph marks the 3-minute match window. A yellow callout right under the chart catches Maya's eye: "Two different floors — don't mix them up. P(t) is your power budget, and the math line holds at 20%. But your bot's wheels also have a hard minimum speed set by your SPEED stat — and because that minimum is higher than 20% of your motor power, the wheels bottom out and the lights turn red before you hit 20%." Maya re-reads it. "So the 20% point is where the math line flattens — not the moment Patience first feels slow. The lights turn red earlier than that." Devon does the arithmetic out loud: "3-minute match. 3.33 is bigger than 3. So we DON'T hit the math floor during a match." Maya checks: at t = 3, P(3) = 100 − 24(3) = 100 − 72 = 28%. The graph confirms it — the curve at the right edge of the match window sits at 28%, four points above the yellow floor dot. They end the match at 28% on the power-budget line. The wheels probably went red somewhere before that, but the budget never flattens during the match. Their E = 4 allocation from Day 5 is exactly enough to clear a 3-minute match — no margin to spare, but enough.
SLOPE-INTERCEPT FORM ───────────────────────────────────────────── P(t) = 100 − (20 − E) × 1.5 × t (original) P(t) = −1.5(20 − E) × t + 100 (factored) y = m × x + b (matched to y = mx + b) For Patience (E = 4): m = −1.5 × (20 − 4) = −1.5 × 16 = −24 b = 100 → y = −24x + 100 BOX 1 — 20% POWER FLOOR TIME (P = 20) ───────────────────────────────────────────── 20 = 100 − 24t 24t = 80 t = 80 / 24 ≈ 3.33 min ← power-budget floor (math line flattens) BOX 2 — TRUE X-INTERCEPT (P = 0) ───────────────────────────────────────────── 0 = 100 − 24t 24t = 100 t = 100 / 24 ≈ 4.17 min ← line crosses t-axis (math only) CHECK — proportional relationship ───────────────────────────────────────────── t_xi / t_floor = 4.17 / 3.33 = 1.25 (= 100/80, always. Doesn't depend on r.) MATCH ANSWER — Does Patience hit the floor? ───────────────────────────────────────────── Match is 3 minutes. Floor is at 3.33 min. 3.33 > 3 → NO floor hit. P(3) = 100 − 24(3) = 28%. Patience ends at 28%, 8 points above the floor.
Summarize. The teacher calls two teams: highest E in the room (Iron Ravens #25 , E = 8 → r = 18, floor at 80/18 ≈ 4.44 min, never hits floor in a 3-min match) and lowest E in the room (Steady Hawks #17, E = 2 → r = 27, floor at 80/27 ≈ 2.96 min, hits the floor with about 2 seconds left). The contrast is on the board. "What changed? What stayed the same?" A student notices: "The 1.25 ratio is the same for both." The teacher draws the line under it: t_xi is always 1.25 times t_floor — because 100/80 = 1.25 for any r. That ratio doesn't care what your E stat is.
Exit ticket. One problem, individual. "A bot has Endurance E = 4. Write the equation, find the floor time, find the x-intercept, and tell me if it hits the floor in a 3-minute match." Maya looks at the problem and almost laughs out loud — it's our bot. She writes everything she just figured out twenty minutes ago, drops the slip on the desk. Then in her journal she logs both critical times next to the slope-intercept equation:
EQUATION y = −24x + 100 POWER-BUDGET FLOOR 3.33 min (math line flattens at 20%) TRUE X-INTERCEPT 4.17 min (math only — bot never actually reaches) 3-MIN MATCH RESULT P(3) = 28% Math line never flattens. 8-point buffer. Note on wheel speed (separate from the math line): - minWheelSpeed (set by SPEED) bottoms out before P drops to 20%. - The lights turn red EARLIER than the 3.33-min floor time. - The 3.33 number is when the math line flattens, not when Patience first feels slow on the floor. Notes for the match: - Patience's endurance is exactly enough for 3-minute matches. - If a match ever runs overtime, we hit the floor at 3:20. - High-E teams (E ≥ 7) never hit the floor in standard matches. - Low-E teams (E ≤ 3) hit the floor before the match ends.
Pre-Match Prediction Huddle
Before each match, teams huddle and make a prediction in writing. Mathematical reasoning required — no gut feelings. Opponent stat cards aren't shared until the buzzer — Iron Ravens #25 is the matchup on the board, but their numbers stay hidden. The prediction has to come entirely from what Maya already knows: Patience's own decay equation and her own measured chargePower from Days 1–6. She walks through it out loud, surprising both teammates: "Our slope is −24 per minute. We start at 100% motor power, hit 76% by minute one, 52% by minute two, 28% by minute three. Our chargePower is 25 — solid, not overwhelming. If we haven't scored by ninety seconds, we're shooting with less than 64% of our motor power. We have to score early." Devon writes the prediction down word-for-word.
OUR TEAM Patient Foxes #23
S = 6, E = 4, T = 5, P = 5
OUR DECAY y = −24x + 100
slope = (20 − E) × 1.5 = 16 × 1.5 = 24
POWER OVER t = 0 100%
TIME t = 1 76%
t = 2 52%
t = 3 28%
CHARGEPOWER P² = 5² = 25 at full power
Effective at t = 1 ≈ 19
Effective at t = 2 ≈ 13
PREDICTION Score in the first 90 seconds, while our motor power
is still above 64%. After that the decay catches us
and our shots get weaker — the math says we lose if
the match drags past minute two.
Maya signed it. Out loud, in writing, in front of two people. That was her practice goal from Day 6 — make a math claim and be wrong if you have to. Now she just has to wait to see if she was wrong.
Dashboard + Match Rules
Devices closed. The teacher waits until every screen is dark. Then she opens: "Before we do anything today, think back to the simulation rounds. You logged a gap — the difference between what the formula predicted and what your bot actually did. Turn and tell your partners one gap your team found. One sentence." Maya, Iris, and Devon huddle. Maya names it instantly — the Round 2 endurance gap from Day 5, the one where the kick formula didn't predict the motor's decay. Iris adds the Day 6 launch overshoot (+4 cm). Devon nods. The teacher takes two responses from the room, says each one back in her own words without judging, then frames the shift: "Those gaps were practice data. This week, the data gets real. Every match you play counts toward the leaderboard. Every result goes into the dashboard. And every Note you write — or skip — will matter when you decide whether to change your stat allocation in Season 2."
Devices open. Dashboard walkthrough. Two things look different from the Pre-Season setup Maya's been using since Day 5. (1) The View control in the top corner shows "Full dashboard" instead of "Pre-trial." (2) A new section is visible at the bottom of the page: Match Log. The teacher walks the whole class through a practice row together — every team adds it at the same time. Round = 1. Day = 7. Opponent = Practice. Source = Endurance formula. Predicted = 2. "Now click Add row." Every screen ticks. The row appears in the table, dimmed gray. "See the dim? That is Week 1. Practice. Starting today, your rows are clear — they count."
The Notes field. The teacher pulls the form back up. Two text boxes underneath the row fields — "What happened?" and "What are you testing next round?" "The Notes field is not optional," she says. "'We lost' is not a note. A note tells you something useful in Season 2. Here is the test: could you read this note in 7 days and know what to change? If not, rewrite it." Then she types an example on the projector: "Bot slowed near the 2-minute mark — Endurance = 4, possibly too low. Opponent's Turning kept them in the center zone." Maya doesn't have to be told this is what a useful note looks like — she's been writing Simulation Lab observations and dashboard residual notes since Day 5. For her, the Notes requirement is just the camp formalizing what she's been doing as Analyst all along. Iris and Devon read the example and nod. Maya writes the placeholder note for the practice row: "first walkthrough — does not count." Click Save. The top right corner shows Saved ✓. Load Team demo flashes by. Delete the practice row by clicking the X — "this cannot be undone, so be careful."
Match rules briefing. The teacher walks to the arena. The rules go up on the board exactly as written, no improvising:
OBJECTIVE Push the ball across your opponent's goal line. The goal spans the middle section of each short end. SCORING A goal counts the moment the ball fully crosses the line — even if it bounces back. Either goal line counts for that net's attacker — OWN GOALS COUNT. After each goal: ball returns to center, robots keep running, clock keeps running. MATCH LENGTH 3 minutes. Most goals wins. Tied at 3:00 = draw. STARTING THE MATCH Press Button A once. No touching your robot during the match unless the referee says so. BALL OUT OF BOUNDS Referee returns the ball to center. Clock keeps running. ROBOT OFF THE FIELD Referee places the robot at the nearest edge, at the center line, facing inward. Referee presses Button B to try to reset matchLoop. Robot must recover autonomously. Clock keeps running. ROBOT-TO-ROBOT CONTACT Part of the game. Your bots will collide. That is not a foul. NO MID-MATCH CODE CHANGES The bot is programmed before the match. If your bot gets stuck, it stays stuck. That is your data.
The teacher reads each line aloud. Maya marks two on her notes: own goals count (she had not considered this — if Patience pushes the ball the wrong way after a hit, Cobalt Wolves get the point) and after a goal, robots keep running (she had assumed there would be a reset window — there isn't). She updates her prediction model in her head: own-goal risk goes up against teams whose Power can knock Patience off-line. Then the last sentence stays with her as the script writer intended: "if your bot gets stuck, it stays stuck. That is your data." Stuck isn't a failure. It's evidence to log.
Post-match protocol — four steps in order. The teacher writes them on the board:
STEP 1 Score goes into the dashboard. Immediately.
No exceptions. Score first, everything else second.
STEP 2 Each team gives ONE data acknowledgment sentence.
Not "good game." One sentence with a stat or a
number. Winning team goes first.
Example: "Their Turning kept them in the center zone
— we couldn't push through."
STEP 3 30-second dispute window. Any scoring concern raised
now. No evidence, no dispute. After 30 seconds the
result locks.
STEP 4 Reset. Both teams return bots to their starting
positions.
Ready Check. The teacher asks, "What's the difference between a Pre-Trial row and a Full row in the dashboard?" Iron Ravens #25 answers: "Pre-trial rows are dimmed. They don't count toward the leaderboard. Full rows are live." The teacher says it back in her own words to confirm. "A match ends. Your bot got stuck at the 90-second mark. What do you write in the Notes field?" Magnetic Raptors #22 answers: "Bot stuck at 90 sec. Power was around 64% at that time. Probably a turning issue — check Turn Ratio next." Teacher presses: "Why that specific detail rather than just 'bot got stuck'? What decision does that help you make?" Devon answers from Team Patience's table without being called on: "Because. In. Season 2. You. Can't. Change. Anything. If you don't know what to change." The teacher writes Devon's sentence on the board. "That's the move engineers make when they debug a prototype. It's really useful."
Closing consolidation: "The dashboard is live now — every match, every note, every row. The rules are fixed — 3-minute match, no touching your bot mid-match, 30-second dispute window, post-match data first. Your job is not just to play well. It is to capture what happened so you can make better decisions in Season 2. The teams that improve across the tournament are the ones with the best notes. Today we start collecting that evidence." Then: "First match in five minutes."
Season 1 Round-Robin Matches, Day 1
Three rounds across 90 minutes. Maya holds the Live Event Log, ready to complete one per match. Patience runs the Velocity Arena game code Iris flashed last night, with the locked stat values from the Day 6 Prove Your Build commit. Maya (Analyst) sits at her device with the dashboard open. Devon (Fabricator) resets Patience between matches. Iris (Coder) watches the bot run with her hands off the keyboard — no mid-match code changes, no between-match changes either; the code is locked for all of Season 1. What Iris CAN do is observe Patience closely so that when Maya reads off the gaps after each match, Iris has her own visual data to compare against. The teacher walks the match cycle out loud before Round 1: "Before the match: open your match data log and read your prediction number out loud. Your opponent hears it. Then both bots go on the field. After the match: record your goals and win or loss immediately. Not later. Right then. If you lost, I will come to you before the next round starts." Each match is three minutes.
Round 1. Iron Ravens #25. Pre-match: Maya reads Patience's prediction off her device — "Two goals. Win if we score by sixty seconds; else it comes down to endurance and we drop." Iron Ravens reads theirs — "One for us, two for them." Both numbers on paper before either bot moves. Three minutes. Patience scores at 0:52 and again at 2:14. 2 − 1. Maya enters Goals For = 2, Goals Against = 1, W/L = W before anything else. Then the post-match data acknowledgment — Patience goes first because they won: "We scored before our own decay caught us. Our slope is steeper than theirs — we needed to score early before they outlasted us, and we did." Iron Ravens' Analyst: "You predicted you'd score by 60s and you did at 52s. Our Endurance was higher than yours (E = 8 to your 4), but you didn't give us time to use it." Thirty-second dispute window passes — no claims. Maya's Notes: "Iron Ravens E = 8 → slope −18 (vs our slope −24). Higher endurance, but lower Speed. They couldn't catch us once we were up 1−0. Prediction at 60s held; gap on our goals = 0."
Round 2. Kinetic Falcons #8. Maya: "One goal each. Even decay slopes — comes down to who finds the ball first." Falcons: "Two for us, none for them. Our Power is 7." Three minutes. Falcons reaches the ball first at 1:08 and pushes at chargePower 49 — both wheels driving the ball forward at 49% of max. The ball rolls clean over Patience's goal line. After the reset, both bots run back toward center. Patience reaches the ball some of the time but at chargePower 25 her push can't drive the ball past Falcons' bot. Falcons re-acquires and scores again at 2:34. Patience never gets a clean push toward Falcons' goal. 0 − 2. Maya enters it: GF = 0, GA = 2, W/L = L. Falcons' acknowledgment: "Our Power was higher than yours. We predicted that would decide it. It did." Iris does Patience's, quieter: "Their Power was 7 to our 5. We expected even decay would matter more than the chargePower gap. It didn't."
Loss recovery — between Round 2 and Round 3. The teacher walks to Patience's table. Step 1, verbatim: "That result was frustrating. That's a real feeling and it makes sense." She waits thirty seconds. Devon stares at the table. Maya looks up. Step 2: "Your model predicted 1 goal for you, 1 for them. Actual was 0 for you, 2 for them. Open the dashboard. One stat only. Which stat explains why you scored zero?" Maya thinks for a few seconds. "Their Power. They got the ball both times when the bots hit each other. We never got it back." Step 3: "What's one thing you'd change about your PREDICTION — not your code — for Round 3?" Maya hesitates. "If they have way more Power than us… predict we lose, I guess? Even if our Endurance is good?" The teacher: "Say that with more conviction. That's a rule. Write it down." Maya writes in her data log: "When opponent Power is much bigger than ours, predict we lose. Endurance doesn't fix Power." Step 4: "Walk to one other team. Tell them: 'We're changing _____ because _____.' One sentence." Maya walks to Iron Ravens #25. "We're changing our prediction. When the other team's Power is way higher, we predict we lose. Because Falcons got the ball both times and we never got it back." Iron Ravens nods. Maya comes back to her seat. The rule she just wrote uses the words "way more" and "much bigger" — not a specific number. That's part of why she'll get Round 3 wrong: she didn't write down what "way more" meant.
Round 3. Cobalt Wolves #14. Maya looks at the stat card: their Power = 9. Patience's Power = 5. "They have way more Power than us," she says. "That's the rule. We lose." But she also wants to score. She looks at Patience's Endurance — 4 — and Cobalt's — 5. "Our Endurance is almost the same as theirs, though. Maybe we still get goals." Devon, quieter than usual: "The rule said the Endurance thing doesn't fix Power." Maya: "I know. But like — what if we score one and they score one? Tie?" She writes "2 − 2 tie" in the prediction column. Cobalt: "Two for us. Once we win first contact, chargePower 81 keeps sending the ball back toward your goal." Three minutes. Both bots sweep toward center. Cobalt's launch is quick, but Patience's bot is in the path between Cobalt and the goal — twice in the first minute, Patience's body blocks Cobalt's push. Then Patience tries to attack and Cobalt's chargePower 81 push knocks her off-angle every time she aligns. Neither bot gets a clean push to a goal line. The clock hits 3:00 with the ball still loose at center field. 0 − 0 draw. Maya enters it: GF = 0, GA = 0, W/L = D.
Maya looks at the dashboard. Predicted 2 − 2. Actual 0 − 0. Gap of 4 goals total. The biggest miss of her day. The rule she wrote 20 minutes ago said predict a loss. She predicted a tie. "I should have just listened to my own rule," she mutters. Devon doesn't say anything. Iris doesn't either. The teacher doesn't come — Patience didn't lose. Maya writes in her data log on her own: "Rule said predict a loss. I didn't. Next time: when the rule says we lose, predict we lose." Then she adds a smaller note underneath: "Maybe at really big Power gaps neither bot scores at all? Watch for this tomorrow." She's not sure if that's a new rule or if she's just trying to make herself feel better about being wrong.
| R | Opponent | Maya's prediction | Actual | Gap (our goals) |
|---|---|---|---|---|
| 1 | Iron Ravens #25 | 2 − 1, win by 60s | 2 − 1 (Patience, won 0:52) | 0 |
| 2 | Kinetic Falcons #8 | 1 − 1, even decay | 0 − 2 (Patience, lost) | 1 |
| 3 | Cobalt Wolves #14 | 2 − 2, tie (ignored R2 rule) | 0 − 0 (draw) | 2 |
Day 7 record: 1 win — 1 draw — 1 loss. Total gap on Patience's predicted goals across three rounds: 3 goals.
Maya's loss-recovery hypothesis in Notes (Round 2 → Round 3 update):
"R2: Falcons' Power = 7 vs. ours 5. They got the ball both times. We thought Endurance would matter — it didn't. Prediction rule for Round 3: when opponent Power is way higher than ours, predict we lose. Endurance doesn't fix Power." (The rule says "way higher" — Maya never wrote down what number that means.)
Maya's self-directed reflection in Notes (Round 3, after the 0 − 0):
"R2 rule was right. I didn't trust it. I predicted 2 − 2 because I wanted to score. Next time: when the rule says we lose, predict we lose. At Power gap ≥ 4, the result might not even be a loss — could be a draw with zero goals. Watch for this Day 8." (Not as confident a note as the loss recovery one was — she's not sure if the new rule is right or if she's just rationalizing being wrong.)
Leaderboard reveal. The teacher posts the leaderboard on the wall — three columns: Wins · Goals Scored · Best Prediction. She names the Best Prediction column first, before pointing at Wins. Maya looks at her own data log — total gap of 3 — and doesn't expect to be called. She isn't. "Steady Hawks #17 — total gap of one goal across three rounds. Tell us about Round 3." The Hawks Analyst stands up. Her explanation is shorter than Maya expected. She just says "we had the same rule everyone else had after Round 2 — when their Power is higher than ours, predict we lose. We did. We predicted 0-2. We lost 0-1." She sits back down. Maya stares at her own journal. The Hawks Analyst did exactly what the teacher told them to do. Maya didn't. Then the teacher names the practice: "Looking at the gap between what you predicted and what happened — that's called residual analysis. You'll do it formally in Season 2. You all just did it for real today." Maya writes residual analysis in her journal with quotes around it. Not because she did it. Because next time she's going to.
Exit ticket. One sentence in the data log, no calculator. Prompt on the board: "My prediction across today's matches averaged ___ goals. My actual average was ___ goals. The gap was ___. I think this happened because ___." Maya writes: "Predicted 5/3 = 1.67 goals. Actual 2/3 ≈ 0.67. Gap = 1 per match. I think this happened because I had the rule from Round 2 and I didn't follow it in Round 3. I predicted a tie when the rule said predict a loss." She drops the log on the table. The teacher's closing line: "Today your math met reality. The gap between predicted and actual — that's a residual. Starting Day 8, every prediction needs a formula, and every formula will be tested against what actually happens."
Leaderboard Reveal + Open Lab
The leaderboard goes up on the wall after Day 7 — three columns this time: Wins · Goals Scored · Best Prediction. Team Patience is fourth on Wins, tied at 1−1−1 with two other teams but ranked above them on the head-to-head tiebreaker (we beat Iron Ravens in R1). On Best Prediction, Patience is first. Iris wanted higher on Wins; Devon shrugs; Maya stares at the Best Prediction column and starts pulling out her journal. She wants to look at every team's allocation tonight and sharpen her Day 8 predictions before tomorrow morning.
WINS (W − D − L)
─────────────────────────────────────────
1. Kinetic Falcons #8 3 − 0 − 0 undefeated
2. Cobalt Wolves #14 2 − 1 − 0 drew Patience R3
3. Steady Hawks #17 2 − 1 − 0
4. Patient Foxes #23 1 − 1 − 1 ← us (beat Iron Ravens H2H)
("Patience")
5. Iron Ravens #25 1 − 1 − 1
6. Magnetic Raptors #22 0 − 0 − 3 loss recovery team
GOALS SCORED
─────────────────────────────────────────
1. Kinetic Falcons #8 7 goals
2. Cobalt Wolves #14 6 goals
3. Steady Hawks #17 5 goals
4. Iron Ravens #25 3 goals
5. Patient Foxes #23 2 goals ← us
6. Magnetic Raptors #22 0 goals loss recovery team
BEST PREDICTION (lowest total gap on own goals)
─────────────────────────────────────────
1. Steady Hawks #17 gap = 1 ★
2. Cobalt Wolves #14 gap = 2
3. Kinetic Falcons #8 gap = 2
4. Patient Foxes #23 gap = 3 ← us
5. Iron Ravens #25 gap = 4
6. Magnetic Raptors #22 gap = 5
Name One Math Concept — Write the Calculation, Translate to Behavior
Same prompt as Day 2. Today the concept Maya picks is different.
Concept: Slope-intercept form, applied to predict a match outcome.
CALCULATION y = −24x + 100 (us, E = 4)
y = −18x + 100 (Iron Ravens, E = 8)
Their slope is shallower — they hold power longer.
Our Speed is higher. So we have to score EARLY
before their endurance advantage takes over.
At t = 0.87 (52 s): us 79%, them 84%. Gap = 5 pts.
At t = 2 min: us 52%, them 64%. Gap = 12 pts.
Window: score before t = 1 min, while we can still
outrun them. Past 1 min, the gap grows fast and
their power advantage decides it.
OUTCOME Scored at 0:52. Won 2 − 1.
BEHAVIOR The slope of a line told us when to make our move.
Not 'go fast.' Not 'try harder.' The number told us
WHEN. We picked the timing from the algebra, and
the algebra picked the win.
Scavenger Hunt · Matching · Match Day 2 · The Rivalry Card
Week 2 · Season 1 Match Day 2Leaderboard Chase — Scavenger Hunt
The teacher built the chain last night with the Leaderboard Chase Builder — eight cards posted around the room, each one showing a real team's actual stat allocation from yesterday's leaderboard. On the back of every card is one of the six Velocity Arena formulas to compute. The answer cards sit face-down at the central table, sorted lowest to highest by value. Individual work. No calculators — per the policy poster, this is a PEMDAS-practice activity, and the pile catches the order-of-operations error. A calculator would hide the error and the activity would lose its teaching purpose. The teacher gestures at the policy poster without saying anything as students pull out their pencils. The hard rule, posted on the board: "If your answer is not in the pile, your calculation is wrong. Go back and recalculate. Don't ask me whether your answer is right — the pile tells you."
Maya starts at Card 2 — Kinetic Falcons #8, Power = 7. The card on the back asks: "What is Kinetic Falcons' charge speed?" Formula: P². 7 × 7 = 49%. She walks to the central table, finds 49 in the pile, flips the back. "Go to Card 3 — Cobalt Wolves #14 by the trash can." Maya crosses the room. Card 3: Cobalt Wolves, Endurance = 5. "What is Cobalt Wolves' power output at minute 3?" Formula: 100 − (20 − E) × 1.5 x 3. She computes: (20 − 5) × 4.5 = 67.5; 100 − 67.5 = 32.5%. Pile. Card 4 is Magnetic Raptors #22 with three stats listed — S = 4, P = 4, T = 6 — and asks "how many points did Magnetic Raptors put into Endurance?" Maya: 20 − 4 − 4 − 6 = 6. Pile. Card 5 is Patient Foxes #23 — that's us, S = 6 — "What is Patience's motor power percentage?" 6 × 5 = 30%. Pile. Card 6 is Steady Hawks #17, T = 6 — Turn Ratio: 0.2 + (6 × 0.02) = 0.32. Pile. Five cards in eight minutes.
Card 7 — Iron Ravens #25, Power = 3. "What is Iron Ravens' follow-through time in milliseconds?" Formula: 120 + P × 35. Maya rushes the calculation in her head: (120 + 3) × 35 = 4305 ms. She mutters it under her breath as she walks toward the central table. Devon is at his own seat working Card 4 — he doesn't look up, but he hears her say "forty-three hundred" and says, without looking up, "Multiply first."
Maya stops mid-step. Re-reads her own work on the index card. Oh. The formula is 120 + (P × 35) — implicit parens around P × 35, multiply before add. Not (120 + P) × 35. She glances at the PEMDAS poster on the wall — it's been there since Day 1, the same poster every middle-school math room has — to confirm what Devon's two-word correction was pointing at. The pile would have caught it. Devon caught it first. She erases 4305 and rewrites: 3 × 35 = 105. 120 + 105 = 225 ms. Walks to the table — 225 is in the pile. The back tells her: "Go to Card 8 — Iron Ravens #25 near the door." Just before she gets there, the teacher calls time. Six of eight cards completed. One of those six only got finished because Devon was sitting close enough to hear her mutter the wrong answer.
| Card | Team · stat | Formula | Maya's work | In pile? |
|---|---|---|---|---|
| 2 | Kinetic Falcons #8 · P = 7 | P² (Charge Speed) | 7 × 7 = 49% | ✓ first try |
| 3 | Cobalt Wolves #14 · E = 5 | 100 − (20 − E) × 4.5 (Power at t = 3) | (20 − 5) × 4.5 = 67.5 · 100 − 67.5 = 32.5% | ✓ first try |
| 4 | Magnetic Raptors #22 · S = 4, P = 4, T = 6 | E = 20 − S − P − T (Find Endurance) | 20 − 4 − 4 − 6 = 6 | ✓ first try |
| 5 | Patient Foxes #23 · S = 6 (us) | S × 5 (Motor Power) | 6 × 5 = 30% | ✓ first try |
| 6 | Steady Hawks #17 · T = 6 | 0.2 + T × 0.02 (Turn Ratio) | 0.2 + (6 × 0.02) = 0.32 | ✓ first try |
| 7 | Iron Ravens #25 · P = 3 | 120 + P × 35 (Follow-Through) | 1st: (120+3)×35 = 4305 ✗ — caught by Devon overhearing 2nd: 120 + (3×35) = 225 ms ✓ | second try |
Six cards (2–7) in thirteen minutes. One PEMDAS slip on Card 7 — Devon caught it from the next seat before the pile would have. No teacher consulted. Did not reach Card 8 (Decay Rate) or Card 1 (Speed % of Budget) before time was called.
Wrap. The teacher pulls her monitoring sheet. The most common error she logged across the room was on Card 7 — students writing (120 + P) × 35 instead of 120 + (P × 35). She names it without naming anyone: "Follow-Through. The most common move was distributing the multiplication across both terms. The formula is 120 + (P × 35) — multiply Power by 35 first, then add 120. For P = 3: 3 × 35 = 105, plus 120 = 225 ms. The implicit parentheses around P × 35 bind tighter than the addition." Maya doesn't look up. She nods at her answer sheet. Devon glances at her sideways and doesn't say anything.
Exit ticket. Ninety seconds on the back of her answer sheet, no calculator allowed — exit tickets are calculator-free across all activities. "Which formula gave you the most trouble today? Write it out. Then write the step where you made an error and why that step is easy to miss." Maya writes: "Follow-Through. 120 + P × 35. I rushed and wrote (120 + 3) × 35 instead of 120 + (3 × 35). I didn't catch it. Devon did, from his table. The step that's easy to miss is the implicit parentheses around P × 35 — you have to multiply before you add, even when there are no visible parens. I'll watch for that next time."
Matching Situations, Graphs, and Linear Equations
Scatter plot build. Worksheet on every desk. The wall has a blank coordinate grid — Speed 0–8 on the x-axis, Goals 0–20 on the y-axis. The teacher hands each team a pre-labeled dot sticker with the team name written on it. Maya checks Patience's stat card: Speed = 6. She opens her Day 7 data log and sums their goals across the three matches: 2 + 0 + 0 = 2 goals. Patience's data point: (6, 2). Devon takes the sticker up to the wall grid and places it. Maya stays at the table and copies every other team's sticker coordinates onto the scatter plot on her worksheet as they go up. Iron Ravens lands at (4, 3). Cobalt Wolves at (3, 6). Kinetic Falcons at (5, 7). Steady Hawks at (5, 5). Magnetic Raptors at (4, 0). Maya writes Magnetic Raptors as (4, 1) because the dot looks like it's between 0 and 2 from her angle. Iris glances at her sheet a minute later: "Raptors went zero-zero-zero on Day 7. Their dot is on the x-axis." Maya re-reads the dot from the wall — Iris is right. She crosses out the 1 and writes 0. "Thanks." Six dots, copied correctly the second time.
Step 3 — prediction before any math. "Before we do any math — if Speed doubles from 4 to 8, what do you think happens to goals? Circle one." Maya circles "increase but NOT double" without hesitating — she has been living the answer for forty-eight hours. Her Step 3 explanation: "Speed doubling doesn't double goals. Speed only sets how much of the field you can cover. The number of goals also depends on Power (how hard our kicks send the ball when we make contact), Endurance (whether we last through the match), and strategy. We had Speed = 6 yesterday and still scored zero against Cobalt because their Power was almost four times ours."
Matching cards — V/T/G. Three card types. V (verbal data point), T (data table), G (graph). Five sets to match — one V, one T, and one G describe the same linear relationship. Maya works with Iris and Devon. The trap the script warns about surfaces quickly: T-C and T-A both have slope = 0.5. Devon thinks they're a pair. Maya catches the difference: "T-C starts at Speed = 2, Goals = 1 — extend the line back and it passes through the origin. T-A starts at Speed = 0, Goals = 1 — y-intercept = 1. Same slope, different starting value. T-C goes with G-E (the line through the origin). T-A goes with G-B (the line that hits the y-axis at 1)." Iris re-reads it once, nods, marks the matching record. Five sets in eleven minutes. "Goals = 0.5 × Speed" (V1·T-C·G-E) vs. "Goals = 0.5 × Speed + 1" (V2·T-A·G-B) — the y-intercept is what distinguishes them.
Finger Speed-Sums. Six minutes of movement before the cognitive load goes back up. Both partners hold up 0–5 fingers simultaneously; first to call the correct sum wins the round. Rotate every minute. Maya wins three rounds against three different partners. By the time she sits back down, the math part of her brain has rebooted.
Equation building — Steps 4 through 9. Maya picks two points from the class scatter plot. She does NOT pick Patience's own point — at (6, 2) Patience is below the trend, and she wants to write the equation that describes the cloud of data, not their specific outlier. She picks (4, 3) (Iron Ravens) and (8, 5) (Kinetic Falcons). Step 5 — slope: m = (5 − 3) ÷ (8 − 4) = 2/4 = 0.5. Step 6 — solve for b: 3 = 0.5 × 4 + b → b = 1. Her equation: Goals = 0.5 × Speed + 1. Step 7 — interpret: "When Speed increases by 1, goals increase by 0.5. If Speed = 0, this model predicts 1 goal." She circles "not realistic" on b — a bot with Speed = 0 literally can't move to the ball, so 1 goal at Speed = 0 isn't a physical claim. It's a math artifact of where the line happens to cross the y-axis. The model lives within the domain of the data we have (Speed ≈ 3–8). Outside that range, it breaks down. Step 8 — test it on the doubling question: 0.5 × 4 + 1 = 3; 0.5 × 8 + 1 = 5. 3 to 5 is not doubling; it's a 67% increase. Her Step 3 prediction confirmed by her own equation.
STEP 4 — Two points: (4, 3) Iron Ravens · (8, 5) Kinetic Falcons
STEP 5 — m = (5 − 3) ÷ (8 − 4) = 2 ÷ 4 = 0.5
STEP 6 — b = 3 − 0.5(4) = 1
EQUATION: Goals = 0.5 × Speed + 1
STEP 7 — Per +1 Speed, goals +0.5.
At Speed = 0, model predicts 1 goal. b: NOT realistic ✗
A bot with Speed = 0 literally can't move to the ball.
The model lives in Speed ≈ 3–8 (where our data lives).
Outside that range, it breaks down. The y-intercept is
a math artifact of WHERE the line crosses the y-axis,
not a real-world prediction.
STEP 8 — Speed = 4 → 3 goals. Speed = 8 → 5 goals.
Doubling Speed: NO. 3 → 5 is +67%, not ×2.
STEP 9 — "Speed doesn't fully control goals because the line
doesn't go through zero — the y-intercept is 1, and a
bot with Speed = 0 can't even move, so the 1 isn't a
real prediction, it just tells me other stuff matters
too (Power, Endurance, strategy). I think the equation
only works for Speeds we actually have data for
(about 3 to 8). Outside that I'm guessing."
PATIENCE CHECK — at Speed = 6, model predicts 0.5(6) + 1 = 4 goals.
Patience actual: 2 goals. Residual = −2.
We are BELOW the trend. Why? Round 3 0–0 draw vs Cobalt
(Power gap of 4). Speed couldn't compensate.
REFLECT Q1 — Two teams got different equations. Both correct? YES.
Both equations come from real data. They differ because
teams picked different point pairs from the same scatter
plot. There is no single "right" equation — only better
or worse fits. I picked two points spread far apart
(Speed = 4 and Speed = 8 — an x-gap of 4), so my slope
is more reliable than Magnetic Raptors', who picked points
closer together. Both equations describe the same cloud
of data; mine is just sampled with a wider x-gap.
REFLECT Q2 — What matters MORE than Speed? POWER.
Patience has Speed = 6 (above class average) but scored
only 2 goals because Cobalt's Power = 9 prevented clean
shots in Round 3. Speed determines field coverage;
Power determines how hard your kicks send the ball when
you make contact — and whether your kick reaches the
goal area. The non-zero y-intercept is exactly where
Power, Endurance, and strategy LIVE in the equation.
Summarize. The teacher calls Maya up first — the clear-case team. Maya walks to the board and writes Goals = 0.5 × Speed + 1 in her own handwriting. Then the teacher calls Magnetic Raptors #22, who picked different points and got Goals = 0.75 × Speed − 1. Two equations side by side. Different slopes. Different y-intercepts. Same scatter plot. "Can two different equations both correctly describe the same data? Talk to your partner." Maya to Devon, quietly: "Yes. Different points → different sample → different line. Neither pair is 'the' right pair. They're both valid samples of the cloud." The teacher draws that exact answer out of the room across two minutes of talk moves. Then she names the practice: "What you just did — taking two data points, calculating a rate of change, and using it to describe the behavior of the entire dataset — is called building a linear model. It's how scientists, economists, and coaches make predictions from real data."
Season 1 Match Day 2 — Two Rounds
Two rounds across 70 minutes. The cycle is familiar from Day 7 — prediction before, results after, loss recovery if you lose. One thing changed: the prediction source. Today Maya uses the scatter plot equation from this morning's Matching Situations activity: Goals = 0.5 × Speed + 1. Patience's Speed = 6 plugs in directly: 0.5(6) + 1 = 4. Maya does the arithmetic in her head and writes 4 in the prediction column of the data log. At the next table over, a student on Magnetic Raptors writes the equation by hand, then taps the calculator on her stat-card sleeve to compute 0.5(4) + 1 = 3. The teacher walks past, glances at the calculator, doesn't say anything — match predictions are the calculator-OK column on the policy poster. The Raptors student writes 3, no shame in it. The bot is still locked from Day 6. Iris's hands are still off the keyboard.
Round 1. Steady Hawks #17 (2 − 1 − 0 from Day 7, strong with high Power). Pre-match: Maya reads Patience's equation prediction off the data log — "Equation says four. Goals = 0.5 × Speed + 1, Speed = 6, prediction = 4." Steady Hawks' Analyst reads theirs — "Three. Our equation gives 0.6 × 5 + 0.5 = 3.5, we rounded down." Three minutes. Steady Hawks reaches the ball first at 1:08 and pushes at her high chargePower. The ball drives clean over Patience's goal line. Hawks gets there again at 2:15 — pushes, scores. Patience scores once at 2:48, just before the 3-minute mark. Final: 1 − 3. Maya enters it: GF = 1, GA = 3, W/L = L. Equation predicted 4, actual was 1. Gap = 3 goals. Biggest residual she's recorded in two days.
90-second slope reflection — all class, before loss recovery. Before the teacher walks anywhere, she calls a quick reflection across the room: "Look at your Round 1 gap. Was your equation too high or too low? Talk to your partner — what does that tell you about your slope or your y-intercept?" Maya turns to Devon. "Equation gave us 4. We scored 1. Gap of 3 — equation was high." Devon, fast: "So either the slope is too steep, or the y-intercept is too high — or both. Same effect on the prediction." Maya: "Could be either. Can't tell from one match. But the direction is clear — we overestimate Patience. Same as the scatter plot residual this morning." Sixty seconds, then the teacher calls time. Maya's diagnosis is already in motion before the loss recovery starts.
Loss recovery — between Round 1 and Round 2 (Day 8 version). The teacher walks straight to Patience's table. She says, "That result was frustrating. That's a real feeling and it makes sense." Then, "Your equation predicted 4 goals. You scored 1. Open your equation. What Speed number did you put in? What Speed number did you actually run with in the match?" Maya: "Six in both. Speed input matches the bot. The equation just overestimated Patience — same way the class equation overestimated us on the scatter plot at (6, 2). The class equation doesn't see the Power gap; it only sees Speed." Teacher: "Your equation is as accurate as your data. You now have one more data point. Save the slope change for Open Lab — two data points aren't enough to revise a slope. What is one number you would change in your PREDICTION for Round 2?" Maya writes: "Round 2 prediction: 2 goals. The class equation overestimates Patience by ~2. Until I have enough data to revise the equation in Open Lab, I subtract 2 from the equation output to get a Patience-specific prediction. I'm not changing the equation. I'm correcting for what I know." Maya walks to Iron Ravens #25 — the same team she walked to in Day 7's loss recovery, callback by accident. "We're changing our Round 2 prediction from 4 to 2 because the class equation overestimates Patience by 2 goals — same direction as our slope reflection 90 seconds ago, same direction as Day 7's residuals against high-Power opponents."
Round 2. Magnetic Raptors #22 (mid-tier, Power = 4 → chargePower 16). Pre-match: Maya reads her revised prediction aloud, not the raw equation output: "We're revising. Equation gives four, but Patience-specific prediction is two." Teacher acknowledges it publicly to the room: "Patience revised their prediction based on Round 1 data. That is exactly how a model improves. Watch whether it works." Raptors: "Three for us." Three minutes. Both bots sweep toward center. When Patience pushes the ball, chargePower 25 drives it further than Raptors' chargePower 16 — Patience's pushes reach the goal area; Raptors' tend to fall short. Patience reaches the ball first at 0:52 and scores. Raptors finds the ball at 1:24, pushes toward Patience's goal, scores once. Patience reaches the ball first again at 2:38, scores. Final: 2 − 1. Patience wins. Maya enters it: GF = 2, GA = 1, W/L = W. Revised prediction was 2. Actual = 2. Gap = 0. Her revision was exact.
| R | Opponent | Equation prediction | Maya's prediction | Actual | Gap (Maya's) |
|---|---|---|---|---|---|
| 1 | Steady Hawks #17 | 4 (raw equation) | 4 (used raw) | 1 − 3 loss | 3 |
| 2 | Magnetic Raptors #22 | 4 (raw equation) | 2 (revised after R1) | 2 − 1 win | 0 |
Day 8 record: 1 win — 1 loss. Combined Season 1: 2 wins — 1 draw — 2 losses. Total gap on Maya's predictions today: 3 goals. Same metric using the raw equation both rounds would have been 5 goals. The revision cut today's gap by 40%.
Maya's loss-recovery hypothesis in Notes (Round 1 → Round 2 update):
"R1: equation predicted 4, actual 1, gap 3. The class equation fits the cloud of all teams' data — but Patience sits below the cloud at (6, 2). Same below-trend pattern as Day 7. Rule for Round 2 prediction (NOT for the equation): subtract 2 from raw equation output to correct for the Patience-specific Power gap. I'm not changing the slope. I'm correcting for known bias. Slope revision waits for Open Lab when I have at least 5 data points to fit a Patience-only line."
Leaderboard reveal. The teacher pulls her prediction-accuracy chart. Best Prediction today goes to Steady Hawks #17 — total gap of 1 across both rounds, equation was already well-fit. But the teacher does something specific before naming Hawks. She points at Patience: "Patience's equation overestimated their R1 result by 3 goals. They revised their Round 2 prediction based on that gap and predicted 2. They scored exactly 2. Their revision cut their gap from 3 to 0. That is how a model improves — not by throwing out the equation, but by correcting for known bias while you gather more data." Then she names Steady Hawks as Best Prediction. Maya is not Best Prediction today. She is not even in the top three. But she got named for the move that mattered to her. Then the teacher names what they did, plain: "What Patience did — using one real result to make a better next prediction — is how models get more accurate. Not by throwing out the equation. By checking it against what actually happens, and adjusting."
Exit ticket — sixty seconds, written in the journal. Prompt on the board: "My scatter plot equation predicted ___ goals today. My actual average was ___. My equation was (too high / too low / accurate). I think this happened because ___." Maya writes: "Equation predicted 4 goals per match. Actual average: (1 + 2) / 2 = 1.5 goals per match. Equation was: too high. I think this happened because the class equation fits a cloud of all teams' data — Patience sits below the cloud's trend line because Power = 5 isn't enough to convert Speed-6 opportunities into goals against high-Power opponents. The Speed-only equation can't see the Power gap. The fix is more data points, not a different equation." Drops the data log on the table. Closing line from the teacher, then immediate transition to Rivalry Cards: "Leaderboard is up. Now you tell each other what you think about it."
Rivalry Cards
The one rule, on the board. Index card on every team's table. Markers staged. The teacher writes one sentence — that is the entire launch script — and then steps back: "Your card must cite a specific number from the dashboard. Not 'you're slow.' Specific: 'Your Speed = 4 means your bot runs at 20% motor power.' If I cannot find that number on the dashboard, the card comes back to you." Twenty minutes. One card. One rival. Pick your rival, write their team name at the top, go.
Data lookup — six minutes, hands off the marker. Maya picks Iron Ravens #25 — the team Patience beat in Round 1 yesterday, and the team whose stat profile she's been carrying around in her head since the scavenger hunt. She does NOT write yet. She opens the dashboard to Iron Ravens' row first and copies the numbers onto her draft: Power = 3, Endurance = 8. The teacher walks past and nods — dashboard is open, two numbers on paper before any words. Strong foundation. She moves on. Iris pulls up Patience's own row: Power = 5, Endurance = 4. Devon: "So they have endurance but we hit harder." Maya already knew. She's been the analyst on this rivalry for two days.
Write the card — five minutes. Maya holds the marker. Two sentences. State the stat. State what it means in the match. Make a prediction match results can prove right or wrong. She drafts on a scrap first. Two stats. Two formulas. One non-obvious insight — the kind of move the Exceeds exemplar pulls. She writes the final card slow enough for Iris and Devon to follow, then signs — Patient Foxes #23 at the bottom.
To: Iron Ravens #25
"Your Power = 3 means your chargePower is 9 (P² = 3 × 3). Patience's Power = 5 → chargePower = 25. We hit the ball almost 3× harder per kick. When the match ends, the scoreboard will show how many extra clean shots that bought us."
— Patient Foxes #23
Card audit (Meets level): One dashboard number (P = 3). One correct formula application (P² for chargePower). One verifiable claim (more clean shots). Two-sentence card, readable from a standing distance. Maya drafted a longer version with a second formula on Endurance decay, but Iris read it and said "too much. Pick one." Maya cut the Endurance paragraph. The card is shorter and stronger.
Facilitator review pass. The teacher walks the room. She picks Patience's card up, reads it once, looks for the three checkpoints: (1) specific dashboard number — P = 3, there. (2) Correct formula application — P² = 9, correct. (3) Verifiable claim — more clean shots, match-checkable. She hands the card back without saying anything except: "Post it." Patience moves to the wall.
Read aloud + post + practice naming. Maya reads it aloud — flat tone, single breath, doesn't milk the closing line. She tapes the card to the wall next to Iron Ravens' team area. The teacher names the practice for the whole room — using a different team's longer two-formula card as the example, not Maya's: "What [other team] just did — starting from two stat values, applying formulas to both, and making a prediction tomorrow's verification round can prove right or wrong — is mathematical modeling. A prediction with a number behind it is not trash talk. It is a claim." Maya listens and notes the difference: the other team's card uses two formulas. Mine uses one. That's the difference between Meets and Exceeds.
Day 8 Open Lab
Scatter plot review. The teacher directs every team back to the morning's linear equation and asks them to compare it against today's match results. "Your linear equation predicted X. Today you scored Y. Does today's result support that model, or contradict it?" Patience pulls up their equation — Goals = 0.5 × Speed + 1 — and lays today's data next to it. R1: equation predicted 4, actual was 1, gap of 3. R2: equation predicted 4, actual was 2, gap of 2. Maya, Iris, and Devon work the question together. Maya says it first: "It holds for the cloud. The class equation describes the average team well. For Patience, it consistently overestimates." Iris adds: "And the gap matches our scatter plot residual from this morning — we were at (6, 2) on the cloud, two below the line. Today we're scoring 1 and 2 against an equation that predicts 4. The line hasn't moved; we've always been below it." Devon: "So the model holds — for the cloud. It doesn't hold for us. Same thing all day."
The teacher circulates with one question per team. When she reaches Patience, Maya gives the answer ready: "Equation supports the model as a class average. Contradicts it for Patience — we're below the prediction every match. Same direction as our scatter plot residual." The teacher nods, asks one follow-up: "What would you need to make a Patience-specific equation work?" Maya hesitates. "More data, I think? Maybe at different Speeds?" She trails off — she's not sure how to finish the thought. The teacher doesn't push. "That's the right instinct. Hold onto it for Day 11 — that's when you can change the bot's Speed and get a new data point." Maya nods. The teacher moves to the next table. Maya turns to Iris: "What would 'at different Speeds' even mean if our bot is locked?" Iris shrugs: "Day 11 reallocation. Then we test." Maya writes "Day 11 — change Speed, take a new data point, see if the equation gets sharper" in the margin of her data log. The question is filed. It has a date attached.
Formula Race Cards prep. Before the session ends, the teacher reminds every team to prepare Formula Race Cards for tomorrow's relay session. Patience pulls a stack of blank index cards and starts sorting by formula type — Motor Power, Charge Speed, Follow-Through, Turn Ratio, Decay Rate. Devon writes the formulas in his fast block-print. Iris double-checks each one against the Formula Reference Card on the wall. Maya writes the example calculations in the corner of each card — one real team's stat values plugged in, with the worked arithmetic next to it. They stack the cards in formula-type order and clip them with a rubber band. Tomorrow morning's relay will go fast.
Collaboration Rating — Hold Up Your Number
Each person silently rates today's collaboration 1–3. Hold up at the same time. Iris and Maya both hold up 3. Devon holds up 2. The team takes their two minutes.
Iris [3] ← solid Devon [2] ← something to say Maya [3] ← solid Devon's two minutes: "The defensive code was a Maya call. It worked. But I wasn't sure about it and I said it out loud and that probably came off as not trusting her. I'm not used to her calling shots. I should be — she's right a lot. I'll get used to it." Maya's response: "It's okay. I'm not used to me calling shots either. I'll try not to act so sure when I'm not sure."
The team rating goes back to three threes after that exchange. Nobody had to vote again. Iris just said "yeah, good" and the team moved on.
Rivalry Card Response · Formula Relay · Match Day 3
Week 3 · Season 1 Day 3Rivalry Card Response
Every team finds a Rivalry Card face-down on their table when they walk in. Not the card they wrote — the card someone else wrote about them. The teacher writes the rule on the board in one line: Open the dashboard. Find the number they cited. THEN respond. Underneath, the two outcomes: (1) wrong number → write the correction on a sticky note with your team name and post it on their card on the wall. (2) right number → you can't change your stats this season. Find one stat where the matchup favors you and write a one-sentence plan for Match Day 3 on the board. Ten minutes. Flip.
Patience flips. The card on their table is from Iron Ravens #25 — the same team Maya wrote her own card to yesterday. Maya reads it out loud:
To: Patient Foxes #23
"Your Endurance = 4. By minute 3, your bot is at 28% power. Ours is at 46%. You'll be slow at the end while we still have full kick. Match Day 3, we win late."
— Iron Ravens #25
Maya opens the dashboard before she says anything. She pulls up Patience's row first — E = 4 — and reads it across to Devon. Devon runs the decay rate on his scrap paper: (20 − 4) × 1.5 = 24. Power at minute 3: 100 − 24 × 3 = 100 − 72 = 28%. Devon: "Twenty-eight percent. That's right." Maya pulls Iron Ravens' row: E = 8. Devon runs the decay: (20 − 8) × 1.5 = 18. At t = 3: 100 − 18 × 3 = 46%. Devon: "Forty-six. That's right too." Iris leans over: "They did their math right." Maya, checking Devon's two numbers against the dashboard's auto-computed values: "Both numbers match."
The teacher walks past. "Did you find that number in the dashboard?" Maya nods. "Both of them. Card's accurate." The teacher moves on. The teacher's check confirmed the dashboard was open and a number was recorded. It didn't confirm Devon got the decay rate right on his scrap paper. (He had to redo the Iron Ravens line twice before it matched what Maya was reading off the dashboard. Maya saw the redo and didn't say anything.)
No sticky note for Patience — the card is right. That means they have to scout back. Iron Ravens' stat line goes next to theirs on the dashboard:
STAT PATIENCE IRON RAVENS WHO HAS THE EDGE ───────────────────────────────────────────────────── SPEED 6 4 Patience (faster) ENDURANCE 4 8 Iron Ravens (lasts longer) TURNING 5 5 tied POWER 5 3 Patience (chargePower 25 vs 9)
Maya stares at the comparison. The teacher's instruction was one stat. She has two — Speed and Power. Devon, quietly: "Use both? Or pick one?" Maya: "The plan is one sentence. But the sentence can name both stats if they work together." Iris: "They do. Faster off the line, harder kick. That's the same play we ran against them on Day 7." Maya nods. She picks up the marker and walks to the board, where teams are writing plans in a column. She writes:
"Patient Foxes #23: score in the first 60 seconds — Speed 6 vs their 4 and chargePower 25 vs their 9 — before their Endurance starts to matter. Same play as Day 7 R1."
— Patient Foxes #23
Wrap. The teacher pulls her monitoring chart and picks one finding. She doesn't pick Patience. She picks Magnetic Raptors #22, who got a card from Kinetic Falcons #8 that said "Your Speed is 4 so you only run at 20% motor power. We're at 35%. You can't catch us to the ball." Raptors checked the dashboard and found Falcons had cited Speed = 7 on their own line — but the dashboard said Falcons' actual Speed was 5. Raptors posted a sticky on the wall correcting it. The teacher reads the sticky aloud: "Falcons: dashboard shows your Speed = 5, motor power 25%. Not 35%." Then she names the practice: "What Raptors did — verifying the number against real data before responding to it — is what analysts call data-driven decision making. You don't argue with someone's claim. You check the number first. If it's wrong, you correct it. If it's right, you plan around it."
She glances at the board where the plan sentences are. "Twelve plans, twelve teams. Every one of these names a stat. That's the right shape. Now we make sure your formulas are accurate enough to trust the next set of claims. Formula Relay starts in two minutes."
Formula Relay: All Five Types in One Race
Each team gets a stack of 20 cards face-down on their table. "One person flips the top card. Your team solves it together. When you have the answer AND the work — formula, substitution, answer — one person brings the card and your paper to me at the stamp station. If it's right, I stamp it. If it's wrong, I give it back. I will not tell you what's wrong. I will say 'check your work.' One more attempt. After the second attempt, you move on to the next card whether it's right or not. Race ends at twenty-two minutes. First team to finish all twenty with fewer than three errors wins. After the race, you sort your cards by type and count your errors. That count tells you something you need this afternoon." Comprehension check: Iris restates the rule to Devon and Maya in fifteen seconds. Two attempts. After two, move on. Got it.
Race. The teacher goes to the stamp station with the answer key and a tally chart. She does not circulate. The team divides the work without talking about it: Devon flips, Maya does the math out loud, Iris writes the work on their paper and double-checks before anyone walks anywhere. Card 1 is THE BLITZ, Speed = 7. 7 × 5 = 35%. Stamped. Card 2 is MARATHON, Endurance = 6, t = 3. Maya: "20 minus 6 is 14. 14 times 1.5 is 21. Times 3 is 63. 100 minus 63 is 37%." Iris writes every step. Stamped. They get a rhythm. By card 7 they have six stamps and one card still in their hand.
First return. Card 16 is GRINDER — E = 8, t = 3. Same Iron Ravens formula they ran twice this morning. Maya goes fast: "100 minus 8 times 1.5 times 3 — that's 100 minus 36 — 64." Iris writes it. They take it up. Teacher hands it back: "Check your work." Devon, on the walk back: "What's wrong with it?" Maya re-reads. Oh. She forgot the parens. (20 − 8), not 8. "It's 20 minus E, not just E." Iris draws a slash through the 8 and writes: (20 − 8) × 1.5 × 3 = 12 × 4.5 = 54. 100 − 54 = 46%. Stamped on the second try. The same mistake she'd been catching other people on for two weeks. She made it because she rushed.
Second return. Three cards later, ZERO WASTE — Budget two-step. The card lists S = 4 · T = 3 · P = 6 · Budget = 20 · t = 2 minute and asks for power output at minute 2. Maya does the budget math fast: "20 minus 4 minus 3 minus 6 is 7. E = 7." Iris writes it. They take the card up. Teacher hands it back. "Check your work." Devon, on the walk back: "E equals 7. That's right, isn't it?" Iris re-reads the card aloud — slowly this time — and stops at the last clause. "It says power output at minute 2. We just found E. We haven't run the decay formula yet. That was step 1. There's a step 2." Maya re-reads. The card didn't ask for E. It asked for power at minute 2. She does step 2: P(2) = 100 − (20 − 7) × 1.5 × 2 = 100 − 13 × 3 = 100 − 39 = 61%. Iris writes the full work underneath. Stamped on the second try.
End of race. At twenty-two minutes the teacher calls time. Patience has finished seventeen cards. Two errors corrected (cards 16 and 20). One card sitting in their hand they didn't get to. They were not the first team done. They were not the last. They sit down with their pile.
Error sort. The teacher sets out six labeled piles around the room: Speed · Endurance · Turning · Power · Follow-Through · Budget. Teams sort and count their unstamped cards. Maya does the math: Endurance pile — one correction (the rushed Card 16). Budget pile — one correction (the ZERO WASTE step-2 miss). Everything else — zero. Iris writes the counts on the sorting labels. Endurance and Budget are tied at one each. The team has to pick one as their target. Maya, after a second: "Endurance. The bracket mistake is on a formula I should know cold. Budget I just rushed past the question — that's a reading mistake, not a math mistake." Iris nods and draws a star and the team name on the Endurance label and tapes it on the wall.
Summarize. The teacher pulls her tally chart from the stamp station. Two columns ran high: Power (eleven returns across all teams) and Budget (nine returns). Patience had zero of each. The teacher names them and asks the room: "Why those two? Talk for thirty seconds." Maya turns to her team. Iris: "Power is P². Most teams probably did P times 2." Devon nods. Maya remembers Day 4 — doubling Power quadruples charge speed — and almost says it, but the teacher calls on a different team first. A kid at the Magnetic Raptors #22 table says "we kept writing P × 2" and the teacher does the talk-move sequence — rephrase, restate, press, wait. The discussion gets to "squared is bigger than doubled" but it doesn't quite get to the structural why before the teacher steps in: "Every formula except Power is linear. Double the stat, roughly double the output. Power is the only one that grows faster than that. P goes from 4 to 8 — doubles — charge speed goes from 16 to 64. Four times, not two times. That's why Power surprises people." Maya copies the sentence into her journal.
Exit ticket — Match Day 3 prediction. Seven minutes. The teacher writes the three requirements on the board: (1) Formula stated with variable names. (2) Substitution shown with your team's actual stat values. (3) One sentence interpreting what the answer means in the context of the match. Then a footnote underneath: "Budget-target teams — use the Endurance formula with the E you calculated from the budget constraint, not the budget equation itself." Patience's target is Endurance, so the footnote isn't for them — but Maya re-reads it twice anyway, because she got Card 20 wrong by forgetting that the budget equation isn't where the answer lives. Iris pulls out a clean exit ticket sheet. Maya does the math on her scrap first. Same Patience numbers she has now run three times today. Iris writes the clean version onto the sheet.
TARGET FORMULA Endurance — P(t) = 100 − (20 − E) × 1.5 × t
PATIENCE E = 4 · 3-minute match
SUBSTITUTION P(3) = 100 − (20 − 4) × 1.5 × 3
= 100 − 16 × 1.5 × 3
= 100 − 72
= 28%
INTERPRETATION Our power at the end of Match Day 3 will be 28%.
Same answer as Iron Ravens' rivalry card said this
morning. We need to score before minute 2 — our
motor will be too tired to chase down a fresh ball
at the end.
Season 1 Match Day 3 — Three Matches + The 20% Gap Rule
The teacher says to open the interactive lesson and use it during this activity. There is one new rule. Same cycle as every match day: prediction before, results after, loss recovery if you lose. New today: the 20% gap rule. The teacher writes it on the board. "After each match, calculate the gap between your prediction and your actual goals. Formula:" |prediction − actual| ÷ prediction × 100. "If the gap is over 20%, you write one sentence in the Notes column: 'The variable my model missed was _____ because _____.' One sentence. One specific variable from your formula. Not 'we scored fewer goals.' Not 'our bot was slow.' One number from your formula that didn't match what the bot actually did." Patience's target formula from this morning is still on the wall: Endurance — P(t) = 100 − (20 − E) × 1.5 × t. Maya's Round 1 prediction is already written from the Formula Relay exit ticket: 2 goals. Same plan as the Rivalry Card Response board this morning. Score before our 28% kicks in.
Round 1 — rematch with Iron Ravens #25. Pre-match: Maya reads Patience's prediction. "One goal. Score by minute 2." Iron Ravens reads theirs — "One for us. We hold until your Endurance drops." Three minutes. Patience reaches the ball first at 0:34, aligns, and pushes at chargePower 25 — the ball rolls steadily across the field. Patience scores at 1:18 — Maya's planned window. Iron Ravens tries to push late but at 2:48 her bot loses contact with the ball before the goal line. Final: 1 − 0. Maya enters it. Gap: |1 − 1| ÷ 1 × 100 = 0%. No sentence required. Iris, watching the Notes column stay blank: "Plan worked." Devon nods. The morning plan carried into the afternoon.
Round 2 — rematch with Kinetic Falcons #8. The matchup Patience lost on Day 7. Maya's prediction this time: 1 goal. She's using the Endurance formula even though Power is the real issue — that's the rule. "At minute 1 we're at 76% power. We get one clean chance at full power. After that, Falcons' Power decides it." Falcons: "One for us. Same as last time." Three minutes. Falcons reaches the ball first at 0:54 and pushes at chargePower 49 — same as Day 7. The ball drives over Patience's goal line. Maya's chance at minute 1 never comes; Patience is near the ball for stretches but can't drive it past Falcons' bot at chargePower 25. Neither team scores again. Final: 0 − 1. Maya enters it: |1 − 0| ÷ 1 × 100 = 100%. Sentence required.
Loss recovery + the 100% sentence. The teacher walks to Patience's table. Step 1: "That result was frustrating. That's a real feeling and it makes sense." Thirty seconds. Step 2: "Your prediction used Endurance. Your formula said 76% power at minute 1, which you said meant one goal. You scored zero. Look at the Endurance formula — did the decay rate match the actual battery behavior today?" Maya thinks. "The decay rate was fine. We just never had the ball. Endurance didn't matter because we never used our motor." Teacher: "That's your sentence. Write it down." Devon writes it in the Notes column, copying down what Maya said:
First attempt (Devon, copying Maya):
"We scored fewer goals than predicted because Kinetic Falcons got the ball first."
Teacher reads it and stops at her table. "Which number in the Endurance formula was wrong?" Devon re-reads what he wrote. Outcome, not input. He crosses it out. Maya, looking at the formula on the dashboard: "The decay rate is right. The assumption that we'd HAVE the ball is what was wrong." Devon nods and rewrites.
Revised:
"The variable my model missed was the decay rate. I assumed our Endurance 4 would give us 76% power at minute 1 and that we'd get one clean chance. But the formula assumes we have the ball. Falcons got the ball first and we spent the whole match chasing — our power level at minute 1 didn't matter because we never had a kick lined up. Endurance is a power-budget formula, not a who-gets-the-ball formula."
Three sentences instead of one. The teacher reads it, nods, and writes "see Open Lab Track A" at the top of the page.
Round 3 — rematch with Steady Hawks #17. Hawks beat Patience on Day 8 with Power. Maya's prediction this time leans on the Endurance lens: Steady Hawks' Endurance is the lowest in the league (E = 2 → decay rate 27%/min). By minute 3 they hit the power floor. Maya: "They fade hard. We hold up. Prediction: 2 goals — one early before they're tired, one late after they're crawling." Hawks: "One for us. We do our damage early." Three minutes. Patience scores at 1:14 — Maya's early window. Hawks miss a kick at 2:18 (their motor is visibly slow). Patience's late chance at 2:42 goes wide — Hawks' defender bot is in the way even at 19% power. Final: 1 − 0. Maya enters it on the dashboard: |2 − 1| ÷ 2 × 100 = 50%. Over 20%. Sentence required again. Devon writes faster this time — Maya has been narrating the insight while watching the late chance go wide:
"My model missed the decay rate — for Hawks, not for us. I thought their decay 27 would drop their power so low by minute 2 that they couldn't defend. But Power 7 still kicked the ball away even when their motor was slow. The decay number was right. I just assumed low power meant no defense — that part was wrong. Devon said it: "Power and Endurance aren't the same kind of stat." I think I was supposed to see that before I wrote the prediction."
The teacher reads it on her circulation pass, doesn't say anything, and moves on. Maya watches her go. The lack of stopping is its own confirmation.
Gap entry review. Nine minutes. The teacher walks the room checking that every row over 20% has a sentence. Patience has two sentences in their Notes column — Devon's handwriting, Maya's framing. Maya re-reads both before the teacher gets to her. The R2 sentence feels more honest. The R3 one feels more careful — they wrote it knowing the teacher would read it. She doesn't know if that means they wrote what she actually thought, or what they thought the teacher wanted. She leaves both as written.
Standings after Match Day 3. The teacher posts the running Season 1 leaderboard on the wall. Best Prediction first, before Wins. Across all three match days so far, lowest average gap goes to Steady Hawks #17 again — they've led that column every day of the season. Then Wins: Kinetic Falcons #8 is undefeated. Patience is at 4 − 1 − 3 across 8 matches. Middle of the table. "Three more matches tomorrow afternoon — Final Round — and then Season 1 closes for real," the teacher says. "Today we found that a prediction is only as good as the accuracy of its inputs. When the gap is over 20%, the model didn't fail — one number in the model was wrong. Naming that number is the first step in improving the model. The gap sentences you wrote today are the evidence base for the reallocation decision after Final Round."
Data Swap + Post-Match Debrief
The teacher writes one sentence on the board: "Every team's dashboard is going to a different team. That team has 10 minutes to find one pattern in your data." Underneath she writes the distinction: pattern, not result · analysis, not advice. She explains it with one example. "'They lost Match 3' is a result. 'Their goal rate dropped each match day despite constant Speed' is a pattern. One is news. The other is data." The pairings go up on the board. Patience gets Magnetic Raptors #22's dashboard. Cobalt Wolves #14 gets Patience's. The team that drew Patience on Day 7 R3 is the team that's going to read Patience's eight matches of data. Maya doesn't notice the symmetry until she sees Cobalt's table pull up Patience's dashboard across the room.
Explore — what Patience finds about Magnetic Raptors. Maya opens Raptors' dashboard on her screen. Eight matches. The first three from Day 7 are losses; Raptors went 0 − 0 − 3. The Day 8 row is a loss to Patience. The Day 9 rows aren't filled in yet because the dashboard updates are still running. Maya scrolls to the stat allocation panel: S = 4, E = 6, T = 6, P = 4. Turning is 6 — that's the highest in the league. She scrolls to the goal counts across all 8 matches: 0, 0, 0, 1, 0, ?, ?, ?. Total scored: 1 goal. Across 5 completed matches. Iris reads over her shoulder. Maya, slowly: "Their Turning is the highest in the league and they almost never score." Iris: "Card?" Devon picks up the index card and writes a first try, copying Maya's framing: "Raptors' Turning didn't help them." Iris reads it and shakes her head. "That's not a pattern. That's a result. The teacher said specific." Devon crosses it out. Then, looking at the dashboard Maya is still scrolling: "Look at the opponents in the matches where they scored zero. Their Power." Maya scrolls back to the matchup column. Every team Raptors lost to in Day 7 had Power ≥ 7. The one match they scored against (vs Patience, who has Power 5) is the only one with a goal. Devon rewrites the card.
"We noticed Magnetic Raptors' Turning = 6 is the highest in the league but they scored 0 goals in every Day 7 match against opponents with Power ≥ 7 (Cobalt, Iron Ravens, Steady Hawks). Their only goal in 5 completed matches was against us — Power = 5. The pattern: high Turning doesn't translate to goals when the opponent's chargePower is much higher than yours. The bottleneck is Power, not Turning."
— Patient Foxes #23
Card exchange. Dashboards go back to their owners. The teacher gives each team 60 seconds to read their finding card aloud to the team whose dashboard they analyzed. Maya reads Patience's card to Raptors. Raptors' Analyst writes the last sentence down word for word and nods. "That's a thing we haven't said out loud." Then the cross-room exchange: Cobalt Wolves' Analyst stands up at her own table and reads what Cobalt's card says about Patience. Maya listens.
"We noticed Patient Foxes' goal count drops to 0 or 1 every time you play opponents with Power ≥ 7 (Kinetic Falcons twice, Steady Hawks twice — that's 4 of your 8 matches). Against Magnetic Raptors (Power = 4) you scored 2 goals. The pattern: your goal count is bottlenecked by your opponent's Power. Your gap sentences across Day 7 and Day 9 keep naming Endurance, but the data shows the constraint is your own Power — only 5, which gives chargePower 25. The bottleneck is your Power, not your Endurance."
— Cobalt Wolves #14
Maya doesn't write anything down while Cobalt reads. She is still listening when Cobalt's Analyst sits back down.
Summarize. The teacher picks three teams to share their finding cards out loud — Cobalt's card about Patience is the third one she picks because it's the cross-metric comparison she wants on the board. She names the practice for the whole room after Cobalt reads: "What Cobalt just did — holding two variables in mind at once, in this case opponent Power and Patience's own Power, and asking how they constrain each other — is called controlling variables. That's one of the most powerful moves in math and in modeling. You'll use that term by name when we get to systems of inequalities in Week 3." Maya copies controlling variables into her journal. Underneath the phrase she writes one line of her own: "Cobalt said it in one sentence. I've been writing around it for nine days."
Exit ticket. Three minutes. The teacher hands out half-sheets. Two questions: write your team's finding in one sentence, and write a Track A hypothesis for tomorrow. Maya writes:
Q1 — Data Swap finding (about Magnetic Raptors):
"Magnetic Raptors' Turning = 6 is the highest in the league but their goal count is 1 across 5 completed matches. Across all the matches where they faced an opponent with Power ≥ 7, they scored 0. The pattern: high Turning doesn't translate to goals when their chargePower (16) is below their opponent's chargePower. The bottleneck is Power."
Q2 — Track A hypothesis (for Patience's own Season 2 reallocation):
"If we change Power from 5 to 7, we expect Patience's chargePower to go from 25 to 49 because chargePower = P². We expect to score more against high-Power opponents because our Match Day 3 Round 2 sentence said we never had the ball when Falcons had chargePower 49 — at chargePower 49 ourselves, we'd match them on first contact instead of losing it every time. We'd have to drop 2 points somewhere else. Probably Speed from 6 to 4 because our Endurance and Turning are already where we need them, and Cobalt's finding said our Power is the bottleneck, not our Speed."
Best Match Gallery Walk · Distance Formula
Week 2 closes · Season 1 → Distance + CoordinatesBest Match Gallery Walk
Season 1 is almost over. Each team gets one index card and a marker. The teacher writes the rule on the board: three things, all required. Stat configuration. Match result. One sentence that names what you found — must contain a number, a formula, or a variable. Below it, the vote criterion on a separate sign: "Most mathematically interesting finding — who learned the most from one match result. Open your data log. Find the number first. Write the number on scratch paper. THEN build the sentence around it." Maya pulls up the dashboard. Iris and Devon huddle over what counts as Patience's "best" match.
Picking the match. Iris says "Day 9 Round 1 — Iron Ravens. We won 1-0, prediction was 1, gap was zero." Maya shakes her head. "That match was easy. The plan came from yesterday's Rivalry Card Response. The math was the morning's, not the match's." Devon: "Day 8 Round 2. Magnetic Raptors. You revised the prediction from 4 to 2 between rounds, and the revision was exact." Iris pauses. "That's the one where the teacher named the move." Maya nods. Day 8 R2. Maya finds the row in the dashboard: scatter plot equation Goals = 0.5 × Speed + 1, Patience Speed = 6, raw prediction = 4, R1 actual = 1, R2 revised prediction = 2, R2 actual = 2. Five numbers. She reads them across to Devon, who picks up the marker.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PATIENT FOXES #23 · Best Match · Day 8 R2 vs Magnetic Raptors
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. STAT CONFIG S = 6 · E = 4 · T = 5 · P = 5
2. RESULT Goals for: 2 · Goals against: 1 · WIN
3. FINDING Class scatter plot equation: Goals = 0.5 × Speed + 1.
With Speed = 6, raw prediction = 4. Round 1 actual
was 1. We revised Round 2 prediction down by 2,
to 2. R2 actual = 2. Revision was exact. The
equation overestimates Patience by ~3 goals.
— Patience
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Gallery walk. Cards go up on the wall. Eight minutes of walking. Maya reads every card. Half of them are Level 1 — *"We won 3-0. Speed was our highest stat."* No formula, no number, no gap. A few are Level 2 — variable named, no calculation. Steady Hawks' card is Level 3: motor power computed, prediction cited, no comparison to actual. Then Maya stops at Magnetic Raptors' card. It is built on the finding Patience gave them yesterday.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
MAGNETIC RAPTORS #22 · Best Match · Day 9 R3 vs Iron Ravens
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. STAT CONFIG S = 4 · E = 6 · T = 6 · P = 4
2. RESULT Goals for: 1 · Goals against: 0 · WIN
3. FINDING Turn Ratio = 0.2 + (6 × 0.02) = 0.32. Iron Ravens'
Turn Ratio = 0.30. Yesterday Patience's data swap
finding said our Turning doesn't help when our
chargePower (16) is below opponent's. Iron Ravens'
chargePower is only 9 — LOWER than ours. The gap
that mattered was chargePower 16 vs 9, not the
Turn Ratios. First win of the season.
— Magnetic Raptors #22
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Dot vote. Three stickers per student. Maya votes for three cards: Magnetic Raptors, Cobalt Wolves' card (also Level 4, about their high-Power match), and a Level 3 card from Kinetic Falcons. She does not vote for Patience's own card. The script doesn't say she can't — but she reads her own card and feels like it stops one sentence short. It says the equation overestimates Patience by 3 goals. It doesn't say why. A team that won 3 − 0 with a Level 1 card gets the most stickers. The teacher acknowledges the winner without reading the card aloud and then says: "Here is the one I would have voted for." She reads Magnetic Raptors' card.
Reveal. The teacher reads the Raptors card aloud, twice. Then she reads a Level 1 card without naming the team — "Speed was our highest stat and we won." She holds them side by side. "What is the first card doing that the second one isn't?" A student answers: "The first one has a number." Another adds: "It compares two numbers. ChargePower 16 vs 9." The teacher: "That comparison is called reasoning from evidence. Magnetic Raptors started with a result — they won 1-0 — and ran it through a formula chain to name the variable that explained the win. The chargePower gap of 7 points is the cause." Then the bridge: "Every card on the wall names a finding. In the next fifty minutes we add a distance to it. Your best Season 1 charge sent the ball from tip-off to somewhere on the field. The Distance Formula — d equals the square root of x2 minus x1 squared plus y2 minus y1 squared — tells you how far the ball traveled, how far it still has to go, and how much of that movement actually got you closer to the goal."
Exit ticket. Sixty seconds. The teacher hands out half-sheets. Two questions: write your team's finding sentence. Is it Level 3 or Level 4? If Level 3 or below, what would you add to make it Level 4? Maya writes:
My team's finding sentence:
"Class scatter plot equation: Goals = 0.5 × Speed + 1. With Speed = 6, raw prediction = 4. R1 actual = 1. We revised R2 prediction to 2. R2 actual = 2. Revision was exact. The equation overestimates Patience by ~3 goals."
Level: Level 3. I have the formula, the prediction, the actual, and the gap. But I don't say what causes the gap. I just say it exists.
What I'd add to make it Level 4: "The cause is chargePower. Patience's chargePower is 25; teams with chargePower above 25 hold us to 1 goal or less every time. Magnetic Raptors' card said the same thing in reverse. The variable my card was missing is the one Cobalt named for us yesterday — opponent Power."
Distance Formula: How Far Did Your Ball Travel?
Worksheet on every desk, but it's also an interactive lesson. Three fixed positions on the 8 × 4 field: A = (4, 2) at tip-off, G = (8, 2) at opponent's goal. B is yours — where your ball landed after your team's best Season 1 charge. The driving question on the board: "Can your bot move the ball far enough to score?" The distance formula sits next to it: d = √((x₂ − x₁)² + (y₂ − y₁)²). The teacher reads one sentence: "Subtract first. Square each difference separately. Then add. Then take the square root." Hard stop before any calculation: "Mark Position B on your field diagram. Read all ten steps before computing anything. Including the Big Idea at the bottom."
Picking B. Maya, Iris, and Devon huddle. The best match was Day 8 R2 vs Magnetic Raptors — they kept the Gallery Walk card on their table as reference. Patience's bot launched from (0, 4), ran the L-path to (4, 2), and kicked. The ball ended up… somewhere east of (4, 2), but slightly off the straight line because Patience's Turning = 5 didn't square the bot perfectly. Maya estimates: "Six on x, maybe three on y. The kick went east and slightly up." Devon agrees. Iris writes B = (6, 3) on the worksheet.
Step 2 — A → G. The worksheet does this one for them: A and G share y = 2, so it's a horizontal distance. 8 − 4 = 4 units. Maya writes 4 in the blank without thinking — she's looked at the field for ten days.
Step 3 — A → B — and the algebra error. Devon has the marker. "x difference: 6 minus 4 is 2. y difference: 3 minus 2 is 1. Add: 2 plus 1 is 3. Square: 9. Square root: 3." He writes d = 3 and reaches for Iris's sheet to copy across. Iris reads what he wrote, frowns, and points: "We added before we squared. The formula says square each piece first, then add." Devon stares. Iris does the small-number test out loud: "3 plus 4, squared, is 49. 3 squared plus 4 squared is 9 plus 16 is 25. Those aren't the same." Devon's face does the thing it does when he realizes a small problem. He recomputes: (2)² + (1)² = 4 + 1 = 5. d = √5 ≈ 2.24 units. Iris writes the corrected work on her own sheet. Devon writes it on the teacher's circulation sheet, in case the teacher asks.
Step 4 — B → G — estimate first. The worksheet asks: before calculating, should B → G be greater than or less than 4? Maya looks at the field. B is between A and G visually, but it's not on the straight line — it's one unit north. She estimates "less than 4 but not by much." Calculation: x difference 8 − 6 = 2, square 4. y difference 2 − 3 = −1, square 1. Sum 5. √5 ≈ 2.24 units. Same number as A → B. Maya stops. "Both legs are √5. That's because the angles are symmetric across the center of the kick." She doesn't say it aloud but she thinks it. She writes it in the margin.
Steps 5–7 — progress, efficiency. Distance to goal before: 4. After: 2.24. Progress = 4 − 2.24 = 1.76 units. Maya writes the sentence on Step 6: "The ball moved 2.24 units total, but only 1.76 units reduced the distance to the goal." Step 7 — efficiency. Devon does it first and writes 2.24 / 1.76 = 1.27. Iris reads it and pauses. "That's bigger than 1. Efficiency should be less than 1, right? Because some of the movement was wasted." Maya re-reads the worksheet on the dashboard: "useful progress ÷ total movement." Devon flips the ratio: 1.76 / 2.24 ≈ 0.79. 79% efficient. Devon crosses out the 1.27 and writes 0.79. 21% of the kick was wasted on the wrong direction.
Step 8 — minimum kicks. Useful progress per kick = 1.76. Distance from A to G = 4. 4 ÷ 1.76 ≈ 2.27. Round up: 3 kicks to score, theoretically. Patience scored twice in the actual match (at 0:52 and at 2:38). Two kicks, two goals. Devon: "Our actual was better than the theoretical minimum." Iris: "Because Step 8 assumes every kick is identical to this one. Some of our kicks were straighter than this one."
STEP 6 — Movement vs. Progress Distance ball traveled (A → B): 2.24 units Distance toward goal: 1.76 units "The ball moved 2.24 units total, but only 1.76 units reduced the distance to the goal." STEP 7 — Efficiency 1.76 ÷ 2.24 = 0.79 (79%) 21% of the kick was wasted on direction. STEP 8 — Minimum kicks to score 4 ÷ 1.76 = 2.27 → round up: 3 kicks STEP 9 — Why? [✓] The ball went off-angle. [ ] Too much Turning — bot over-corrected. [✓] Power was low so we needed multiple kicks. STEP 10 — Strategy for Season 2 (must include one number) "For Season 2 we need either more Turning so the bot squares up and we don't lose 21% to angle, OR more Power so the kick reaches farther — chargePower 49 instead of 25. I'm not sure which. Cobalt said the bottleneck is Power. The 21% on this card says Turning matters too. Pick tomorrow." BIG IDEA "Hitting the ball farther does NOT always help because my ball moved 2.24 units but only 1.76 units reduced the distance to the goal." This means: 21% of every kick at our current Turning value goes to direction, not progress.
Summary. The teacher walks the WHY of Step 2 first — A and G share y = 2, so the y-term zeroes out — then picks a team where B → G came out greater than A → G (Kinetic Falcons, whose ball flew sideways). The Falcons Analyst reads: "Our B was (3, 4). B → G came out about 5.4 — bigger than A → G of 4. The kick moved the ball away from the goal." The teacher names the practice: "What Falcons just did — naming a specific coordinate where the general claim (more movement equals more progress) breaks — is called counterexample reasoning. It's one of the most precise moves in math." Then the Big Idea round. Maya reads hers to Devon: "My ball moved 2.24 units but only 1.76 units reduced the distance to the goal." Devon: "Same numbers as mine — we did the math together." They mark agree.
Exit ticket — two problems. Maya solves the first quickly: A = (4, 2), B = (6, 1), G = (8, 2). B → G = √((8−6)² + (2−1)²) = √(4 + 1) = √5 ≈ 2.24 units. Same shape she just worked. Problem 2 asks her to interpret a team that moved 3.6 units and ended 2.2 units from the goal. Maya writes: "A → G was 4 units. After the charge, B → G = 2.2 units. They reduced the distance to the goal by 1.8 of the 3.6 units moved — that's 1.8 / 3.6 = 50% efficient. Moving the ball helped, but only half the movement was useful toward scoring. Same shape as ours — except ours was 79% efficient because our angle was less off."
Cold Recall Check
Set up. Five questions on the worksheet. Individual. No notes. No devices. Ten minutes. The teacher says one sentence: "All week you've done these calculations with your bot in front of you. The bot is a memory cue. Today we take the bot away. This tells you — and me — what you've actually kept." Maya reads the room as she picks up her pencil. This is the second recall check. The first one was Day 5, when she rounded √25 ≈ 5.2 out of habit and lost a point on what should have been an automatic answer. The teacher's marginal note that day said: "√25 is exactly 5. No rounding." Maya wrote in her own margin underneath: "Next time, check if √x is a clean number before writing ≈."
The five questions. Q1 is percent change: (45 − 30) ÷ 30 × 100 = 50%. Maya does it in her head and writes the work to be safe. Q2 is slope-intercept: slope 2, point (1, 3), solve for b. 3 = 2(1) + b → b = 1 → y = 2x + 1. Q3 is the distance formula — same shape as this afternoon. (2, 5) to (7, 17). x difference = 5, square = 25. y difference = 12, square = 144. Add: 169. d = √169. Maya's pencil starts to write ≈ 13. She stops. Five days ago she'd already have moved on. Today she pauses and reads what she wrote. 169 — is that a clean square? 13 times 13 is 169. She erases the ≈ and writes the equals sign. d = 13 units exactly.
Q4 — the zero-crossing. The bot's power decays at P(t) = 100 − 12t. When does P reach zero? Maya sets the function equal to zero: 100 − 12t = 0. Rearranges: 12t = 100. Divides: t = 100/12 ≈ 8.33 minutes. Done in 30 seconds. She doesn't notice that 12 is the decay rate for an Endurance value, or that solving for t when P = 0 is the move that's about to matter for Season 2 reallocation tomorrow. She just does the algebra. Q5 is unit rates: 150 cm in 5 sec → 30 cm/sec → 240 cm in 8 sec. Two steps, both shown. Pencil down at 8 minutes 20 seconds.
DAY 5 DAY 10
─────── ────────
Q1 Slope ✓ —
Q2 Recipe / Slope-int ✓ ✓
Q3 Distance formula ✗ (≈ 5.2) ✓ (= 13 exact)
Q4 Endurance / zero-cross ✓ ✓
Q5 Distance / unit rates ✓ ✓
─────── ────────
4 / 5 5 / 5
THE DIFFERENCE
Day 5 — rushed √25, wrote ≈ on a clean square.
Day 10 — almost did it again on √169. Caught it.
Both questions: distance formula. Both clean squares.
Both moments: the same kind of habit.
My own margin note from Day 5, in my own handwriting:
"Next time, check if √x is a clean number before writing ≈."
I checked.
Answer check. The teacher reads the answers aloud, fast, not stopping to re-teach. Maya tracks each one against her paper. Five for five. The teacher pauses only on Q4 to ask the room: "For those who got it — how did you know the move was to set P(t) equal to zero?" A student answers. The teacher names it: "That move — set the function equal to zero and solve for the variable — is called finding a zero of a function. In Season 2, it tells you when your bot's power hits zero." Then she moves on. Then her closing line, the one that turns the whole ten minutes into a bridge: "If Q4 gave you trouble, that's important information before Season 2 planning starts. Come find me before Open Lab. I want to show you one thing — it takes two minutes."
Season 1 Final Round + Analysis Block
Pre-match audit. "The matches are not the main event. Your dashboard has been collecting data for three match days. Today you find out what it actually says about your model. Before the first bot runs, you have ten minutes."
Q1 — What is your average Error across Days 7, 8, and 9?
What the question is asking you to do: Open your dashboard. Find the Error column. Add up every Error value (signs matter — +2 and −2 partially cancel each other out). Divide that sum by the number of matches you played. Write the answer with its sign.
What the answer tells you: On average across the whole season, how far off your prediction was. If your answer is +1.5, your predictions were 1.5 goals too high per match, on average. If your answer is −0.8, your predictions were 0.8 goals too low per match. If your answer is near zero, your over-predictions and under-predictions canceled out — that's balanced, not necessarily accurate (you might have been wildly wrong in both directions; Q3 catches that).
Q2 — Is your average Error positive (over-predicted) or negative (under-predicted)?
What the question is asking you to do: Look at your answer from Q1. Just the sign. Circle one word.
What the answer tells you: Which direction your model is biased. Positive means you consistently over-predicted — you wrote down higher goal counts than actually happened. Negative means you consistently under-predicted. (The reason: Error = Predicted − Actual. If your predictions were bigger than your actuals, the subtraction comes out positive.) A consistent sign across many matches means there's something your model isn't capturing — an input variable that would push the prediction in the opposite direction. You'll figure out which variable later using the interactive lesson, after the matches.
Q3 — Compare your first Error from Day 7 to your most recent Error from Day 9. One word: improving, worsening, or flat.
What the question is asking you to do: Find your first Error from Day 7 R1. Find your most recent Error from Day 9 R3. Compare their sizes (use absolute values — an Error of +3 is bigger than an Error of +1, and an Error of −2 is bigger than an Error of +1). Pick one word.
What the answer tells you: Whether your model is getting better over time. Improving = recent errors are smaller than early errors (your predictions are getting closer to reality as you learn). Worsening = recent errors are bigger (something is throwing off your model — maybe you started facing opponents your model wasn't built for). Flat = the size hasn't changed much (your model is whatever it's going to be — it's not learning OR forgetting).
Round 1 — Magnetic Raptors #22. The team that built their Best Match card on Patience's data swap finding two days ago. Pre-match: Maya reads her prediction. "Equation gives four. Revised for opponent Power: one. Raptors' Power is 4 — chargePower 16. Ours is 25. If we reach the ball first, we score. If they reach it first, their push falls short." Raptors: "Three for us." Three minutes. Patience reaches the ball first at 0:48 — her bot cruises at 30% wheel power, Raptors at 20% — and pushes at chargePower 25. The ball rolls clean over Raptors' goal line. After the reset, both bots head back toward center. Patience gets there first again at 1:36 but the push drifts off-angle and the ball goes wide. Raptors finds the ball at 2:12, pushes at chargePower 16 — the ball stops short of Patience's goal. Final: 1 − 0. Maya enters it. Gap: |1 − 1| ÷ 1 × 100 = 0%. Error 0. Devon writes the one-sentence entry: "R1 fits the pattern — opponent Power below ours, we get there first, we convert. Exact prediction."
Round 2 — Cobalt Wolves #14. The team that named Patience's bottleneck in the Data Swap. Cobalt's Power is 9 — chargePower 81, more than three times Patience's. Patience has never beaten them. Maya goes pessimistic: "Their chargePower is 81. We've never scored against them. Predict zero." Devon hesitates. "Iron Ravens prediction was one and we got one." Maya: "Iron Ravens' Power is 3. Cobalt's is 9. Different problem. Predict zero." Cobalt: "Three for us." Three minutes. Cobalt reaches the ball first at 0:42 and pushes at chargePower 81 — the ball flies clean across the field and over Patience's goal line. Reset. Patience gets to center first this time at 1:24 and pushes at chargePower 25. The ball rolls toward Cobalt's goal. Cobalt's defender bot is positioned wide of the path. The ball crosses the line. Goal. Maya stares at the field. She predicted zero. Patience scored. Reset. Cobalt reaches the ball first at 2:18, pushes at 81, scores again. Final: 1 − 2. Maya enters it. Error −1 — Patience's first under-prediction all season. Devon writes the entry: "R2 doesn't fit. We went too pessimistic. The +1 goal is the one I didn't predict — first time my error sign flipped all season. Cobalt's defender was out of position when we got to the ball. The goal was luck, but my model couldn't see it."
Final Season 1 record: Patience finishes 5 wins · 1 draw · 4 losses across 10 matches. Total goals: 9. Average actual: 0.90 goals per match. Average Error across all 10: (8 + 0 − 1) ÷ 10 = +0.70. Still positive. Smaller than before. The trend held.
Analysis Block — Phase A. Teams open the interactive lesson. The tool opens with three tabs: Calculate, Identify, Build Hypothesis. Phase A asks for the Error sum, count, average, sign, and trend. Devon enters: sum +7, count 10, average +0.70, positive, improving. The page shows the positive tile and trend improving. The team moves to Phase B.
Phase B — find the pattern. Top 3 biggest errors: Day 8 R1 (+3, vs Steady Hawks P = 7), Day 7 R3 (+2, vs Cobalt Wolves P = 9), Day 7 R2 (+1, vs Kinetic Falcons P = 7). Devon types each opponent's dominant stat into the table. All three biggest errors come against opponents with Power ≥ 7. The tool flashes a green hint: "Clear pattern — the same stat appears in all three biggest errors." Devon writes their sentence using the sentence builder: "Our model consistently over-predicts because it does not account for opponent Power." The tool accepts it — green check, not the result-language warning. This is the sentence Cobalt named for them two days ago. Today they're writing it into the official analysis tool, with the dropdown selecting Power as the missing variable.
Phase C — and the equation problem. Devon enters Patience's Day 8 scatter plot equation: y = 0.5x + 1. Current Speed = 6. Proposed Speed = 4 (the move from their Day 9 Open Lab hypothesis: shift 2 points to Power). The tool auto-calculates: Current predicted: 4.00. Proposed predicted: 3.00. Season 1 actual avg: 0.90. Model-predicted difference: 3.00 − 0.90 = +2.10. The equation is telling them that even at Speed 4, they'll still over-predict by 2.10 goals. The tool's Q4 explanation field asks: "Why does this stat change fix the problem?" Maya, Iris, and Devon hesitate. The equation can't see Power. Devon writes:
Q4 — Why does this stat change fix the problem?
"The equation only uses Speed. Power isn't in it. That's exactly the gap our Phase B finding identified. The equation tells us the predicted goals will go DOWN from 4 to 3 when we lower Speed — but that's because the equation can't see that our chargePower will go from 25 to 49 when we move those 2 points to Power. We're betting my actual goals will go UP even though the predicted goals go down. The equation is a Speed-only model. We are about to break it on purpose."
What would prove us wrong?
"Our actual goals stay at 0.90 or drop after we switch to S = 4, P = 7. That would mean Power wasn't the bottleneck Cobalt said it was — or it would mean Turning matters more than Power, which is what our Distance Formula 21% loss this morning suggested."
Peer pressure-test. Patience hands their hypothesis sheet to Iron Ravens. Iron Ravens reads it and writes one objection on the bottom: "Your equation uses Speed. You're lowering Speed. The equation says your predicted goals go DOWN. Your hypothesis assumes the actual will go UP because of Power — but the equation can't verify that. Where's the mathematical evidence that Power matters more than the Speed loss?" Maya reads the objection and feels the friction of it. It's a fair challenge. Devon writes their response next to it: "The mathematical evidence is in our Phase B table. Three biggest errors, all opponents with Power ≥ 7. That's the residual pattern. The equation can't model Power, but the residual shows Power is what's missing. Cobalt's data swap finding confirmed it from outside." Iron Ravens reads, nods, writes back: "OK. The residual pattern is the math you can show. Don't let anyone tell you that's not evidence." Patience doesn't revise their hypothesis. It survives the peer challenge.
Closing + exit. The teacher names the practice for the room: "What you just did — looking at a pattern across an entire dataset and identifying the input variable the model was missing — is called residual analysis. It's the same mathematical move data scientists use to improve predictive models. You did not just play a game. You built and tested a model for ten days." Then the exit prompt: "Write your final Season 2 hypothesis. Stat change. Equation calculation. One sentence connecting to your residual finding." Maya copies the auto-generated hypothesis from the tool onto the half-sheet:
"If we change Speed from 6 to 4 (moving 2 points to Power, taking P from 5 to 7), our scatter plot equation y = 0.5x + 1 predicts 3.00 goals per match. Our Season 1 actual average was 0.90 goals per match — model-predicted difference +2.10. This addresses our finding because Phase B showed our three biggest errors all came against opponents with Power ≥ 7, and the equation can't model the chargePower change from 25 to 49 — but the residual pattern says that change is what matters."
— Patient Foxes #23 · Devon, Iris, and Maya
Season 2 Planning
Two tracks, one decision. The teacher writes the hypothesis format on the board in large letters and leaves it up: If I change [stat] from [X] to [Y], then [predicted outcome], because [specific number from your dashboard]. Track A is data-first — refine the hypothesis using the matchup column. Track B is bot-first — change the allocation in MakeCode and run a test charge, but only if the hypothesis is written first. The teacher reads the rule twice. "If you run the bot, see what happens, and then write a hypothesis to match it — that's not a plan. That's working backwards." Iris, who has been waiting to touch the bot since the Final Round started, asks the team: "We have a hypothesis. Can we go Track B?" Maya closes the screen. "Test it on what? The bot has no opponent right now. We'd just be moving it around." Maya looks at the hypothesis card on her desk — the same three sentences written three times this week — and says: "One more pass on the data. Then we program it as a draft for Thursday." Track A.
The win-loss-by-stat-matchup column. Maya opens the column she has not looked at carefully all week. It splits Patience's 10 matches by opponent's dominant stat. She filters by opponent Power. Two groups appear: opponents with Power ≥ 7 (Cobalt, Steady Hawks, Kinetic Falcons) and opponents with Power ≤ 4 (Iron Ravens, Magnetic Raptors). She tallies the rows:
OPPONENT POWER MATCHES W − D − L GOALS GOALS/MATCH
─────────────────────────────────────────────────────────────────
High (P ≥ 7) 6 1 − 1 − 4 3 0.50
Low (P ≤ 4) 4 4 − 0 − 0 6 1.50
──── ────
Total 10 5 − 1 − 4 9 0.90
Patience scored 3× more goals per match against low-Power
opponents than high-Power opponents. The Power hypothesis is
not a feeling. It is in the matchup column.
WHAT ABOUT TURNING?
Cobalt Wolves T = 3. Steady Hawks T = 2. Kinetic Falcons T = 3.
Our Turning (5) is HIGHER than every high-Power opponent's. But
we still went 1 − 1 − 4 against them. Turning advantage didn't
overcome the chargePower gap.
CONCLUSION
Power is the binding variable. Turning is not the constraint
my hypothesis needs to address right now.
The Turning question, resolved. The Distance Formula's 21% loss this morning had Maya half-convinced Turning mattered. The matchup column says: not yet. Patience's Turning was already higher than every high-Power opponent's Turning, and Patience still lost most of those matches. The bottleneck isn't a Turning gap. It's a Power gap. Maya keeps the Turning question alive as a fallback — she writes one line at the bottom of her hypothesis card: "If after Season 2 R1 our actual goals don't go up, look at Turning next — not back at Power." The contingency is written. The primary hypothesis stays. Iris, while Maya was tallying, opens MakeCode and types in the new allocation: S = 4, E = 4, T = 5, P = 7. Sum = 20. She saves it as "patience-s2-draft.mkcd" — draft, not committed — and closes the program. The bot stays at Speed 6 until tomorrow afternoon — Practice Matches is the first time it runs at the new config; Thursday is when the allocation locks after the Commissioner vote.
Pair-share. Adjacent team is Steady Hawks, the Best Prediction leader all season. Devon reads Patience's hypothesis aloud, Big Idea sentence and Power matchup data and contingency line. Hawks' Analyst writes two things in her notebook: stat change: Speed 6 → 4, Power 5 → 7. Data citation: 3× goal differential between Power ≥ 7 and Power ≤ 4 opponents. She looks up: "Both identifiable. Good citation." Then she reads Hawks' hypothesis to Patience. Hawks is moving 1 point from Speed to Endurance — they've been the prediction leader because their Endurance let them last to minute 3. "Decay rate at E = 8 gives us 82% power at minute 3," Hawks reads. "At E = 9 it'd be 83.5%. Marginal but real." Maya nods. Different teams, different hypotheses, both with numbers.
Close. The teacher names the practice for the room: "What you just did — building a prediction from data before running the test — is exactly how engineers and scientists plan. You didn't guess. You built an argument. That's what Season 2 is: an argument that your data supports, tested against a real match." Then the consolidation line: "Season 2 planning continues tomorrow with Commissioner proposals. When you come in, your hypothesis is the starting point — not a blank slate. Allocation is permanent after Thursday's session." Then the transition to the day's last activity: "Devices down. Closing Ritual: describe a mistake your team made this week that led to something better. Name the mistake, describe what happened because of it, and say exactly what you changed. You have five minutes."
Closing Ritual. Five minutes. The room goes quiet. Maya writes in her journal — not for the teacher, just for the page:
"The mistake: yesterday in Match Day 3 R2 vs Falcons I wrote in the Notes column 'we scored fewer goals because Falcons got the ball first.' The teacher read it and asked which number in the Endurance formula was wrong. I just said what happened in the match instead of what was wrong in my model.
What it led to: I crossed it out and wrote the version that named the decay rate. Today in Phase B I wrote one like it for the whole season — 'our model over-predicts because it doesn't account for opponent Power.' I would not have written that on Tuesday.
What I changed: I stopped writing about what happened. I started writing about what number was wrong. Devon helped me see the difference."
Stat Rankings · Proportional Scaling · Commissioner Proposal Prep
Wednesday · Week 3 · Season 2 planning (no matches today)Human Number Line: Stat Rankings
Painter's tape runs the full width of the room at floor level. Sign at the left end: LEAST IMPORTANT FOR WINNING. Sign at the right end: MOST IMPORTANT FOR WINNING. One sticky note and one marker at every seat. The teacher's rule on the board, read aloud: "No dashboards, no data logs — just your memory of Season 1. Write the ONE stat you believe mattered most, then stand where the line matches how strongly you believe it." The comprehension check, said once: "The question is which stat mattered most for winning matches — not which stat you gave the most points to. Those can be different." Thirty seconds.
Maya writes POWER without hesitation — three days of analysis, two outside readers, and yesterday's matchup column all point there. Devon writes POWER next to her — yesterday's Phase B sentence is still in his head, opponent Power is the missing variable. Iris writes SPEED. Maya looks at her sticky note. "Speed?" Iris: "Our equation is built on Speed. Day 8 scatter plot, all season. Speed is the only variable the equation actually sees. Power doesn't even exist in that equation." Maya opens her mouth to argue and stops. It's a fair point. The equation IS Speed. Power isn't in it. She says: "Walk to where you actually believe it. We can argue after." All three stand up.
Maya walks to the right end — far right, certainty, three days of work behind her. Devon stands next to her. Iris walks to the left-middle — moderate confidence in Speed because she knows the equation is incomplete. Across the room: four teams on SPEED clustered around the middle, two teams on POWER on the right (Patience and Cobalt Wolves), one team on ENDURANCE on the right (Steady Hawks — the Best Prediction leader all season). Nobody on Turning. Nobody on Budget. The teacher reads the distribution aloud: "Four on Speed, two on Power, one on Endurance, nobody on Turning or Budget. Speed is the room's claim." She points to one of the middle Speed teams. "You're in the middle of the Speed cluster. What made you uncertain?" That team's Analyst says, "We had high Speed and we won some, but we also lost a lot. So I don't know." The teacher doesn't respond. She doesn't do anything to change the feelings of uncertainty.
Seven minutes in the class is asked to "Look at the full league: all teams, all win records. Find the teams with the most wins. What did they allocate to your stat? Now find the teams with the fewest wins. What did they allocate? Is there a pattern across the league? Does where you're standing still make sense?" Maya, Iris and Devon open the dashboard. They have three minutes to do some research. Devon pulls up the league standings. Top three by record: Kinetic Falcons (7 − 2 − 1), Cobalt Wolves (6 − 1 − 3), Steady Hawks (6 − 2 − 2). Maya checks their stats: Falcons P = 7, Cobalt P = 9, Hawks P = 7. All three top teams allocated Power 7 or higher. Then the bottom: Iron Ravens (3 − 1 − 6), Magnetic Raptors (1 − 0 − 9). Ravens P = 3. Raptors P = 4. The bottom teams all allocated Power 4 or lower. Then she checks Speed. Iron Ravens has the highest Speed in the league at S = 8 — and the second-worst record. Cobalt Wolves has the lowest Speed at S = 3 — and is in the top three. Across the league, Speed doesn't line up with winning at all. Iris reads the screen over Maya's shoulder and looks at the line. She was in the wrong place.
Patience is now together on POWER. Maya doesn't say "told you so." She doesn't say anything. Iris drops her sticky note, picks it up, looks at the marker, and writes POWER over the top of the SPEED she wrote ten minutes ago. "The equation can't see Power. But the league did." The room's claim shifted from Speed to Power in three minutes.
The teacher calls on Patient Foxes #23. Maya reads their numbers: "Top three teams by wins, all with Power 7 or higher. Bottom three teams, all with Power 4 or lower. Speed didn't show a pattern — Iron Ravens had the highest Speed and one of the worst records." The teacher says it cleanly: "So you're saying: across the league, the Power allocation predicts wins. Speed doesn't. Is that what the data shows?" Maya nods. Then the teacher calls on a team that moved, but a different team that originally stood with Speed They explain the same pattern in different words. The teacher names the move: "What that team just did — claim a stat, check the data, revise — is exactly the structure of a Commissioner proposal. 'I believed X. The data showed Y. Therefore I'm proposing Z.'" The closing line: "Did anyone choose Budget?" Nobody. "Budget is a constraint, not a stat that produces wins. Keep that distinction in mind when you write your proposal — Budget is what you have to work inside of, not what you allocate to."
Exit ticket — the opening line of the Commissioner proposal. Ninety seconds. Every team member writes the same sentence on the back of their sticky note. Iris writes it on hers, over the crossed-out SPEED:
"The stat that mattered most for our Season 1 results was Power because our data shows the three teams with the best win records (Kinetic Falcons 7−2−1, Cobalt Wolves 6−1−3, Steady Hawks 6−2−2) all allocated 7 or more points to Power, while the teams with the fewest wins (Iron Ravens 3−1−6, Magnetic Raptors 1−0−9) all allocated 4 or fewer. The Power threshold appears to sit between 4 and 7. Patience allocated 5 — right in the gap — and finished middle of the league."
Proportional Scaling + Commissioner Proposal Prep
The teacher asks, "When you add 50% to a stat, does the bot's output go up by exactly 50%? More? Less? Hold your prediction. We're about to calculate the answer." Maya is asked to take their Season 1 Speed, add 50%, find the percent change in Motor Power. Then take their Season 1 Power, add 50%, find the percent change in Charge Speed. Patience's stats: S = 6, P = 5.. Maya writes them at the top of a page in her journal. Underneath, before any calculation, she writes her prediction in the margin in her own shorthand: "Speed = 50%. Power = more. P² grows faster."
The interactive lesson is open. Before calculations, Maya is asked to match terms with definitions. She starts with % Change. That one is easy. (new-old)/old x 100. The Quadratric is next. That's the POWER formula. Scale by 1.5 actually has the answer right there in the definition. That leaves Proportional. So, that must be Input grows 50% → Output grows 50%. Same rate.
May then enters Speed and Power. And Calculates Speed first.6 × 1.5 = 9. Motor Power old: 6 × 5 = 30%. New: 9 × 5 = 45%. Percent change: (45 − 30) ÷ 30 × 100 = 50%. Proportional. Speed scales 1-to-1 with Motor Power. Then Power. Maya squares 7.5 in her head and gets stuck — seven times seven is forty-nine, plus seven half-times, that's… She writes 7 × 7 = 49, then stares at the half. Devon, watching: "Just write it out. 7.5 times 7.5." She does the longhand: 56.25. Charge Speed old: 5² = 25%. New: 7.5² = 56.25%. Percent change: (56.25 − 25) ÷ 25 × 100 = 125%. Devon reads it aloud: "Hundred-twenty-five percent. We added fifty percent to Power and Charge Speed went up two-and-a-quarter times." Maya checks her margin prediction. Power = more. She underlines it. Then she writes underneath, slower: "(1.5)² = 2.25. So squaring the multiplier IS the multiplier?" She circles it with a question mark. That sentence is the thing she's been circling for ten days without naming. The teacher calls a Strategy A team to share — different team. The Mini-Summarize Bridge names what Maya already wrote in her margin: "Speed is linear. Power is quadratic. Same 50% input. Different output growth. When the output grows by the same percent as the input — like Speed and Motor Power — that's called proportional scaling. When it doesn't — like Power and chargePower — it isn't. Quadratic relationships are never proportional, no matter what the multiplier is."
The team moves onto the Commissioner Proposal interactive lesson which explains how the system works. You can write a CAP rule or a FLOOR rule. Then they have to draft a rule.They pick a stat, a direction (CAP or FLOOR), and a number. Two formula computations to back it up, and name the last-place team and the effect the rule has on them. A fairness statement. They select POWER. Then Maya pulls up the league standings. Iron Ravens (3 − 1 − 6) and Magnetic Raptors (1 − 0 − 9) are at the bottom — and both have Power ≤ 4. The Human Number Line exit ticket they wrote earlier is sitting on the desk: "the Power threshold appears to sit between 4 and 7." Devon, looking at the threshold: "Floor it at 5. Lift the bottom teams to the bottom of the threshold." Iris: "Cap it at 7. Stop the top teams from pulling away." Maya: "A cap at 7 would block our own move to P = 7." Brief silence. The teacher, walking past, hears it and pauses: "Hold on. Maya just named a conflict of interest — a rule that helps the league but hurts your own team. That's a real Commissioner question. Every proposal you write today has to be tested against it: does this rule still make sense if it costs your team something?" Devon, after a beat: "Floor." They click on Floor, and add their evidence. After reviewing their proposal, they transfer the rule to the Commissioner's worksheet.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PATIENT FOXES #23 · Commissioner Proposal · Day 11 draft
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1 · THE RULE · POWER FLOOR
Plain English: Every team must allocate at least 5 points to
Power. Bots with Power below 5 have charge output below 25% —
too low to drive the ball home after first contact. A floor
at 5 puts every team at or above the chargePower threshold
where Season 1 wins start to appear.
Math notation: P ≥ 5 Rule type: FLOOR
2 · DATA EVIDENCE · Charge Speed = P²
Data Point 1 — Iron Ravens #25 (current P = 3, worst record)
Charge Speed old: 3² = 9%
Under our rule: 5² = 25%
Stat % change: (5 − 3) ÷ 3 × 100 = 66.7%
Output % change: (25 − 9) ÷ 9 × 100 = 177.8%
The floor nearly triples their charge output.
Data Point 2 — Patience #23 (current P = 5)
Charge Speed at P = 5: 25%
Charge Speed at planned S2 P = 7: 49%
Our planned allocation is above the floor. No change forced.
3 · EFFECT ON LAST-PLACE TEAM · Magnetic Raptors #22 (1 − 0 − 9)
Current Power: 4 Under our rule: must rise to 5
Charge Speed old: 4² = 16% New: 5² = 25%
Stat % change: (5 − 4) ÷ 4 × 100 = 25%
Output % change: (25 − 16) ÷ 16 × 100 = 56.25%
A 25% stat increase produces a 56% output increase because
Charge Speed scales quadratically. The floor lifts the
weakest team most — which is what a floor is for.
4 · FAIRNESS STATEMENT
Does this rule benefit our own team? ☐ Yes ☒ No
Our planned Season 2 Power = 7 is above the floor, so the
rule does not change our allocation. The rule lifts teams
below us. We proposed a rule that helps our rivals catch up
and does not help us. That is what makes it fair.
— Devon, Iris, Maya · Patient Foxes #23
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Misconception correction — correlation vs. causation. "Some proposals cite evidence like this: high-Power teams win more. That's a real pattern. Does that mean Power CAUSES wins?" The room is silent. The teacher gives a second example to make the move visible — one that's not about bots. "Outside this room: in summer, ice cream sales go up. Shark attacks also go up. Does that mean buying ice cream causes shark attacks? Why might that be the case?" Tasha from Magnetic Raptors #22 offers "Both go up because there are more people on the beach?" The teacher picks up there, Exactly! The data shows two things rising together. It doesn't show one causing the other. That third thing — the beach — that's what statisticians call a confound. You can't see it in the ice cream column. You can't see it in the shark column. But it's what's actually driving both." Now Devon reads Patience's proposal back to himself and flags one phrase: "Power below 5 has charge output too low to compete." He squints. "That's almost a causal claim. We're saying low Power makes you lose." Maya looks at the draft. "Falcons have Power 7 AND Speed 4 AND Endurance 6. We can't tell which one made them win — we only see them together." Devon crosses out "too low to compete" and writes above it: "too low to match the chargePower pattern the league winners showed." The new wording describes a pattern instead of asserting a cause. The teacher names the distinction for the room: "Correlation is a pattern. Causation requires holding other variables constant. The rule can still be supported by correlation evidence — but the language has to match what the data can prove." Devon files the wording change. The proposal still stands. The argument got more careful.
The teacher takes two minutes at the front of the room and names what just happened in the order it happened. They calculated that scaling a stat by 50% doesn't always scale the output by 50% — the formula's exponent decides. They turned that calculation into evidence for a Commissioner proposal. That, she tells the room, is what a mathematical argument looks like: a formula, a computation, and a claim about what the result means for the league. Then the teacher says what's coming tomorrow. Commissioner Lobby. The vote. This afternoon's Open Lab is the last chance to check every number on the proposal against the actual dashboard. Maya is half-listening, half-reading the paper on her desk. Three names at the bottom. Devon. Iris. Hers. The order is whoever picked up the marker first. Devon picked it up first. Hers ended up last. She doesn't say anything about it. She slides the proposal next to yesterday's hypothesis card and puts them in a pile. Two papers. Same bot. Same week. Same argument.
Underdog Mechanic Announced + Season 2 Stat Reallocation
The teacher walks to the front of the room and points at the Season 1 leaderboard still posted on the wall. "This is where every team finished. Finishing last is data — it tells us something about what happened, and it gives that team a specific mechanical advantage going into Season 2." Then she says the team's name. "Magnetic Raptors #22. You finished Season 1 in last place. That means you get 2 additional stat points right now, before Season 2 begins. You can change any stat by any amount, as long as all four add up to 22. This is the Underdog Mechanic. It's a permanent feature of this league. It's in effect until the end of camp." The room goes quiet. The Raptors' Analyst looks at the Raptors' Coder. Devon leans over from where he's sitting next to Maya. "They're the team our proposal was about." Maya nods. The team that wrote Patience's data swap finding three days ago is the team that just got the floor lifted from underneath them — by the league, not by the proposal Patient Foxes #23 was bringing to a vote tomorrow.
The teacher gives the room two jobs at once. Raptors get to use their 22-point budget to reallocate. Everyone else opens their morning's Commissioner proposal next to their Season 1 stat card and the interactive lesson. The question on the board: Does your own rule even apply to you? Maya pulls up the dashboard. Devon reads their rule out loud — Power has to be at least 5. Patience's Season 1 Power was 5. Their planned Season 2 Power is 7. Both pass the rule. Their own proposal doesn't push them anywhere they weren't already going.
Devon clicks through the lesson. The first screen asks him to pick a track — he picks Regular. The next is a Commissioner Rule explainer Patience already knows by heart (they wrote one this morning), and a timeline showing what's coming: today they think but don't commit, tomorrow they vote, Season 2 enforces what passes. He skims both. The lesson asks for Patience's Season 1 stats. Devon types them in: Speed 6, Endurance 4, Turning 5, Power 5. Sum 20. Green check. Then it asks for the Commissioner proposal. He copies the morning's rule into the box: every team must have Power of at least 5. Click forward.
Four strategy questions on the screen. Step 1: does your loadout satisfy your rule? Devon checks — Patience's Power is 5, the rule says ≥ 5, that passes. He clicks Yes. The lesson confirms: legal under your own rule. Step 2: does the rule help you strategically? Devon stares at the screen for a second. Then he opens the worksheet next to him and writes a note in Section 2 — Maya watches him work it out as he writes. The rule pushes Iron Ravens, because Iron Ravens has Power 3 and no Underdog bonus — they'd have to take 2 points off another stat to climb up to 5. But it doesn't push Raptors anymore. Raptors has 22 points and is probably going to put some of them in Power on their own. The proposal was written about Raptors. The proposal is going to mostly affect Iron Ravens. Maya re-reads Devon's note. She didn't see that this morning. She gets it now. Devon clicks Yes on the lesson — the rule does help Patience, but not for the reason they thought when they wrote it.
Step 3 asks which stat Patience would consider changing. Devon clicks Power. Step 4 asks for a Season 2 direction note. He types one sentence — our planned S2 Power is already 7, so the rule doesn't force us to rebuild — it forces Iron Ravens to climb up to where we already are — and clicks Lock In. The lesson shows a strategy summary on his screen: the proposal, the constraint check, the stat to watch, the direction note.
While Devon was working on the screen, Iris was copying their reallocation onto the worksheet from yesterday's draft. Speed goes from 6 to 4. Power goes from 5 to 7. Endurance and Turning don't move. The total still adds to 20. She works through the formula outputs — Motor Power 20%, Charge Speed 49% — and files them for the exit ticket. While she's writing, Maya looks across the room. Raptors is working at their own table. From her seat she can see Raptors' Power column go from 4 to 6. Not 5 — six. The floor Patience proposed sits at 5, and Raptors went straight past it. They didn't need the rule to push them up. They were going to land above it anyway.
The teacher invites Raptors to read their new allocation to the room. Their Coder reads it off: Speed 4, Endurance 6, Turning 6, Power 6. Sum 22. The class checks the math. Two points went into Power, and the bonus is accounted for. Raptors' Analyst adds something Maya didn't expect — their Charge Speed went from 16 to 36. A 125% increase. Same percentage as this morning's calculation. The teacher writes it on the board: a 50% bump in Power produced a 125% bump in Charge Speed. The quadratic from this morning, showing up in a real team's reallocation.
Then the teacher asks the room a question. Raise your hand if your Season 1 allocation already passes your own proposal's rule. Patience raises. Most teams raise. Kinetic Falcons doesn't. Their rule was a Speed floor at 5, and their Speed is 4. The teacher asks them why. Falcons' Analyst: "We wrote it last and we were hurrying. The floor would force our own team to raise Speed by 1." The teacher names the move: writing a rule that constrains other teams but also constrains your own. Engineers do the same check when they design something. Does our own design pass our own requirements? Falcons writes it down. Maya does too.
Exit ticket. Three minutes. Section 3 of the worksheet — fill in the blanks for the Performance Hypothesis using Patience's new numbers:
SECTION 3 — PERFORMANCE HYPOTHESIS
With Speed = 4 and Power = 7, my Motor Power will be
4 × 5 = 20% and my Charge Speed will be 7² = 49%.
I expect to be stronger at first-contact kicks against
high-Power opponents (chargePower 49 matches Falcons'
and Hawks' 49), and weaker at outrunning opponents
to the ball (Motor Power dropped from 30% to 20% —
−33% change).
In Season 2 I will win by getting in front of the ball
on contact and not losing the chargePower exchange when
I do. The cost is I will have to defend more, because
fast opponents will reach the ball first.
— Devon, Iris, Maya · Patient Foxes #23
The first is Devon's note. The proposal Patience wrote was about Raptors. Devon noticed it was actually going to affect Iron Ravens. Maya read his note and got it on the second pass — Raptors got a bonus, so they don't need the rule to push them up. Iron Ravens didn't get a bonus, so the rule pushes them. The thing Patience wrote three hours ago wasn't aimed at the team it's going to land on. Maya didn't see that this morning. Devon did.
The second is Raptors going to Power 6. The proposal said the rule would push them to 5. Raptors went past 5 to 6 on their own. They didn't need the rule. They saw the same thing Patience saw and made the same call without anyone telling them to. Maya doesn't say anything about it. She files it.
Tomorrow they vote. Then they play. The Performance Hypothesis is on the table with three names on it. The Motor Power dropped 33%. The Charge Speed went up 96%. Both numbers are there in the same sentence — the cost and the gain in their own handwriting. Not a wish. A hypothesis.
Practice Matches: Test New Loadout Hypotheses
Bots are reprogrammed, the field is open, and the teacher gives them fifty-five minutes. Her rule, said twice: write the hypothesis first, or the run doesn't count. Before any team plays, someone reads the hypothesis out loud. If they can't say it, they're not running. Every desk has a worksheet with the Commissioner proposal stat circled at the top. Patience's circled stat is Power. Iris loads the .mkcd draft from yesterday onto the bot — Speed 4, Endurance 4, Turning 5, Power 7. The bot isn't a Season 1 bot anymore. It's the hypothesis.
Run 1. Devon writes the hypothesis on the worksheet before they walk to the field. Their guess: move Power from 5 to 7 (and lose 2 Speed) and Patience will finally score against high-Power opponents, because chargePower jumps from 25 to 49 — same as Falcons. Their evidence: in Season 1 they beat 4 out of 5 low-chargePower teams, and they scored exactly 1 goal across 6 matches against high-chargePower teams. The teacher reads it at their table. "Specific. You can run." Iris places the ball at center. They press A, then B, B, B to calibrate, then A to launch. Maya starts the timer on her phone. The bot runs its launch sequence — turn, drive, turn — and the front headlights flash white when its sonar locks the ball at 40 centimeters. Time to ball: 5.1 seconds. The bot aligns on the ball and pushes forward at chargePower 49 — both wheels driving at 49% of max, follow-through 365 ms. The ball rolls clean across the field and over the far goal line. Goal. The bot keeps running. It re-acquires the ball mid-field, pushes again. Goal. Three minutes in, the bot has scored twice. Every push at chargePower 49 reached the goal line. In Season 1 at chargePower 25, these pushes would have stopped short — that's the comparison they came here to make. Maya writes the result on the worksheet: "Time to ball 5.1 sec. Two solo goals in 3 minutes. Every push at chargePower 49 reached the goal line. ChargePower 49 was enough to drive the ball home." Devon circles Improved on the Conclusion line. Under "Supports Commissioner proposal?" he circles Yes.
Run 2. Maya pulls her hypothesis worksheet out. The fallback line she wrote at the end of Day 9: if after Season 2 Round 1 our actual goals don't go up, look at Turning next — not back at Power. She reads it aloud. Iris: "We have a practice run right here. We don't have to wait for the real R1 to test it." Iris reprograms — Speed 4, Endurance 4, Turning 7, Power 5. Turning instead of Power. Same total. Devon writes the new hypothesis: if they trade Turning for Power, they align on the ball a little faster but get no chargePower improvement. He predicts every push will fall short of the goal line because chargePower stays at 25. Evidence: every Season 1 match against a Falcons-level team, they scored zero — and chargePower 25 is why. Iris places the ball at center. They press the buttons again. Time to ball: 5.0 seconds — Speed is the same as Run 1, so the launch and the cruise take the same time. The headlights flash slightly sooner than Run 1; the extra Turning sharpens the alignment step by a hair. The bot pushes the ball forward at chargePower 25 — wheels at 25% of max, follow-through 295 ms (almost a second shorter than Run 1). The ball rolls maybe halfway across the field. Stops. The bot loses contact, re-acquires the ball, pushes again. Stops short again. Three minutes in, the bot has scored zero times. Every push at chargePower 25 stopped short of the goal line — same as every Season 1 match against a Falcons-class opponent. Maya writes the result: "Time to ball 5.0 sec. Zero solo goals in 3 minutes. Every push at chargePower 25 stopped short. Power matters more than Turning — chargePower is the variable." Devon circles Worse on the Conclusion line. Under "Supports Commissioner proposal?" he circles Yes — Run 2 confirms what Run 1 alone couldn't.
Two solo runs, three minutes each. Two goals in Run 1; zero in Run 2. Devon writes the comparison: same Speed in both runs, so time-to-ball was nearly identical (5.1 vs 5.0). The thing that changed was chargePower at the push — 49 versus 25 — and that's what determined whether the ball reached the goal line at all. Power was the right call. Turning is not the move. Maya re-reads what Devon wrote. This is the first time her hypothesis has been tested against the question she planted at the end of Day 9 — what if Turning matters more? — and survived.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PATIENT FOXES #23 · Practice Matches · Day 11 PM
COMMISSIONER PROPOSAL STAT: ⬤ POWER ○ Endurance ○ Turning ○ Speed
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
RUN 1 CHANGING: Power 5 → 7 (Speed 6 → 4)
Opponent: SOLO RUN (no opponent — push-reach test)
HYPOTHESIS "If we move 2 points from Speed to Power, our
chargePower goes from 25 to 49 — equal to Falcons'.
We expect every push to reach the goal line because
the wheels at 49% drive the ball clean across the
field; at chargePower 25 the push stopped short."
Evidence: 1 goal across 6 Season 1 matches vs
chargePower ≥ 49 opponents.
RESULT Time to ball: 5.1 sec. Two solo goals in 3 min.
Every push at chargePower 49 reached the goal line.
Follow-through 365 ms — the ball cleared the far
goal with margin.
CONCLUSION Performance IMPROVED. Every push at chargePower 49
scored. At chargePower 25 in Season 1, none of these
pushes would have reached the goal — the bottleneck
is real and the Power increase fixes it.
Supports Commissioner proposal? ⬤ YES
────────────────────────────────────────────────────
RUN 2 CHANGING: Turning 5 → 7 (Speed 6 → 4)
Opponent: SOLO RUN (same setup) Power stays at 5
HYPOTHESIS "If we change Turning instead of Power, we align on
the ball faster but get no chargePower improvement.
Predict: zero solo goals because every push at
chargePower 25 stops short of the goal line."
Evidence: 0 goals across 6 Season 1 matches when
our chargePower ≤ 25 vs high-Power opponents.
RESULT Time to ball: 5.0 sec. Zero solo goals in 3 min.
Every push at chargePower 25 stopped short of the
goal line. Follow-through 295 ms wasn't enough to
drive the ball home.
CONCLUSION Performance WORSE than Run 1. Turning helped align
the bot a hair faster, but the push couldn't drive
the ball home. POWER MATTERS MORE THAN TURNING.
Day 9 contingency answered: Turning is not the move.
Supports Commissioner proposal? ⬤ YES
────────────────────────────────────────────────────
COMMISSIONER PROPOSAL BOX (revised after Run 2)
I propose: POWER FLOOR at 5 (unchanged from morning draft).
Because: Two solo runs, same Speed in both. P = 7 produced 3
goals (every push reached the goal); T = 7 produced 0 goals
(every push stopped short). The difference was chargePower at
the push. Power was the binding variable.
Complete entries: 2 (need ≥ 2) ✓
— Devon, Iris, Maya
The teacher calls one team to read their best conclusion sentence aloud. She picks a different team — Magnetic Raptors. Raptors' Analyst reads: "With +2 Underdog budget allocated to Power, our chargePower went from 16 to 36. In solo testing, the push reached the goal in 3 of 4 trials. At chargePower 16 it stopped short every time. Hypothesis confirmed: the Underdog Mechanic gave us a real mechanical advantage, not a cosmetic one." The teacher echoes the claim back: "So you're saying — the 2 bonus points actually changed the math, not just the budget. Is that what the data shows?" Raptors confirms. The closing line: "A hypothesis that was not confirmed is not a failure. It is evidence that your proposal needs to be more specific. That is more useful than a convenient hypothesis that was never tested." Patience's hypothesis was confirmed. Twice. Maya files the worksheet next to the morning's proposal. Five papers now, not four.
Commissioner Proposal Refinement
Verification Standard. Two checks go up on the board. Check 1: are both cited numbers accurate against the actual dashboard? Check 2: does your rule actually help the last-place team — percent change, not "it helps them." The teacher's launch line: "Open your proposal, open your dashboard. Go." Maya opens the dashboard. Devon takes the proposal sheet and the Section 4 worksheet. Iris pulls up the bot's loaded .mkcd as a sanity-check. Nobody discusses the split — it happens in three seconds.
Check 1. Maya works the cited numbers row by row. Falcons P = 7. Confirmed. Cobalt P = 9. Confirmed. Hawks P = 7. Confirmed. Iron Ravens P = 3. Confirmed. Magnetic Raptors P = 4 … The dashboard says P = 6. Underdog reallocation, three hours ago. Her stomach drops. "Our proposal cites Raptors at P = 4. That was true this morning. It is not true now." Devon looks up. Their Section 3 calculation uses a number that doesn't exist in the dashboard anymore.
Check 2. Devon runs the percent change on Raptors anyway, knowing it'll be wrong. Stat change forced by the rule = 0%. Output change = 0%. The proposal fails Check 2 as written. Maya, eyes still on the dashboard: "Iron Ravens. P = 3. No Underdog bonus. They're the team this actually binds." Devon re-runs the math. Stat change 66.7%. Output change 177.8%. The revision helps Iron Ravens almost twice as much as the original would have helped Raptors. Devon writes the parenthetical into Section 4: "Magnetic Raptors finished last in Season 1 but no longer constrained after Underdog reallocation. Iron Ravens, P = 3, is the team the rule binds."
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SECTION 3 · EFFECT ON THE TEAM THE RULE BINDS (revised)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Original Section 3 (this morning): Magnetic Raptors P = 4 → 5.
Stat change 25%. Output change 56.25%.
Verification revision (this afternoon):
Magnetic Raptors now P = 6 (Underdog reallocation took them
above the floor voluntarily). Rule does not force any change
on them. Section 3 calculation reads 0% for both.
IRON RAVENS is the team this rule actually binds.
Current Power: 3. No Underdog bonus.
Forced under rule: P ≥ 5.
Stat change: (5 − 3) ÷ 3 × 100 = 66.7%
Charge output: (25 − 9) ÷ 9 × 100 = 177.8%
Iron Ravens' chargePower nearly triples.
Conflict-of-interest check:
Effect on Patience (planned S2: P = 7): 0%. Above the floor.
Effect on Iron Ravens: 177.8% chargePower increase.
The rule helps the constrained team infinitely more than
it helps us. COI standard passed.
— Devon, Iris, Maya
The teacher picks Steady Hawks to share — clean Endurance numbers, no Underdog complication. Hawks reads their decay-rate math. The teacher names the practice for the room: "Checking a claim against real data and calculating the size of the effect is called verifying a mathematical claim with evidence. The Commissioner's Meeting tomorrow will require it. You don't argue for your proposal. You show the math." Maya is listening. She is not called on. Patience's proposal needed a revision; the revision made it stronger; the teacher knows it.
Two-minute close. "Some numbers held. Some needed adjusting. That's verification — it's what separates a credible proposal from a strong opinion." Preview for tomorrow: Lobby (10 min), revise (15 min), formal meeting. "Know your two numbers cold." Maya knows hers: Iron Ravens 177.8% chargePower increase. Patience 0% change. The conflict-of-interest math passes by the largest margin in the room.
Commissioner Lobby · Season 2 Begins · The Question Closes
Thursday · Week 3 · Season 2 first match · SKETCHLobby the Commissioners
Lobby Rules are up o the wall before Maya walks in the classroom in the morning Maya reads them with her team: conversation not presentation, talk to at least two teams, feedback is optional to use, prepare for objections. At start time: "Two sentences. Show them your number. Ask what they think. Timer starts now. Go." Maya picks up Patience's worksheet. Iris goes with her — there's no coding to do this block, so she's the second voice if a team asks a question Maya doesn't have an answer ready for. Devon stays at the table to field teams that come to Patience.
First stop: Iron Ravens. Maya reads them their own data. "Our rule forces P ≥ 5. You're at P = 3 with no Underdog bonus. That's a 177.8% chargePower increase for you." Iron Ravens reads back: "That's our math. We're voting yes." Two-second exchange. Maya moves.
Second stop: Steady Hawks. Endurance floor at E ≥ 4. "Decay rate drops from 27% to 24% per minute for the worst-Endurance team — 11% improvement in retained power at minute 1." Clean numbers. Maya nods. Strong proposal. Moves on.
Meanwhile at Patience's table. While Maya and Iris are out, two teams come by. Steady Hawks checks whether the POWER FLOOR conflicts with their ENDURANCE FLOOR — Devon answers in three words: "Different stats. No conflict." Steady Hawks nods and moves on. Magnetic Raptors comes over a minute later — Patience's framing (name the team the rule helps, calculate the percent change for that team) is the same move Raptors used in their Underdog extension proposal. Devon makes the connection: "We both named the team the rule helps. That's why." Raptors writes it down. Two visits Devon handles solo while Maya and Iris are at Cobalt's table.
Third stop: Cobalt Wolves. Their proposal: a Power cap at 7. Maya stops. Cobalt has P = 9 — the cap forces them down to 7. It would also leave Iron Ravens at P = 3 with no fix. That's a rule that doesn't help the team in last place. Neither Maya nor Iris says it out loud. They walk back to their table with five minutes still on the Lobby clock. "Cobalt's proposal fails Check 2," Maya says quietly to Devon. Iris adds: "They're not naming Iron Ravens. They're capping themselves down to Falcons-level." Devon writes flag for objection in the worksheet's margin.
Finalize. Patient Foxes #23 verified yesterday. Maya rechecks Iron Ravens against the dashboard one more time — P = 3 still. Confirmed. Devon doesn't rewrite anything; he adds one line at the bottom of the worksheet: "If Cobalt's Power-7 cap passes, it leaves Iron Ravens at P = 3 — our rule still applies and is still the only one that helps them." The proposal is locked in three minutes. The remaining eight minutes Maya spends prepping the objection math for Cobalt's rule: percent change Cobalt's cap would force on Patience. Patience is already at P = 7. Cap at 7 = 0% change. Patient Foxes #23 has nothing to lose by opposing it.
Exit check. The teacher calls teams in order. "One phrase: what math concept does your proposal use?" Maya knows Devon is about to say "proportional scaling" — that was Day 11 morning. She catches his eye and shakes her head once. Devon pauses. "Ratio," he says. "Percent change ratio. 177.8% versus 0%." The teacher nods. Patience's concept label is locked: ratio.
Final Proposal Verification
Verification worksheet. 35 minutes. Four sections. The teacher's launch: "Check your two numbers against the dashboard, calculate how your rule helps the last-place team, confirm there's no conflict of interest, name the math concept. Before lunch I'll ask one person per team to explain one calculation from memory. Go." Patience splits the work the same way as yesterday: Maya on the dashboard, Devon on the math, Iris on the bot's .mkcd as a sanity-check.
Section 1 — data points. Maya looks at the cited numbers row by row. Iron Ravens P = 3. Confirmed. Magnetic Raptors P = 6 (post-Underdog). Confirmed. Patience S = 4, P = 7 (loaded yesterday). Confirmed. All three numbers still match the dashboard a full day after the proposal was locked.
Section 2 — percent change. Devon re-runs the Iron Ravens math without looking at yesterday's work — stat change (5 − 3) ÷ 3 × 100 = 66.7%; output change (25 − 9) ÷ 9 × 100 = 177.8%. Same as yesterday. Devon also runs the calculation for Patience's own team under the rule: P = 7 is already above the floor, so the stat change forced by the rule = 0%. Section 3 — conflict-of-interest check. 177.8% for Iron Ravens versus 0% for Patience. The rule helps the constrained team infinitely more than it helps Patience. COI passes by the largest margin Maya has seen in the room.
Section 4 — concept naming. Devon's pen hovers over proportional scaling. Maya: "Chargepower is P squared. That's quadratic — not proportional. Our math is a ratio comparison: 177.8 to 0." Devon circles ratio instead. Underneath he writes the one-sentence definition off the worksheet: "a part-to-part relationship between two quantities." Patience's two percent changes — 177.8% and 0% — are that ratio.
Accountability check. The teacher points at Maya. "How did you calculate the 177.8%?" Maya, without looking at the worksheet: "Old chargePower was 9 — that's 3 squared. New chargePower is 25 — that's 5 squared. 25 minus 9 is 16. 16 divided by 9, times 100, is 177.8 percent." The teacher nods. "And what concept type?" "Ratio," Maya says. "Not proportional scaling — Power is quadratic." The teacher writes Patience's name on the verified list.
Commissioner's Meeting: Formal Presentations + Vote
The room is set up: a blank section of wall, permanent markers on the front table, a Vote Record sheet on the teacher's clipboard. The teacher's opening line: "Each team presents for exactly 3 minutes. Two data points. The rule. The effect on the last-place team. After each presentation, the whole room verifies the math before we vote. Mathematical objections only — name the number and the calculation." Iris distributes the Math Verification Sheet to every team. One per team. Two data points per presenter. Run the percent change yourself. Vote yes or no with a one-sentence reason. Patience presents fifth in the order.
Presentations 1–4. Maya works through the Math Verification Sheet as each team presents. Presentation 1 — Steady Hawks: Endurance floor at 4. Their math: decay rate drops from 27% to 24% per minute — Maya runs (24 − 27) ÷ 27 × 100 = −11.1%. Math checks. Vote yes. Presentation 2 — Magnetic Raptors: extend the Underdog bonus to next-to-last place. Math checks. Vote yes. Presentation 3 — Kinetic Falcons: Turning floor at 4. Math checks but the rule helps no team in the bottom three. Maya votes no. Presentation 4 — Iron Ravens: Speed floor at 4. Maya catches a math error on the percent change — Iron Ravens wrote (4−3)÷4 instead of (4−3)÷3. *Divided by the new value, not the old.* When the teacher asks for verification, Maya names the error. Iron Ravens corrects, the corrected math still supports their argument, the vote proceeds. Vote: fails 1–4. At this point, two passed rules in marker: ENDURANCE FLOOR 4 and UNDERDOG BONUS EXTENDS TO 5TH PLACE.
Presentation 5 — Patient Foxes #23. Maya stands. She has the worksheet in front of her and her two numbers memorized. "Our rule: POWER FLOOR at 5. Two data points. Iron Ravens current Power: 3. Patience current Power: 7. Under our rule, Iron Ravens' Power goes from 3 to 5 — stat change (5 − 3) ÷ 3 × 100 = 66.7%. Output change: chargePower = P², so 9 to 25 — that's (25 − 9) ÷ 9 × 100 = 177.8%. Patience is already above the floor, so our rule changes Patience by 0%. The rule helps Iron Ravens 177.8% in chargePower output and helps Patience 0%. Math concept: ratio — not proportional scaling, because chargePower is quadratic." She sits down. The teacher: "Does anyone verify the math? Can the 177.8% be confirmed?" Magnetic Raptors raises a hand. "Confirmed. 25 minus 9 is 16. 16 divided by 9 is 1.778. Times 100 is 177.8." The vote opens. Five non-proposing teams. 5 yes, 0 no. Rule passes. The teacher walks to the wall and writes in permanent marker: POWER FLOOR — every team must allocate at least 5 points to Power. The objection window opens. No team is hit at 10 percentage points above median. No objections filed. The rule stands.
Presentation 6 — Cobalt Wolves. Their rule: Power cap at 7. Cobalt's spokesperson presents the math: Cobalt at P = 9, cap at 7, stat change −22.2%. "Levels the playing field for non-Power-dominant teams." The teacher: "Effect on the last-place team — Iron Ravens?" The Cobalt spokesperson pauses. "Iron Ravens is at P = 3. Our rule doesn't change them." The room hears it. Math verification opens — the percent change is correct. The vote opens. 1 yes, 4 no. Rule fails. The teacher: "Not enough votes. No rule written. Next." Maya looks at the objection math she prepped during yesterday morning's Lobby — Patience at P = 7, cap at 7, 0% change for Patience. She doesn't need it. The room's math-vote did the work.
Rule Consolidation. The teacher reads every rule on the wall back to the room. "Three rules: ENDURANCE FLOOR 4. UNDERDOG BONUS EXTENDS TO 5TH PLACE. POWER FLOOR 5." Then: "Every team revises their Season 2 allocation to satisfy every rule. Total must equal 20 — or 22 for the Underdog team. No one leaves until your revised sheet adds up and follows every rule. What you're about to do — find a set of numbers that makes every rule true at the same time — is called constraint satisfaction. The total-20 budget is one constraint. Every rule on the wall is another. You're looking for the allocations where all of them hold." Maya checks Patience's current allocation: Speed 4, Endurance 4, Turning 5, Power 7. Power floor 5? P = 7 ✓. Endurance floor 4? E = 4 ✓. Total 20? ✓. Patience already satisfies all three rules. Iris pulls up the bot's loaded .mkcd — it matches. Sign-off in two minutes.
Iron Ravens at the next table. Their current allocation puts them at P = 3. Under the new POWER FLOOR 5 rule, they have to move 2 points into Power from somewhere. Devon walks over to verify their work. They land at Speed 5, Endurance 5, Turning 5, Power 5. Total 20, all three rules satisfied. They figured out the constraint satisfaction problem on their own. Devon initials their sheet as a neighbor-verifier.
Exit Ticket. Two problems, five minutes. Question 1: A rule passes that caps Speed at a maximum of 6. Your current Speed is 9. Calculate the percent change in your Speed. Maya writes: (6 − 9) ÷ 9 × 100 = −33.3%. Question 2: Write a valid Season 2 allocation that satisfies every rule written on the wall today. Maya writes Patience's current loadout: S = 4, E = 4, T = 5, P = 7. Below it she shows each rule satisfied: Power floor 5 ✓ (P = 7). Endurance floor 4 ✓ (E = 4). Total 20 ✓. She hands the sheet in. The teacher initials it.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PATIENT FOXES #23 · Math Verification Sheet · Day 12
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PRESENTATION 1 — STEADY HAWKS · Endurance floor at 4
Data point 1: decay rate at E = 2 (worst) · 27%/min
Data point 2: decay rate at E = 4 (floor) · 24%/min
% change: (24 − 27) ÷ 27 × 100 = −11.1%
Math checks? YES · My vote: YES — helps low-E teams.
PRESENTATION 2 — MAGNETIC RAPTORS · Underdog extends to 5th
Data point 1: bonus current · +2 (last place only)
Data point 2: bonus proposed · +2 (last + 5th place)
% change in eligible field: 100% (1 → 2 teams)
Math checks? YES · My vote: YES — proportional fix.
PRESENTATION 3 — KINETIC FALCONS · Turning floor at 4
Math checks? YES · My vote: NO — doesn't help bottom three.
PRESENTATION 4 — IRON RAVENS · Speed floor at 4
Data point 1: lowest Speed in league · 3 (Iron Ravens)
Data point 2: proposed floor · 4
Iron Ravens wrote: (4 − 3) ÷ 4 × 100 = 25%
↑ ERROR — divided by NEW, not OLD. Correct: ÷ 3 = 33.3%
Math checks? NO — error named in verification window.
My vote (after correction): NO — Speed floor 4 forces
Patience S = 4 → 5 with no Endurance to give up.
PRESENTATION 5 — PATIENT FOXES (US) · Power floor at 5
→ Maya presents. Vote: 5 yes, 0 no. RULE PASSES.
PRESENTATION 6 — COBALT WOLVES · Power cap at 7
Data point 1: Cobalt current Power · 9
Data point 2: cap · 7
% change for Cobalt: (7 − 9) ÷ 9 × 100 = −22.2%
Effect on Iron Ravens (P = 3): 0% — no fix.
Math checks? YES (numbers correct).
My vote: NO — Check 2 failure. Doesn't help last-place team.
Vote result: 1 yes, 4 no. RULE FAILS.
PASSED RULES (on the wall):
1. ENDURANCE FLOOR 4
2. UNDERDOG BONUS EXTENDS TO 5TH PLACE
3. POWER FLOOR 5 ← ours
— Maya, Devon, Iris
Season 2 Allocation Verification
The teacher points at the three steps on the board: Step 1 — verify your loadout in the What-If tool. Step 2 — program it into MakeCode. Step 3 — one test drive. "35 minutes. No one leaves until all three are done. Go." Maya, Devon, and Iris open the What-If tool on Maya's screen. The Commissioner rules from the wall are already loaded as constraints.
Step 1 — Verify. Maya enters Patience's allocation: S = 4, E = 4, T = 5, P = 7. The three rule boxes turn green one after the other. Power floor 5 — green. Endurance floor 4 — green. Total 20 — green. No red anywhere. "All green," Maya says. "Total 20. No blanks." The teacher walks past, glances at the screen, nods. "Step 2." Patience took two minutes. They look up. Iron Ravens is still in Step 1 at the next table — they have to find a new allocation that satisfies the POWER FLOOR 5 rule. Maya watches Devon walk over to coach them through it.
Step 2 — Program. Maya pulls up MakeCode on the bot's loaded file. The .mkcd from yesterday is already at S = 4, E = 4, T = 5, P = 7. She reads each value out loud as Iris checks them against the What-If tool. "Speed four. Endurance four. Turning five. Power seven." Match. Maya saves and re-loads to the bot to be safe. The teacher's pass-through: "Show me one stat in the code." Iris points at POWER = 7. The teacher initials the monitoring chart.
Step 3 — Test drive. One run. Iris picks up the bot, calibrates the bot, and places it at the corner of the field, then presses A. The teacher walks over as the launch sequence starts. "What should look different from Season 1, based on your new loadout?" Maya, watching the bot turn-drive-turn: "Slower to the ball — Speed dropped from 6 to 4, so motor power is at 20% instead of 30%. Stronger push — chargePower is 49 now, not 25. The launch sequence might overshoot slightly because we calibrated it at Speed 6." The bot's headlights flash white at the ball. Time to ball: 5.2 seconds. The push at chargePower 49 drives the ball clean across to the far goal. The bot does what Maya said it would. Devon writes the one line in the data log: "Run 1, Season 2 config. Time to ball 5.2 sec — Speed 4 cost us about 1.5 sec versus Season 1's Speed 6. Push at chargePower 49 reached the goal. Launch geometry held — no overshoot at the reduced Speed."
Wrap mini-share. The teacher calls Iron Ravens to share their trade-off. They had to move 2 points into Power. "We took 1 from Speed and 1 from Turning. Power went from 3 to 5." The teacher: "So meeting the rule meant taking points off two other stats." Iron Ravens: "Right." Magnetic Raptors restates it. The teacher names the practice: "Checking that every rule holds at the same time, not one at a time, is called checking a system for consistency. That is the same thing you do when you solve a system of inequalities in algebra. You have done it three times this week — Day 5 budget constraint, Day 11 proposal verification, today." Maya looks up. The thing she has been doing all week has a name.
Exit ticket. Two questions, two minutes. Question 1: Write the rule that was hardest to meet as an inequality. Maya writes E ≥ 4 with a note: "Hardest because Patience is exactly at E = 4 — no room to move points out of Endurance into Power without breaking it." Question 2: Does your final loadout meet every rule? Circle YES / NO. Maya circles YES. She hands the sheet in.
S + E + T + P = 20. Today there are three more constraints stacked on top of that one, and the bot is loaded under all of them. "System of inequalities" goes in her data log with a date next to it. Tomorrow her bot plays under those constraints for real. She doesn't know how it will go. What she does know is that the math she's holding is the same math she'll use to solve for variables in algebra next year. The teacher just told her so.The Day 8 Question Closes — SKETCH
(This is a sketch. Full scene goes here when Day 12 gets built out.)
After Patience's first Season 2 match, Maya opens her data log to the page she marked on Day 8: "Day 11 — change Speed, take a new data point, see if the equation gets sharper." She has the new data point. Speed = 4, Goals scored = 3. She writes it underneath the five Season 1 rows.
She tries to compute the Patience-specific slope. Two points: (6, 1) and (4, 3). m = (3 − 1) ÷ (4 − 6) = 2 ÷ (−2) = −1. Negative slope. She stops. The class equation has a positive slope. "That can't be right," she says out loud.
Iris looks over her shoulder. "We changed Power too. That's not just a Speed change." Maya stares at her data log for a second, then nods slowly. "Oh. Right." She crosses out the −1 with one careful line and writes underneath: "Can't fit a slope from these two points. Power changed too. Need to change ONE thing at a time."
The teacher walks by. Maya tells her what she just figured out. The teacher writes it on the board for the room: "If you change two variables at once, you can't tell which one made the difference. That's why scientists run controlled experiments." Maya copies the sentence into her data log next to the crossed-out −1.
Season 2 Opens · Two Predictions, One Equation
Week 4 · Season 2 + Exhibition5 − 1 − 4 across 10 matches — 50% win rate. The bot is loaded at S = 4, E = 4, T = 5, P = 7 under the new POWER FLOOR 5 and ENDURANCE FLOOR 4 rules. New week, new role: Maya is the Fabricator — bot allocation, programming, physical bot setup. Devon takes the dashboard. Iris runs the math.The Prediction Market
The teacher writes on the board: 8 matches in Season 2. How many will you win? Index cards go around. The rule is read once: "One number — not a range. Base it on something real from Season 1. You defend it out loud." Then: "Silent writing. Three minutes. Cards stay down." Iris — Analyst this week — picks up the pen for Patience.
Quiet writing. Iris writes Patience's Season 1 record on the card in pencil: 5 − 1 − 4 across 10 matches. Win rate 5 ÷ 10 = 50%. Eight Season 2 matches × 50% = 4 wins as a baseline. But Patience moved Power from 5 to 7 — Maya's whole hypothesis was that this would let them score against high-Power opponents. In Season 1 they went 0-for-4 against teams with chargePower ≥ 49. *If even one of those losses flips to a win, that's +1.* Iris writes the rough math under the prediction. Devon, leaning over the table: "Power floor rule helps Iron Ravens, too. They're at chargePower 9 — almost where we used to be. We'll probably still beat them." Iris circles 5 as her final number and writes underneath: Season 1 win rate 50% + 1 win from Power 7 against Falcons-class opponents. Iris nods. That's the defense.
Post all at once. The teacher counts. "One. Two. Three." Every team holds their card up at the same moment. Maya turns to read the wall. Six cards. The room is quiet for thirty seconds while everyone scans. Iron Ravens: 2. Magnetic Raptors: 5. Steady Hawks: 6. Kinetic Falcons: 8. Cobalt Wolves: 6. Patient Foxes: 5. Falcons predicted 8 — undefeated in Season 1, doubling down. Iron Ravens predicted 2 — half their Season 1 win count, even though Patience's POWER FLOOR rule was supposed to help them. They're being honest about Power 5 still being a Power gap against Falcons-class teams.
Go around. The teacher calls Patient Foxes fourth in the order. "What Season 1 number led to that prediction? One sentence." Iris stands. "Our Season 1 win rate was 5 out of 10, so 50% — baseline 4 wins on 8 matches. Plus 1 win expected from the Power 7 upgrade against Falcons-class opponents, where we went 0 for 4 in Season 1. So 5." The teacher echoes the structure back: "Specific Season 1 win rate plus an adjustment for a stat change you can name." Iris nods and sits. Twenty seconds of defense.
Name it. Two more teams defend. After Magnetic Raptors cites their win rate cleanly, the teacher names the move for the room. "What Raptors just did — taking a real Season 1 number and using it to predict — is called quantitative reasoning. The equation you build in the next block does the same thing, more precisely." Maya writes quantitative reasoning in her journal. The cards stay on the wall for the rest of the week.
Building and Solving Linear Equations
The teacher posts the class data table on the board — every team's stat values and Season 1 Win%. "x is a bot's stat value. y is that bot's Win%. You'll draw a line that fits the pattern across bots in this class. Two bots set the line — Build Bots A and B. A third bot — Test Bot C — is your team. You'll use the equation to predict your own Win%, then compare to your actual." Iris opens the interactive lesson on her screen. "Why not test on Build Bot A or B? Tell your partner." Maya, to Devon: "Because the answer is already baked in. They built the line — of course they fit it." Devon nods.
Pick the stat. "Before you pick bots, check the spread. Which stat has the widest variation across the class?" Maya scans the table. Speed ranges 3 to 7 (spread of 4). Endurance 2 to 7 (spread of 5). Turning 2 to 7 (spread of 5). Power 3 to 9 (spread of 6). Power. *And it's the stat we changed. Two reasons to pick it.* Maya circles Power.
Build Bots A and B. Maya picks the two extremes: Build Bot A — Iron Ravens (P = 3, Win% = 10). Build Bot B — Cobalt Wolves (P = 9, Win% = 80). Maximum spread. Sharpest slope. The interactive page plots the two dots and draws a line. The slope math falls out under Maya's pencil: m = (80 − 10) ÷ (9 − 3) = 70 ÷ 6 ≈ 11.67. Every 1-point increase in Power is associated with about 11.67 percentage points of Win% across the class. Then the y-intercept: b = 10 − 11.67 × 3 = −25. Equation: y ≈ 11.67x − 25. Maya pauses on the negative y-intercept. The line predicts negative Win% for P ≤ 2. That's not real — no team can have a negative win rate. She writes that observation next to the equation: the line works in our actual data range but breaks at the extremes. The model is local, not universal.
Test Bot C. Maya enters Patience's Season 1 Power value — P = 5, the old value. The test asks: did the model predict Patience's actual Season 1 Win% from Power alone? The page calculates: y = 11.67(5) − 25 = 58.3 − 25 = 33.3. Predicted Win% for Patience at P = 5: 33.3%. Patience's actual Season 1 Win% was 50%. Residual = Predicted − Actual = 33.3 − 50 = −16.7. The page shades the residual red — the model UNDER-predicted Patience by almost 17 percentage points. Maya stares at the number. We outperformed what Power alone would predict. Devon: "Either Power isn't the only thing that matters, or we're an outlier." Iris: "Or both." Maya writes the residual down with one sentence underneath: Power alone doesn't capture Patience's Season 1 performance — the model misses by 17 points in our favor.
Season 2 prediction. Now the new Power value: Patience's Season 2 P = 7. "Plug it in," Iris says. y = 11.67(7) − 25 = 81.7 − 25 = 56.7. Predicted Win% at P = 7: approximately 57%. Maya writes the sentence the script demands, exact wording: "Based on the Season 1 class data, changing Power from 5 to 7 predicts approximately 57% win rate." In an 8-match Season 2, that's 0.57 × 8 = 4.56 → roughly 5 wins. Same as the index card. Two roads, same destination. *Except the equation also gave her the residual — and that's the new piece.*
The teacher calls three teams. Maya's gets called for the residual. "Your prediction was 33.3%. Patience's actual was 50%. What does the residual mean?" Iris says,"It means Power didn't fully predict our performance. We did 17 points better than the linear-Power model said we should. Either there's a Speed effect, or a Turning effect, or we played well in a way the model can't see. And the line was built from only two points — Iron Ravens and Cobalt are extremes. The middle teams might pull the slope down." The teacher restates what Iris just said: "So the model captured part of the pattern, but not all of it." Iris nods. The teacher names the practice: "That move — using the gap between predicted and actual to evaluate how much to trust the model — is called residual analysis. That's what data scientists do." Same term Day 7 used — different meaning now. Maya writes it again with a note: (Day 7 named it; Day 13 made it specific.)
Match Gate. Every team writes their Season 2 prediction on the wall in the required format. Maya's team writes: "Based on the Season 1 class data, changing Power from 5 to 7 predicts approximately 57% win rate for Patience." The teacher scans the boards. Predicts approximately. All six boards have the qualifying language. Patience walks to the afternoon matches with two predictions on record.
Season 2 Match Day 1 — Three Rounds, Three Ball Modes
The teacher names the four things that are different from Season 1. "One: your equations are live — you tested them this morning, now they predict real outcomes. Two: ball modes — I'll announce the ball and what stat it rewards before each round. Your equation doesn't know about ball modes. Three: commissioner rules are binding — POWER FLOOR 5, ENDURANCE FLOOR 4, UNDERDOG BONUS through 5th place. Four: loss recovery has three diagnoses now — wrong slope, wrong x estimate, ball mode changed the relationship." She moves on. Iris, eyes on the board, frowns: "Wait — what's the difference between wrong slope and wrong x estimate?" Maya was about to ask the same thing. The Magnetic Raptors Analyst, two tables over, raises a hand: same question. The teacher pauses. "Yeah. I went too fast on that one." She walks back to the board. "Wrong slope: you said win% changes by 11.67 per Power point. The actual rate is different — maybe it's only 8. Whole line is the wrong steepness. Wrong x estimate: your slope is fine but you put in the wrong opponent Power. Say the opponent is P = 7 but you predicted off P = 5. Slope's right; the number you plugged in was wrong." Iris nods. Maya writes both definitions next to the diagnoses. The first explanation was the formal one. The second one is the one she'll actually use.
Round 1 — Standard ball. The teacher: "Foam ball. Standard Mode. Equations apply as built." Patience draws Magnetic Raptors. Raptors' Power = 6 (post-Underdog). Iris runs the equation. Raptors at P = 6 → predicted Win% = 11.67(6) − 25 = 45. Patience at P = 7 → predicted 57. The gap is 12 points; Patience is favored. Maya writes 62% Patience on the data log — equation prediction adjusted for the head-to-head margin. The match plays. Patience reaches the ball first at 0:38 — Speed 4 cost them a second on first contact but Power 7's chargePower 49 drove the ball clean over the line. Raptors comes back at 1:50; Final: 1 − 0. Win. Residual = 0.62 − 1.00 = −0.38. Under-predicted, in Patience's favor. Iris writes the diagnosis: "Diagnosis 2: opponent x estimate may have been slightly low — Raptors at P = 6 is even more Patience-favored than the equation captured, because chargePower scales quadratically and our P advantage compounds. Equation works directionally; magnitude is off."
Between R1–R2 window. The teacher says, "Compare your Season 1 residual from Day 8 to today's Round 1 residual. Magnitude similar, larger, or smaller?" Iris and Maya check. Day 8 Season 1 residual against the Power-only model: −17 points (model under-predicted Patience). Today's R1 residual: −38 points (model under-predicted Patience even more). Similar direction. Larger magnitude. Iris writes: "Residual is still negative — same direction as Season 1. We're still over-performing the linear-Power model. The Power 7 upgrade may be widening the gap, not closing it."
Round 2 — Speed Ball (dog ball, 27.8 g, 2.76"). The teacher reads the sentence twice: "Dog ball. Speed Ball Mode. This rewards Speed — not a broken slope." Patience draws Kinetic Falcons. Falcons' Power = 7 — equal to Patience. Falcons' Speed = 5 — one above Patience's 4. Maya runs the equation. Falcons at P = 7 → predicted 57. Same as Patience. Equation says 50-50. Maya writes 50% Patience on the data log. But she also writes a margin note: "Ball mode rewards Speed. Falcons S = 5, ours S = 4. The equation doesn't see this. Watch for residual." The match plays. The dog ball is light and rolls easily — bots that cover ground faster win the repositioning battle. Falcons' motorPower of 25% beats Patience's 20% on first contact every reset; Falcons reaches the ball half a second sooner each time. Falcons scores at 0:42 and again at 2:11. Patience never wins a possession battle. Final: 0 − 2. Loss. Residual = 0.50 − 0.00 = +0.50. Big over-prediction. Maya writes the diagnosis, fast: "Diagnosis 3: ball mode changed the relationship. The Speed Ball rewards Speed, and Falcons' S = 5 vs our S = 4 turned a Power-equal matchup into a Speed loss. The slope wasn't wrong — the equation just doesn't see Speed." The teacher walks past, reads it, nods. "That's the move. Don't blame the slope when the ball changed the rules."
Between R2–R3 window. Maya goes to the Skills Arena side field. Corner Kick challenge. The teacher's rule: the prediction has to come from the equation. Maya plugs in: at chargePower 49 (P = 7), follow-through 365 ms, what's the predicted ball travel distance? She uses the Day 10 distance formula work as a back-of-envelope. Predicts 4 of 4 corner kicks reach the goal. Actual: 3 of 4 — one veers because it hits the scoop funny. Residual: +1. Maya writes the sentence and earns a bronze badge. Faster Skills round than she expected.
Round 3 — Endurance Ball (rubber ball, 41.8 g, 2"). The teacher: "Rubber ball. Endurance Ball Mode. This rewards Endurance — not a broken slope." Patience draws Magnetic Raptors. Raptors' Power = 6, Endurance = 6. Maya runs the equation. Raptors at P = 6 → predicted 45. Patience at P = 7 → predicted 57. Patience favored by 12 points on Power. Maya writes 62% Patience. But she also writes a margin note: "Ball mode rewards Endurance. Raptors E = 6, ours E = 4. Decay rate matters more now. Watch for late-match collapse." The match plays. The rubber ball is heavier and rolls straight — robots that maintain motor power late control the ball longer. Minute 1: Patience scores at 1:08 — chargePower 49 drives the rubber ball clean across at full power. Minute 2: endurance decay kicks in. Patience at E = 4 drops to 19% motor power (lowPowerActive — red strip lights up); Raptors at E = 6 holds at 27%. Raptors recovers the centered ball at 2:18, pushes it home at 2:32. Then again at 2:55. Final: 1 − 2. Loss. Residual = 0.62 − 0.00 = +0.62. Bigger over-prediction than R2. Maya writes the diagnosis: "Diagnosis 3: ball mode changed the relationship. Endurance Ball rewards low decay. Patience E = 4 collapsed in minute 3; Raptors E = 6 held. Equation was right that Power gap favored us — but ball mode meant Endurance gap mattered more. Two Diagnosis 3s in a row."
Hard data check. The teacher walks every table. Three rows in every data log: prediction, actual, residual, diagnosis. Patience's row: R1 won, Diagnosis 2, residual −0.38. R2 lost, Diagnosis 3 (Speed Ball, Falcons' Speed advantage), residual +0.50. R3 lost, Diagnosis 3 (Endurance Ball, Raptors' Endurance advantage), residual +0.62. No blanks. The dashboard updates: Patient Foxes Season 2 record: 1 − 2. Two Diagnosis 3s in a row. Five matches left.
Prediction Market readout. The teacher reads each team's index card aloud. "Patient Foxes — predicted 5 wins. Day 1 record: 1 − 2. Pace projects 2.67 wins of 8." Maya does the math in her head before the teacher finishes saying it. Off pace. Need 4 wins from 5 remaining to hit the card. 80% win rate the rest of the way. The teacher's tone is level — neither encouraging nor discouraging. "The card stays up. Day 14 you check whether your equation needs adjusting based on today's residuals."
Exit ticket. "My Round 3 residual was +0.62 and I diagnosed it as Diagnosis 3 because the Endurance Ball rewarded low decay, which my equation doesn't see. Raptors' Endurance 6 held when our Endurance 4 collapsed at minute 2." Maya hands it in. The teacher reads it once and initials the bottom.
Residual Logging and Match Review
The teacher posts four steps on the board. 1. Predictions and actuals. 2. Residuals + direction. 3. Pattern sentence. 4. Specific question for tomorrow. Then the rule: "No equation changes today. Three matches isn't enough to know which value to change, and the change locks in. Write down what you saw. The revision comes tomorrow. Today's matches gave you three data points. That is not enough to know what to fix yet. So today's job is not to fix anything. It is to write down what you saw, calculate the gaps, and form one question that tomorrow's matches can actually answer."
Steps 1 and 2 — log the residuals. Iris pulls out the data log. Devon reads the predictions and actuals from this afternoon. Iris writes the residuals in clean columns: R1 predicted 0.62, actual 1.00, residual −0.38. R2 predicted 0.50, actual 0.00, residual +0.50. R3 predicted 0.62, actual 0.00, residual +0.62. Then the directions: R1 too low. R2 too high. R3 too high. Maya, watching from the bot's side of the table: "Two too high and one too low. The two highs are ball-mode rounds." Iris underlines the +0.50 and +0.62. Devon: "And the too-low is the only Standard round we played." The split is on the page in three lines.
Step 3 — pattern sentence. Iris drafts: "Our equation over-predicts in Speed Ball and Endurance Ball modes and under-predicts in Standard mode." She reads it aloud. Maya thinks. "That's three matches. We can't actually call that a pattern yet." Iris: "The script says if you can't call it a pattern, say so." She rewrites: "My three residuals were −0.38, +0.50, +0.62. The two over-predictions both came in ball-mode rounds; the under-prediction came in the only Standard round. With three matches I cannot yet call this a pattern, but the direction is suggestive." Devon: "That's the more honest version." He copies it into the data log.
Step 4 — specific question. Iris's first draft: "Does the ball-mode pattern hold?" The teacher walks past, reads it, shakes her head once. "Too vague. Make it specific enough that one more match result could change your answer." Iris stares at the page. Devon: "Specific how?" Maya: "I don't know — like a number?" Iris tries again, out loud this time: "Will our residual go down tomorrow?" She doesn't even write it. "That's still vague." Two minutes go by. The team is stuck. The teacher comes back. She asks: "If tomorrow's match gave you the same residual, what would you conclude? If it gave you the opposite, what would you conclude?" She walks away. Maya, slowly: "Wait. She's asking us to write both possibilities?" Iris: "Two conditions. Two conclusions." Devon picks up the marker. "OK. If tomorrow's Standard round gives us another negative residual around −0.4..." He stops. Maya: "Then the equation is consistently under-predicting Standard mode. Not a fluke." Iris writes it down. Devon: "And if it gives us a positive residual instead?" Maya: "Then R1 today was the fluke." Iris writes that one too. They work the ball-mode condition through the same way — back and forth, three drafts before the wording seems right. Iris reads the final version: "If tomorrow's Standard round gives us another negative residual around −0.4, the equation systematically under-predicts our Standard-mode performance. If the next ball-mode round gives us a residual under +0.30 after we win the auction, the ball-mode gap shrinks." The teacher returns, reads it. "Yes. That question can be answered by one more result. Cleared."
Wrap. Round-robin, one sentence each. Iris reads Patience's question. The teacher: "Good — two conditions, two different conclusions." Magnetic Raptors reads theirs: "If tomorrow gives us a positive residual on the Endurance Ball, our equation needs more Endurance weight." Steady Hawks: "My residuals were all under 0.05. My question is whether tomorrow's match gives me a residual over 0.10." The teacher's bridge: "Tomorrow you'll have six results. That is enough to look for a pattern and make one change. Hold the question you just wrote — it is the first thing we check."
Stat Auction · Acting on the Diagnosis · Match Day 2
Week 4 · Season 2 + ExhibitionStat Auction + Prediction Check
The teacher orients everyone to the webpage that explains the activity. Five auction packages, in order: +2 Speed, +2 Endurance, +2 Turning, +2 Power, +3 Wild. Token distribution: three per team, four for the last-place team. Patience has three — they're 1 − 2, not last (Iron Ravens is at 0 − 3 and gets four). Maya reads the rules with her teammates and points to the one she'll have to remember out loud: "You must state the formula result before the package is confirmed. If you can't, the bid goes to the next team."
Maya opens her data log to yesterday's three diagnoses. "R1 Diagnosis 2 — x estimate. Nothing to bid for. R2 Diagnosis 3 — Speed Ball rewarded Speed. R3 Diagnosis 3 — Endurance Ball rewarded Endurance. Two ball-mode losses. We can only pull one lever." Maya, in her Fabricator role, runs the allocation math both ways. "+2 Endurance: E goes 4 → 6, take from where? Power going to 5 erases the hypothesis. Speed going to 2 is brutal. Turning going to 3 is the cleanest hit. +2 Speed: S goes 4 → 6, restores Season 1 level. Take 2 from Turning, same cost." Devon weighs it out loud. "Endurance Ball only matters in matches that go past minute 2. Speed Ball matters from the first contact onward — every match. And restoring Speed 6 also fixes the first-contact disadvantage we had in Standard mode." Iris nods. "Pick the one that helps in more situations." They commit to Package 1, three tokens, take from Turning.
Package 1 — +2 Speed. The teacher: "Twenty seconds to check the formula." Iris pulls up the calculator. motorPower% = S × 5. At S = 4: 20%. At S = 6: 30%. Iris reads it aloud once, then again. "Fists closed. Bid." Six teams open at once. Patience opens 3. Magnetic Raptors opens 2. Iron Ravens opens 1. Three others open 0. Patience wins. The teacher: "Patient Foxes — say your new stat and formula result." Maya, looking at Iris's screen: "Speed 6. motorPower% = 6 × 5 = 30%." The teacher nods. "Update your stat sheet now."
Allocation update. Devon pulls out the bot allocation card. S: 4 → 6. E: 4 (unchanged). T: 5 → 3. P: 7 (unchanged). Total: 6 + 4 + 3 + 7 = 20. ✓ Iris cross-checks against the commissioner rules on the wall. P ≥ 5? P = 7 ✓. E ≥ 4? E = 4 ✓. The teacher passes: "Show me your new total." Devon turns the card. "Twenty." The teacher initials the auction monitoring chart. Patience is locked at S = 6, E = 4, T = 3, P = 7 for the rest of Season 2.
Packages 2 through 5. Patience already won — they don't bid. Steady Hawks takes +2 Endurance. Magnetic Raptors takes +2 Turning. Kinetic Falcons takes +2 Power (P 7 → 9, chargePower 81). Cobalt Wolves takes +3 Wild and puts it all on Power (P 9 → 10 — the cap; chargePower stays at 100). Cobalt is now maxed. The auction closes.
Prediction Check. Maya walks to the Prediction Market wall with the Patient Foxes card. Day 13 original: 5 wins. Current record: 1 − 2. New allocation S = 6, T = 3. She has to revise with two things on the card: a number from the dashboard and one sentence connecting it. Maya writes underneath the original: Revised: 4 wins. Citation: "Day 13 R2 residual +0.50 (Diagnosis 3). New Speed 6 should reduce that residual in Speed Ball mode and improve first-contact in Standard mode. But R3 Endurance Ball stays unaddressed — Patience still vulnerable there. Net adjustment: down 1, from 5 to 4." The teacher reads it once. "Number cited. Sentence connects to the prediction. Two diagnoses named — one fixed, one not. Valid revision."
Card Gate + Wrap. Every card scanned. Patience passes. The teacher names the practice for the room after Magnetic Raptors describes how they compared Speed's S × 5 to Power's P² before bidding: "What Raptors just did — using a formula output to compare options before committing to a bid — is called quantitative reasoning." Maya recognizes the term from yesterday morning's Prediction Market. Same term, different application. The auction was a market; quantitative reasoning was the move that won it.
Exit check. The teacher goes around the room. Each team states one formula fact. Patience's turn. Maya: "motorPower% went from 20 to 30 when our Speed moved from 4 to 6." The teacher writes it on her clipboard and moves to the next team.
Percent Change: Season 1 to Season 2 Configurations
"Auction is over. Your Season 2 configuration is locked. Before you can know whether your changes were good ones, you need to know how big they were. Percent change gives you that number." The teacher writes the formula on the board: Percent Change = (Season 2 − Season 1) ÷ Season 1 × 100. Then the worked example. Speed 4 → 6. Subtract: 2. Divide by Season 1 (4): 0.5. Multiply by 100: 50%. "Denominator is always Season 1. Always where you started. Apply this to all four of your stats. Thirty minutes."
Maya and Iris work through the four stats from the allocation card. Speed: Season 1 was 6, Season 2 is 6. (6 − 6) ÷ 6 × 100 = 0%. No change net — they restored at the auction what they sacrificed at the Season 2 reallocation. Endurance: Season 1 was 4, Season 2 is 4. 0%. Same story — at the floor both times. Turning: Season 1 was 5, Season 2 is 3. (3 − 5) ÷ 5 × 100 = −40%. Down forty. Power: Season 1 was 5, Season 2 is 7. (7 − 5) ÷ 5 × 100 = +40%. Up forty. Maya circles the pattern. Turning −40. Power +40. Same magnitude, opposite directions. Speed and Endurance at zero. Two stats moved. Both by the same size. Devon, doing his own version: "That's the trade in one sentence." The teacher passes. "Denominator?" Maya: "Season 1. Both Power and Turning. (S2 − S1) ÷ S1." The teacher initials the page.
The teacher reads the spread aloud. "Largest single-stat percent change in the room: Iron Ravens, Power +66.7% — POWER FLOOR plus Underdog +2. Most teams have at least one stat at 0%, including Patience on Speed and Endurance. The unusual pattern: Patience is the only team with a perfectly mirrored trade — Power +40%, Turning −40%, both other stats unchanged." The room turns to look at Maya, Devon, and Iris. That's accidental, Maya wants to say. The auction picked Speed; they paid in Turning. The math came out symmetric on its own.
Proportionality. "Patience increased Power by 40%. Should their wins go up by 40% this afternoon?" A student from another team says "yes, proportional." Another: "no, because Power is squared." The teacher turns to Maya. "Test it. Your Power went from 5 to 7. ChargePower is Power squared. What was your chargePower in Season 1? What is it now?" Maya, doing the math on her worksheet: "5 squared was 25. 7 squared is 49." The teacher: "Percent change." Maya: "Right. (49 − 25) ÷ 25 × 100 = 96%." A 40% stat change produced a 96% output change. "Maya's Power went up by 40 percent. Her chargePower went up by 96. Almost two-and-a-half times the size of the stat change. That's what non-proportional looks like." She names the practice: "What Maya just did — testing the claim with a specific formula to find out where it breaks down — is called reasoning from a counterexample. That's a powerful move in mathematics."
Exit ticket. Two problems on the board. Problem 1: A team's Endurance went from 6 to 3. Percent change. Maya writes: (3 − 6) ÷ 6 × 100 = −50%. Problem 2: A team increased Power by 40% from a Season 1 Power of 5. By how much did charge speed increase? Is that a 40% increase? Maya writes: New Power = 5 × 1.4 = 7. Charge speed at 5: 25. Charge speed at 7: 49. (49 − 25) ÷ 25 × 100 = 96%. Not 40%. Power scales quadratically, so a 40% Power increase produces a 96% charge speed increase. Non-proportional. She hands it in. The teacher reads it once. "Same answer you just got out loud, but written down." Initials the bottom.
Season 2 Match Day 2 — Three Rounds, One Ball
"30 seconds. Look at your Match Day 1 Prediction Tracker. Find your Round 3 residual. Positive or negative?" Maya finds it. +62. The biggest one she had. "Hold that number. Today you find out if your adjustments closed the gap."
Ball mode + Best Model framing. The teacher holds up a squeaky ball and sets one on each field. "Yesterday the environment changed every round. Today it stays fixed. Squeaky ball, all three matches. Same ball. Round 1 to Round 3. If your residuals change today, that change came from your prediction strategy — not the ball." Then the framing Maya hasn't heard before: "The Best Model badge does not go to the team with the most wins. It goes to the team whose final record is closest to their prediction card. Your job today is not to win matches. Your job is to predict accurately." Maya writes Best Model = closest to card at the top of her tracker.
Round 1 — Kinetic Falcons. Step 0: MD1 residual against Falcons. Maya writes +50 (R2 Speed Ball — predicted too high; we lost). Step 0.5: Maya pauses. "My MD1 residual was +50 because Patience S=4 vs Falcons S=5 on Speed Ball. We had a Speed disadvantage. Today our Speed is 6 — we have the Speed advantage now. The auction flipped the matchup." She circles UP. Step 2: plug opponent's Power into equation. Falcons post-auction: P=9. y = 11.67(9) − 25 = 80. Patience predicted 57. Falcons favored by 23 points on Power. But Patience has Speed 6 vs Falcons' Speed 5 — squeaky ball rewards Speed. Maya adjusts up from the equation's ~30: 40%. They play. The squeaky ball is light and rolls fast; Patience's motorPower 30% beats Falcons' 25% on first contact every reset. Patience reaches the ball first three times in three minutes — scores at 1:34. Falcons' chargePower 81 punches through anyway, scoring at 0:48 and 2:25. Final: 1 − 2. Loss. Residual = 40 − 0 = +40. Maya circles TOO HIGH. Shrank by 10 points from MD1 — Speed advantage helped, but Power 9 was still too much.
Round 2 — Magnetic Raptors. Step 0: MD1 residual against Raptors. Maya writes +62 (R3, Endurance Ball — different ball, but it's the only Raptors anchor she has). Step 0.5: she pauses. "MD1 was Endurance Ball — different mechanics. Today's squeaky ball rewards Speed. Patience S=6 vs Raptors S=4 — we have Speed advantage." She circles UP. Equation says Raptors P=6 → predicted 45, Patience P=7 → predicted 57. Patience favored on Power by 12 points. Plus the Speed advantage on squeaky ball. Maya adjusts up: 65%. They play. Patience's motorPower 30% reaches every loose ball before Raptors' 20% can; chargePower 49 pushes the squeaky ball clean across the field. Patience scores at 0:42 and again at 2:12. Raptors scores once at 1:48. Final: 2 − 1. Win. Residual = 65 − 100 = −35. Maya circles TOO LOW. Yesterday's same matchup was +62 and a loss. Today it's −35 and a win — the auction worked.
Round 3 — Iron Ravens. No MD1 comparison. Step 0.5: Maya circles SAME with a note: "no MD1 anchor; equation alone, plus Speed advantage." Iron Ravens post-floor: P=5, S=4. y = 11.67(5) − 25 = 33. Patience predicted 57. Favored by 24 points on Power. Speed advantage on the squeaky ball too (6 vs 4). Maya predicts 75%. They play. Patience reaches the ball first at 0:38 (Speed 6 dominant on the lightweight squeaky ball), pushes at chargePower 49. Iron Ravens' chargePower 25 push falls short every time. Patience scores at 1:02 and again at 1:48. Iron Ravens scores once at 2:42. Final: 2 − 1. Win. Residual = 75 − 100 = −25. Maya circles TOO LOW.
Hard data check. Three rows filled. Residuals: +40, −35, −25. All under 50 in magnitude. The two same-opponent comparisons told different stories: vs Falcons shrank from +50 to +40 (Power gap still dominant); vs Raptors flipped from +62 loss to −35 win (Speed advantage decisive). Patience MD2 record: 2 − 1. Season 2 total: 3 − 3. Two matches left tomorrow.
Wrap. The teacher calls two teams. Patience gets called as Pattern 1 — residuals shrinking AND a matchup flipped. "What changed between yesterday and today?" Maya: "Two things. My Speed went from 4 to 6 at the auction — that flipped my Speed Ball matchups. AND how I read the equation changed: I adjusted UP for matchups where I now have a Speed advantage, even though my equation doesn't see Speed. My MD1 residual against Raptors was +62 and a loss. Today it was −35 and a win." The teacher echoes: "Same model. Different reading. Different bot."
Prediction Market pace check. The teacher reads every team's row. "Patient Foxes — predicted 4. Season 2 record: 3 − 3. One more win needed. Two matches available tomorrow." Maya writes 1 of 2 at the bottom of the tracker. On track. The teacher names the closing practice: "Today the environment was constant. Whatever moved in your residuals came from your model, your bot, or your reading. That is controlled-variable thinking — hold the environment constant, isolate what you changed, measure what moved." Maya writes the term in her data log.
Exit ticket — End of Day. Maya fills in the fields. W: 2. L: 1. On track? YES. Residuals compared to MD1: SMALLER on average. Round where equation was most wrong: Round 2 vs Raptors — residual −35 on a win. The equation under-predicted our win rate even after I adjusted UP. Then the load-bearing field: For tomorrow's Open Lab, the ONE thing I want to change: my slope (m), from 11.67 to roughly 8. Both my biggest negative residuals on wins — Day 13 R1 against Raptors (−38) and today against Raptors (−35) — suggest the equation systematically under-predicts our wins. I built the slope from two extreme data points (Iron Ravens P=3 and Cobalt P=9). I want to try a middle data point instead. The adjustment cards: Slope: change from 11.67 to ~8. X variable: keep Power. She hands it in. The teacher reads it once and writes one word in the margin: "Yes."
Residual Analysis and Stat Auction Testing
"You now have six match results across two different ball modes. Before you touch your equation, there is one question you have to answer first: did your prediction errors point in the same direction in both modes, or did they flip? The answer to that question changes everything about what you do next." Five steps go up on the board. Maya pulls out her data log and yesterday's exit ticket — the one where she wrote slope from 11.67 to roughly 8.
Step 1 — fill the residual table. Maya copies her six matches into the table. Day 13 R1 vs Raptors (Standard): predicted 62, actual 100, residual −38, L, too low. Day 13 R2 vs Falcons (Speed Ball): predicted 50, actual 0, residual +50, L, too high. Day 13 R3 vs Raptors (Endurance Ball): predicted 62, actual 0, residual +62, L, too high. Day 14 R1 vs Falcons (Speed Ball): predicted 40, actual 0, residual +40, L, too high. Day 14 R2 vs Raptors (Speed Ball): predicted 65, actual 100, residual −35, L, too low. Day 14 R3 vs Iron Ravens (Speed Ball): predicted 75, actual 100, residual −25, L, too low. Six rows, all sizes L. Residuals range from 25 to 62.
Step 2 — sorting question. Maya looks at the directions column. Day 13: 1 too low, 2 too high — mostly too high. Day 14: 1 too high, 2 too low — mostly too low. She writes the answer: "Yes, direction flipped between Day 13 and Day 14." Then she stops and reads the answer back. "But Day 13 had three different ball modes. The script assumes Day 13 was one mode. Mine wasn't." Iris reads over her shoulder. "The flip isn't necessarily Day 13 vs Day 14. It might be Speed Ball vs the other modes." Maya nods. She adds a note next to her Yes: "Flip may be a ball-mode confound — Day 13 had three modes; Day 14 had one."Did she use confound right?
Speed Ball isolation. Maya isolates the four Speed Ball matches across both days. Day 13 R2 vs Falcons (P=7): +50. Day 14 R1 vs Falcons (P=9): +40. Day 14 R2 vs Raptors (P=6): −35. Day 14 R3 vs Iron Ravens (P=5): −25. She sorts by opponent Power. P=5: −25. P=6: −35. P=7: +50. P=9: +40. Maya stares at the column. "The direction changes with opponent Power. Low Power → too low. High Power → too high." Devon: "That's not flat. And it's not a clean fanning either — sizes don't strictly grow." Maya: "Low-P residuals are sizes 25 and 35. High-P are 50 and 40. Sizes grow with opponent Power, but the direction also flips around P = 6 or 7. That's a mix."
The teacher passes. "Tell me in one sentence: does this point to m, b, or neither?" Maya thinks. "Neither cleanly. A wrong slope would keep direction consistent and grow the size with opponent Power. A wrong intercept would keep direction consistent and keep size flat. Mine doesn't do either — the direction changes around opponent Power 6−7. That's not Path 2 or Path 3 — neither a slope problem nor an intercept problem." The teacher nods. "What's your call?" Maya pauses. She thinks about her exit ticket from yesterday — slope from 11.67 to roughly 8 — and now reads it with the residual table next to it. "My exit ticket said the slope is too steep. But the residual table shows the direction flips with opponent Power, not just the size. Steepening or flattening the slope won't fix a direction flip. I want to hold the equation. The data is too mixed-mode and too noisy to confidently diagnose." The teacher: "That's Path 4. That's a defensible call. Write that down."
Maya writes the two sentences. "Within Speed Ball, the residual direction flips with opponent Power — negative for low-Power opponents (Iron Ravens, Raptors), positive for high-Power opponents (Falcons). Sizes are all L (25 to 50)." Then: "This is not a slope problem (which would keep direction consistent) or an intercept problem (which would keep size flat). The pattern is consistent with my equation being miscalibrated around opponent Power 6–7 — possibly because my slope was built from extreme data points (Iron Ravens P=3 and Cobalt P=9). Six noisy matches across two ball modes don't give me enough evidence to choose a confident change. Holding the equation." "Using the original equation y = 11.67x − 25. For an opponent with P=7: y = 57, with manual UP adjustment for Speed advantage. This prediction carries more uncertainty than yesterday's did because the residual pattern is genuinely unclear."
Wrap. The teacher calls Patience as a held-equation team. "What did you see, and why did that tell you not to change anything?" Maya: "The direction of the residual changed with opponent Power instead of staying consistent. Neither Path 2 nor Path 3 fits. Yesterday, I wrote a hypothesis that the slope was too steep. The table today showed it's more complicated than that — the equation may be miscalibrated, but not in a way one change can fix." The teacher names the practice for the room: "What Maya just did — looking at where her prediction went wrong and asking whether the model is broken or whether something outside the model changed — is residual analysis. Yesterday she had a hypothesis. Today she had data, and she updated."
Bot Lore · Whose Equation Tracked Closest
Week 4 · Season 2 + ExhibitionBot Lore Gallery Walk
Six elements on a wall sheet: bot name, Season 1 stat allocation, Season 2 stat allocation, linear equation with labels, Season 2 match record, one defining moment. Maya, Devon, and Iris split the work. Devon writes the two configs side by side: S=6, E=4, T=5, P=5 → S=6, E=4, T=3, P=7. Iris writes the match record: MD1: 1 − 2. MD2: 2 − 1. Total: 3 − 3. Maya writes the linear equation: y = 11.67x − 25, where x = opponent's Power, y = Patience's predicted Win%. Slope labeled. Y-intercept labeled. X-variable labeled. The defining moment is Iris's call: "Day 14 Speed Ball matchup against Raptors flipped from a +62 loss to a −35 win — same opponent, same equation, but Speed 6 reached the ball first every reset. The auction trade worked."
The teacher reads Q1 through Q4 aloud. On Q2 she does the partner check: "Which team's linear equation would you trust most? What would you actually need to look at on a team's wall to answer that?" A kid from Kinetic Falcons answers first, confident: "The team with the most wins. If they won, the equation has to be right." The teacher doesn't say yes or no. "Walk me through that. What does the equation actually predict?" Falcons kid, slower: "Win… probability." Teacher: "And what does the win column on the wall say?" "Actual wins." Teacher: "So if I want to check how good a prediction is, what am I comparing?" An Iron Ravens kid, getting there: "You'd compare the predicted number to the actual number." Teacher: "What's the word for that gap?" Three seconds of room silence. Maya, looking up from her data log: "Residuals. Smallest gap between predicted and actual is the most trustworthy equation." The teacher nods once. "That's the question. Walk." Maya picks up her data log.
Station 1 — Magnetic Raptors. Their equation: y = 8x + 10, x = Endurance. Their match record: MD1: 2 − 1. MD2: 2 − 1. Total 4 − 2. Maya does the residual check in her head. Raptors at E = 6: predicted Win% = 8(6) + 10 = 58. Actual Win% across 6 matches: 4/6 = 67%. Residual: 58 − 67 = −9 points. That's smaller than her own −17 residual on Patience. She writes the number down in her data log, underlined.
Station 2 — Steady Hawks. Their equation: y = 6x + 8, x = Endurance. Their record: 3 − 3. Hawks at E = 7: predicted 8(7) + 8 = ahem wait — Maya re-reads — 6(7) + 8 = 50. Actual: 3/6 = 50%. Residual: 0. Maya stops moving for a second. Zero residual. Hawks' equation predicted their exact win rate. Hawks' slope (6) is more modest than my slope (11.67), and their intercept (8) is positive — the line doesn't dive below zero at the extremes the way mine does.
Station 3 — Kinetic Falcons. Their equation: y = 9x + 20, x = Power. Their record: 5 − 1. Falcons at P = 9 (post-auction): predicted 9(9) + 20 = 101. Capped at 100. They didn't write a cap; the equation predicts a number that can't exist. Actual: 5/6 = 83%. Residual: ~17. Big. Their equation lets Power explode at the top, just like Maya's does at the bottom (negative y-intercept). Both her equation and Falcons' break at the boundary. Hawks' doesn't.
Back at her station. Q1 (biggest config change): Iron Ravens — Power forced from 3 to 5 (POWER FLOOR rule), plus Underdog +2 added a third allocation move. Total absolute change of 5. Patience moved 4 (Power up from 5 to 7, Turning down from 5 to 3). Cobalt only moved 1. Iron Ravens is the most-changed bot in the room — and Patience's own POWER FLOOR rule is the reason. Q2 (most trustworthy equation): Steady Hawks. Residual of 0 across 6 matches; modest slope; no boundary breakdown. Q3 (commissioner rule with most effect): POWER FLOOR 5. Forced Iron Ravens to revamp; Patience's whole proposal was built on it; visible on every team's S2 display where Power changed.
Maya writes about Magnetic Raptors, using the scaffold from the worksheet. She rereads the scaffold twice — the prompt has three blanks and she keeps mixing up started and changed. Iris taps the worksheet: "Started is Day 1. Changed is the auction." Maya nods and writes: "Magnetic Raptors started last-place, took the Underdog bonus, moved Power 4 to 6, and ended with an Endurance equation that fit their data better than mine fit ours." She reads it back. "Last part says our equation is worse." Devon: "Is that what you mean?" Maya, slower: "It's what the residuals say. I think." She leaves it.
On her way back, Maya leaves one at Steady Hawks: "Your residual was zero across six matches. That's the only equation in the room that didn't break at a boundary." Hawks finds it when they return. Maya finds two on her own wall — Magnetic Raptors wrote: "Patience changed more stats than any team. Three of four." Iron Ravens wrote: "Without your POWER FLOOR rule, we wouldn't be here." She tapes both inside her data log.
Share-out. The teacher calls Iron Ravens first — narrative complexity, a season story that's all reallocation under a rule someone else wrote. Iron Ravens reads: "Iron Ravens started at Power 3, the worst record in the league, changed by the POWER FLOOR rule forcing them to Power 5 plus the Underdog +2 budget bonus, and ended as the team Patience's whole proposal was built around." The teacher echoes the key data point and asks the room what makes the sentence provable. "Power went from 3 to 5 is on their wall. Underdog +2 is on their wall. Patience's proposal cited them — on Patience's wall." Then the teacher calls Patient Foxes second for the equation reference. Maya stands and reads her Q4 sentence. The teacher: "Why does naming the equation as less trustworthy tell the story better than naming the wins?" Maya: "Because the wins came from the trade we made at the auction, not from the equation. The equation never knew about Turning. The trade told us to act on Turning. They're different sources of evidence." The teacher names the practice: "What Maya just did — moving from a number on the wall to a sentence that explains what that number means for that team's whole season — is called interpreting data in context. That is what every mathematician does when the calculation is done." Maya writes interpreting data in context in her data log.
Synthesis + exit ticket. The teacher reads her three patterns: "One. Every team that won a Day 14 auction package changed their highest Season 1 stat or their lowest — never a middle one. Two. Three of six equations predicted values that fell outside 0–100 at the boundaries; only three stayed inside the possible range. Three. Every defining moment written on the wall was a match decision, not a season win." She stops. Maya writes the exit-ticket annotation: "I'd bet on Steady Hawks. Their MD2 residual was 0 — smallest in the room. Their slope and intercept both keep the equation inside 0–100. Mine doesn't." Hands it in.
Teach the Math — Defend Every Claim with a Number
"In 24 hours a visitor is going to walk in and not know what a stat card is. Today you pick one formula you can explain to that person — formula, real numbers from your Season 2 bot record, plain language. No jargon." She points at the board where the nine formula options are written: Budget. Speed. Turning. Endurance. Power. Percent Change. Distance. Linear Equation. Proportional Scaling. The rule: "Every student picks one. No two students in the same team pick the same one. Write your name next to it." Devon walks up first and writes his name next to Budget Constraint — "It's addition. I want to start with the floor." Iris writes her name next to Linear Equation — "I already did this one for the residual page. Same equation." Maya stands at the board for ten seconds. She has three real candidates — Power (her Day 11 insight), Endurance (the formula behind her bot's actual loss pattern), and Percent Change (the calculation she defended at the commissioner meeting on Day 12). She writes her name next to Percent Change. The 177.8% from Iron Ravens' chargePower is still in her data log.
Maya opens the interactive lesson. Picks Percent Change. The tool asks her to enter an Old value and a New value from her Season 2 bot record. She doesn't enter a stat. She enters a stat-squared. Season 1 Power was 5 → chargePower = 25. Season 2 Power is 7 → chargePower = 49. She types those into the tool. The tool walks her through: (49 − 25) ÷ 25 × 100. She does the subtraction in her head — 24. Divides — 0.96. Times 100 — 96%. She types into the plain-language box: "The biggest thing Patience changed between seasons wasn't a stat — it was a stat-squared. We added 2 Power points. That looks small. But chargePower is Power squared, so the calculation on the wall is (49 minus 25) divided by 25 times 100, which equals 96%. Almost double the push on the ball, from two stat points." She hits Check My Explanation. The tool flags "jargon: chargePower." She rewrites: "Imagine your grade went from 60 to 78. That's a 30% improvement. Same idea here. Step 1: subtract — 49 − 25= 24. Step 2: divide — 24 ÷ 25 = .96. Step 3: × 100 = 96% change.
" Re-checks. Cleared.
Pitch rehearsal. Two-minute timer. Devon plays visitor. Maya: "Our Power stat went from 5 to 7 between Season 1 and Season 2. The formula for push force is Power squared. So our push force went from 25 to 49. Percent change is new minus old, divided by old, times 100. So 49 minus 25 is 24. 24 divided by 25 is 0.96. Times 100 is 96%. Almost double the push, from two stat points." She stops. Devon: "What does 96% more push feel like in the arena?" Maya, after a pause: "It means by Day 14 we could move the squeaky ball from where Magnetic Raptors had stopped it — and we couldn't on Day 12." Devon: "Yes. Open with the match. Then go to the formula. The formula explains the match." Maya re-orders her opening. Iris is next. She pitches her linear equation — y = 11.67x − 25 — and Maya catches one thing: "You said the slope is 11.67. Don't say the number first. Say what the slope means first. 'For every point of opponent Power we lose 11.67 points of predicted Win%.' Then the number." Iris re-orders. Devon pitches Budget. Three minutes. They're ready.
The teacher writes the order on the board: Budget → Speed → Turning → Endurance → Power → Percent Change → Distance → Linear Equation → Proportional Scaling. Devon goes first — clean read of the constraint, 3-minute hold. Endurance — fourth. A student from Kinetic Falcons reads her formula and says: "Higher endurance means we lose power faster." The teacher doesn't correct her. "Plug in E=18 and then E=4. Which one loses more power per minute at minute 3?" The student does the math at the board. E=18: (20−18) × 1.5 × 3 = 9% lost. E=4: (20−4) × 1.5 × 3 = 72% lost. She reads the numbers back. "Oh. Higher endurance loses power slower." The teacher echoes the claim back, clean: "Higher Endurance means a smaller (20 − E), which means less power loss per minute. The formula's direction is opposite from how the word sounds." Maya writes direction-of-formula check into her data log. Endurance 4 means we lose more, not less. Heard it. Wrote it down.
Power — fifth. Iron Ravens' presenter writes P = 6, charge = 12 on the board. The teacher is at the back of the room helping Cobalt with a calculator. She doesn't see it. The presenter keeps going. Two kids in the front row are flipping a card back and forth and not watching. Devon, low, to Maya: "He just did P times 2." Maya glances up. Devon's right. Devon raises his hand. The teacher looks over, walks back, reads the board. Beat. "You said charge equals P times 2. The formula says P squared. What is 6 times 6?" The presenter corrects to 36. The same error Maya made on Day 11 and Devon caught. The teacher names the practice now: "Quadratic does not mean doubled. Doubled is times 2. Squared is times itself." Maya — in the chair this time — hears how it must have sounded to Devon four days ago. Percent Change — sixth, Maya. She stands. Opens with the match: "On Day 12 our bot couldn't move the squeaky ball when Magnetic Raptors stopped it. On Day 14 we did. The reason is on our wall." Then the calculation: chargePower 25 → 49. (49 − 25) ÷ 25 × 100 = 96%. Almost double the push from two stat points. The teacher asks the connecting question: "Magnetic Raptors went from Power 4 to Power 6. What's their chargePower percent change?" Maya does it at the board: chargePower 16 → 36. (36 − 16) ÷ 16 × 100 = 125%. She turns back: "Theirs went up by more than ours. Same +2 Power points — but 16 to 36 is a 125% jump, and 25 to 49 is only 96%, because their starting value was smaller. The denominator matters." The teacher echoes it back to the room: "What Maya just named — that the same change produces a bigger percent when the starting value is smaller — is the reason the formula divides by Old and not by New. The denominator is where the calculation lives." Then she names the practice: "What every student in this block just did — took a formula, plugged in real numbers, got an answer, and then explained what the answer actually does in the arena — is called mathematical modeling. A model is when math describes something real. Your formulas are models of your bots." Maya writes mathematical modeling in her data log. That's three named practices in three days.
Exit ticket — individual. Three minutes. One index card. The teacher: "This is not a team question. I need to know what each of you understands." Maya writes her formula by hand. chargePower percent change = (49 − 25) ÷ 25 × 100 = 96%. Circles 96%. Then the plain-language box. She starts to write "Our push force went up 96% from Season 1 to Season 2" — and stops. That's the formula talking, not the match. She crosses it out and starts over: "By Day 14 we could move the squeaky ball that Magnetic Raptors had stopped — because two extra Power points isn't 'two more.' Power is squared, so push force went from 25 to 49, which is 96% more. That's the formula behind the match." She hands the card in at the door. The teacher reads it once and initials the bottom corner.
Season 2 Match Day 3 — Does the Equation Survive Three Balls
Three balls are staged at the edge of the field: foam, squeaky ball, rubber. The ball mode chart is taped to the wall: R1 Standard = Foam. R2 Speed Ball = Dog Ball. R3 Endurance Ball = Rubber Ball. The teacher: "These are not surprises. By Day 15 you already know ball type affects performance. The question today is whether your equation survives changing conditions." Maya opens her Prediction Tracker. The MY EQUATION section gets y = 11.67x − 25, x = opponent's Power. Devon, watching her write it: "Same equation from this morning. Residual was −17 across MD1 and MD2." Maya: "I know. Today we find out if it was −17 because of the slope, the x-variable, the auction, or the ball." She copies the four-cause list off the board into her data log: (1) slope error, (2) x-variable choice, (3) model drift, (4) environmental sensitivity. Her Prediction Market card reads 4 wins. Patience needs 1 win today to hit it.
Round 1 — Foam vs. Iron Ravens (P = 5). Maya plugs in: y = 11.67(5) − 25 = 33.35. She rounds to 33%. Previous residual was negative; she circles UP in the adjusting box and writes a final prediction of 40%. Foam ball, three-minute match. Patience scores first on Speed. Iron Ravens evens it at minute 2. Then the last minute: Endurance 4. (20 − 4) × 1.5 × 3 = 72% motor power lost by minute 3. Patience's bot slows visibly. Iron Ravens drives in the winner. Loss. Actual win% = 0%. Residual: 40 − 0 = +40. Too high by 40 points. Iris, calmly: "Equation watched Power. The Endurance number is what lost us the last minute." Maya writes the sign. She also writes x-variable choice next to the residual.
Round 2 — Dog Ball vs. Magnetic Raptors (P = 4). Speed Ball mode. The ball is bigger, lighter; whoever reaches it first wins the reset. Maya plugs in: y = 11(4) − 25 = 19. She's about to write 19. Iris, quiet: "You dropped the point six seven." Maya looks down at her own number. "Crap." Redoes it. 11.67 times 4 is 46.68. Minus 25 is 21.68. She rounds to 22%. Maya, low: "That's twice this week." Iris shrugs. She circles SAME — her last residual was +40, but that was on foam; she can't tell which way to adjust for a different ball. She writes 22%. Match: Speed 6 reaches the dog ball first every reset. Patience scores on three of four resets. Raptors can't recover. Win. Actual win% = 100%. Residual: 22 − 100 = −78. Maya stares at the number. "Equation predicted 22%. We won 100%. That's not a slope problem. That's the equation not knowing what Speed Ball is." Devon: "Environmental sensitivity. Your equation only knew Power." Maya writes environmental sensitivity next to the residual. Patience: 4-4 with one match left. The Prediction Market card is still live.
Round 3 — Rubber Ball vs. Kinetic Falcons (P = 9). Endurance Ball mode. The ball is heavy, dense, requires push force AND sustained motor power. Maya plugs in: y = 11.67(9) − 25 = 80.03. She rounds to 80%. She circles DOWN — her last residual was −78, so the equation was wildly low; this prediction is wildly high; pull it back. She writes 55%. Match: Falcons E = 5. Patience E = 4. Both bots fade by minute 2 — but Patience fades a full minute earlier. Falcons score three unanswered in the last 90 seconds. Loss. Actual win% = 0%. Residual: 55 − 0 = +55. Three residuals: +40, −78, +55. Spread of 135 points. Maya writes one sentence in her data log: "My equation was wrong in three different directions in 60 minutes." Patience MD3 record: 0 − 3. Season 2 final: 3 − 6.
Summary — Prediction Market reveal. Miss-to-hit order. The teacher reads Falcons first (card 6, record 7-2, MISS), then Iron Ravens (card 2, record 2-7, HIT), down through the rivals. Patience: "Card said 4 wins. Season 2 record is 3-6. MISS by 1 win." Maya writes the number. Steady Hawks last: "Card said 3. Record is 3-3. HIT." Best Prediction goes to Hawks. Tiebreaker: "Lowest average residual across three Season 2 matches. Hawks averaged a residual of 4. Closest in the room." Maya's morning exit-ticket bet was Hawks. It landed.
Retrospective + practice named. Q1: did your equation become more or less accurate across Season 2? Maya writes first, then reads: "My equation had two of the four causes wrong at once. Wrong x-variable choice — I only watched Power, which works for foam but doesn't predict Speed Ball or Endurance Ball. And environmental sensitivity — same equation produced +40, −78, and +55 across three balls. Same opponent stat, different ball, opposite-direction residuals." The teacher echoes it back to the room: "Maya named two of the four causes. What about the other two? Slope error?" Maya: "Slope was steep — the morning Gallery Walk already showed Hawks' modest slope had residual 0 and mine had −17. So slope contributed, but it wasn't the biggest one today." The teacher: "Model drift?" Maya: "No. We played the same bot we predicted with. The drift was the auction trade-off, but the equation already reflected the post-auction stats by Match Day 1." The teacher waits seven seconds. Then names the practice: "What Maya just did — looking at the gap between her prediction and the actual result, and using that gap to identify what was wrong with her model — is called empirical model refinement. Engineers, data scientists, and economists do it every day. Write that phrase in the margin of your Prediction Tracker." Maya writes empirical model refinement in her data log. That's the fourth named practice this week.
Exit ticket + Season 2 close. Maya writes: Season 2 record 3-6. Prediction Market MISS by 1. One number to explain by Day 18: why three residuals had three different signs across three balls — +40, −78, +55. The same equation predicted both too high and too low depending on the ball. Hands it in. The teacher closes Season 2 for the room. Final standings posted; Best Prediction announced; Steady Hawks at the top of the residual board. Tomorrow is the Community Exhibition. Iris, looking at the wall of three-week-old artifacts: "We have a lot to teach." Maya, looking at her data log: "And a 96% chargePower number that's still mine."
Post-Task Diagnostic — Prior Knowledge Reassessment
Framing. The room is quieter than it has been all week. Eight questions on the screen. No bots, no opponents, no ball modes. "On Day 1, you filled out something like this, and most of you did not know most of the answers. Today you do. I am not grading you against anyone else. I am comparing you to yourself from four weeks ago. Every answer you know today that you did not know on Day 1 is evidence of what happened in this room. Fill it out completely." I'll: "Start the timer." 12 minutes on the clock. Maya hears the second sentence land. Today you do. She remembers almost nothing about Day 1 — except the feeling of staring at the screen and scatch paper "Not Yet" in three of the boxes before she got to question 4. The timer starts.
Q1 through Q4 — the formulas she lived with. Q1: runner jogs 8 miles in 2 hours, how far in 5? She does it without writing the steps. 4 mph. 4 × 5 = 20. Q2: printer prints 240 pages in 4 minutes, how many per minute? 60. Q3: 4 apples per 3 oranges, 12 oranges in the basket, how many apples? She writes the ratio in the margin: 4 : 3 = x : 12. 12 ÷ 3 = 4. 4 × 4 = 16. Writes 16. Q4 — linear decay. A candle is 20 cm tall and burns 2 cm per hour. How tall after 3 hours? Maya almost laughs. P(t) = 20 − 2 × 3 = 14. She just lived through a 90-minute match day where her bot lost 24% motor power per minute — (20 − 4) × 1.5 — and the same formula on her exit ticket would have been the candle problem with bot stats inside it. The candle problem is the same problem with smaller numbers and a real-world object. She writes 14 cm in five seconds. Four answers down. She still has plenty of time
Q5 through Q7 — coordinate work. Q5: which quadrant for each of (4, −2), (−5, 6), (−3, −1), (1, 7). Three weeks ago she'd have second-guessed the negatives. Today she writes IV, II, III, I without consulting the gridded image on the screen. Q6: blueprint 4 ft wide × 6 ft long, scale factor 5, real dimensions? 20 × 30 ft. Done. Q7 — the arc problem. A river curves from town A to town B. The student wants to estimate the length along the curve, but the ruler only measures straight lines. Describe one thing the student could do. Maya stops. Three weeks ago she would have written "use a string." Today she writes: "Break the river into smaller straight segments. Measure each one with the ruler. Add them up. For more accuracy, use shorter segments. Or — plot coordinates along the river and use the distance formula on each segment between two points: d = √[(x₂−x₁)² + (y₂−y₁)²]." She reads it back. That's two methods. One of them is the formula she used on Day 11 to predict launch distance from corner to ball. She does not write that part. The diagnostic doesn't need it.
Q8 and the early finish. Q8: line through (1, 2) and (4, 11). Slope, and what it tells you about how y changes as x increases. Maya writes: slope = (11 − 2) ÷ (4 − 1) = 9 ÷ 3 = 3. For every 1 increase in x, y increases by 3. She remembers her Gallery Walk sentence from this morning — "For Season 3, use a middle data point and a modest slope." Three is modest. She starts to write that and crosses it out. This isn't the Gallery Walk. The slope number and what it means are enough. Eight answers down. The timer reads 6:04. She caps her pencil and sits back. She does not look around. She does not ask if she can leave. The teacher stands at the side of the room and does not make eye contact with anyone who has finished. Maya sits with her answer sheet submitted for six full minutes. Day 1 she still had four blanks at the 12-minute mark.
Collection + closing. The timer sounds. The teacher: "Computers closed." Devon finishes one last sentence and submits. Iris was already done. Submissions go in. The teacher waits until the room is silent again, "You just answered the same questions you answered on Day 1. That's it." No "good job." No "that wasn't so bad, right?" No commentary on performance. Maya stands up and notices her hands are not shaking. Day 1 they were shaking by question 3.
Exhibition Teaching Prep — One Conversation, Not Two
The teacher reads: "This morning you walked the room and added to your bot's story. That story is what you're bringing to the exhibition. Real visitors will sit down, pick one of three challenge cards, and ask you to walk them through the math. When they're done with the card, they're going to ask you questions — about your bot, your numbers, your season. Those two things are one conversation, not two." Then: "Write down your four stat values right now. And your Season 1 values next to them. From memory if you can. 30 seconds." Maya writes S = 6, P = 7, E = 4, T = 3 and underneath: Season 1: S = 6, P = 5, E = 4, T = 5. Devon writes his. Iris writes hers. Compute phase — 10 minutes. Maya works the three cards on paper: Motor% = 6 × 5 = 30%. Charge% = 7² = 49. Doubling: S = 12 → Motor% = 60 (doubled). P = 14 → Charge% = 196 (quadrupled). Percent change of her biggest stat move: Power 5 → 7 = (7 − 5) ÷ 5 × 100 = 40%. Devon double-checks the squaring. All four sets of numbers in her data log before the teacher walks past.
Dry-Run Round 1 — Devon plays visitor. Card pick: "3." Maya opens Challenge 3 — Percent Change — and teaches with her own numbers: "My Power went from 5 to 7. Formula is (new minus old) divided by old times 100. (7 minus 5) divided by 5 times 100 = 40%." Devon nods like a visitor would. Then he picks two follow-up questions from the bank. First — "Why did your team choose those numbers?" Maya: "We chose Speed 6 because we needed to reach the ball first when the ball mode rewards Speed. We chose Power 7 because Power squared is 49 push force — almost double from Season 1. We sacrificed Turning to get there. T went from 5 to 3." Second — "If you could change one thing about your allocation right now, what would it be?" Maya stops. Four seconds. Then: "I would move 1 point from Power back to Endurance. Power 6 still gives chargePower 36 — enough to push. Endurance 5 would slow my motor power decay by 1.5% per minute. By minute 3 I'd have 60% motor power left instead of 28%. That trade would have changed the Round 3 Endurance Ball loss from a 100% defeat into something I could actually fight." Devon writes the number down. The teacher walks past, hears the last sentence, and does not say anything. She nods once and keeps moving.
Debrief + Fix. The teacher names what she heard across the room: "Most common gap: when a visitor asks about your biggest prediction gap, you're naming the round but not the actual numbers. Fix that right now. 90 seconds. Write the sentence: round number, predicted value, actual value." Maya writes hers cleanly: "+55 in Round 3 on Match Day 3. Predicted 55% win probability. Actual was 0%." Devon writes his Budget Constraint follow-up. Iris writes her residual line. The room is heads-down for 90 seconds.
Dry-Run Round 2 — Iris plays visitor. Card pick: "2." Maya opens Challenge 2 — Linear vs. Quadratic. Tighter this round: "My Speed is 6. Doubled is 12. Motor% goes from 30 to 60 — doubled. My Power is 7. Doubled is 14. Charge% goes from 49 to 196 — quadrupled. Linear formulas double when you double the input. Quadratic formulas quadruple." Iris asks the gap question. Maya delivers the clean version straight back: "+55 in Round 3 on Match Day 3. Predicted 55% win. Actual was 0%." Iris asks the season change. Maya: "We moved 2 points from Turning to Power because Power² quadruples push force. It worked in Speed Ball. It didn't help in Endurance Ball — that one was about Endurance, not Power." Three minutes. Tight.
Exit Check + Skill Bridge. Two students called by name. The teacher picks Iris first: "Challenge 2. Your Power is 5. A visitor doubles it. Walk me through what happens to Charge%." Iris, without looking: "Power squared is 25. Doubled Power is 10. 10 squared is 100. Quadrupled." Three seconds. Teacher nods. Then she picks a kid from Iron Ravens: "A visitor just asked you — did your robot get better over time? Answer with a number." The Iron Ravens kid: "Our biggest Match Day 1 residual was +42. Our biggest Match Day 3 residual was −12. So yes — we got better. The number got smaller in magnitude." Teacher nods. Then: "Everyone stand up." Chairs scrape. "Today you practiced teaching math that belongs to you — to someone who has never seen it. That is harder than doing the math yourself. You had to know it well enough to explain it AND answer questions about it." Pause. "Skill Bridge: turn to someone not on your team. One sentence — what is one thing you know today that you did not know on Day 1? Say it out loud." Maya turns to a Steady Hawks kid she has never spoken to. Four seconds. Then: "I know that quadratic isn't the same as proportional. On Day 1 I didn't know what either word meant." The Hawks kid, after a beat: "I know how to calculate a residual in my head. On Day 1 I didn't know what one was." They nod at each other. Around the room, twenty-eight kids saying twenty-eight sentences out loud to a person they don't normally talk to. The teacher waits the full 30 seconds. Then: "That's the bridge. What you just said is what the program built. See you at the exhibition."
Final Day · Walk the Wall · Teach What You Built
Week 4 · Season 2 + ExhibitionExpert Setup — Prepare to Teach
"In 25 minutes a visitor is going to walk through that door and not know anything about this program. Not Day 1. Not Week 4. Nothing. You know more about this than they do. That's not arrogance. It's four weeks of work. Your job today is not to impress them. Your job is to help them understand one thing. Just one." "Stand up. Let's build your station."
Station setup Maya places the charged bot at the edge of the desk. She puts the bot in its current Season 2 config — S=6, E=4, T=3, P=7 — and writes the four numbers on a card next to it in marker. Devon opens the data dashboard and angles it so a standing visitor can read it. Iris opens the residual page from Day 13 and pulls out the formula reference sheet — Motor% = Speed × 5. ChargePower = P². Endurance decay = (20 − E) × 1.5 per minute. All five items in place by minute six.
Teaching goal card. Maya picks up her index card. The sentence frame is pre-written: "I want every visitor to understand that ___ because ___." Three topics on the board: Speed, coordinate plotting, proportional scaling. She picks proportional scaling. It's the formula behind the sentence she said out loud to a Hawks kid last night — quadratic isn't the same as proportional. She fills the card in: "I want every visitor to understand that our Motor% scales proportionally with Speed, but chargePower does not scale proportionally with Power, because Motor% = Speed × 5 (linear) and chargePower = Power² (quadratic). Speed 6 gives Motor% 30 — doubling Speed doubles Motor%. Power 7 gives chargePower 49 — doubling Power quadruples chargePower. That's the formula behind our Season 2 auction trade. Not twice the push from two more Power points — almost four times." She reads it back. Devon: "That's a formula, a match decision, and the Day 11 insight." Maya: "Yes. Three things in one card." She leaves it.
Peer practice — Maya teaches Iris. Iris plays visitor. Task 1 — physical handoff. Maya says the opening line: "This is our bot. It runs at 30% motor power for the first minute, then drops 24% every minute after that. Want to see it move?" She hands Iris the micro:bit. Iris taps the start button. The bot drives across the station on its own. Task 1 takes 40 seconds. Task 2 — coordinate distance. Maya places a dot on the grid at (2, 7) and another at (6, 7). Iris counts squares: "Four across, zero up. Four." Maya shows the formula calculation underneath — d = √[(6−2)² + (7−7)²] = √16 = 4. Same number. Task 3 — teaching goal card. Maya reads her card aloud. Iris paraphrases: "Motor% scales evenly with Speed — every Speed point adds exactly 5. ChargePower doesn't — every Power point adds more than the last. Doubling Speed doubles Motor%. Doubling Power quadruples chargePower. That's linear versus quadratic, and only one of them is proportional." Maya: "Yes. That's the formula behind our Season 2 auction trade. Two more Power points wasn't twice the push. It was almost four times." Iris and Maya switch. Then Devon and Maya switch.
Debrief. The teacher asks: "What was the hardest thing to explain? Don't fix it — just name it." Maya, after thinking: "The word doubled. People kept hearing it and thinking the answer should double too. With Speed it does — 30 to 60. With Power it doesn't. It quadruples. Same word, different thing happening." The teacher names the practice: "What Maya just described — noticing that the same word can describe two different mathematical relationships, and being careful about which one you mean — that is called precision of mathematical language. It is one of the hardest things in math. Not computing the right answer. Naming what the answer means." Maya writes precision of mathematical language in her data log.
Final check. Teaching goal card posted at the front of the station, visible from standing height. Bot accessible. Showing the residual page. Dashboard displaying. Formula reference sheet visible but off-center. The teacher walks the room one last time. "Stay at your station. Remember your opening line. The teaching starts now." She opens the door.
Community Exhibition Teaching Begins
The door opens. Five visitors walk in — three parents, one school administrator, one person Maya doesn't recognize. The teacher greets them: "Welcome. The students at each station will teach you something they built over four weeks. Your one job: do what they ask you to do. They will explain it. You try it." The administrator heads to Patience's station first.
Visitor 1 — the administrator. Maya delivers her opening line. "This is our bot. It runs at 30% motor power for the first minute, then drops 24% every minute after that. Want to see it move?" The administrator nods. Maya hands her the micro:bit. The administrator presses the start button. The bot crosses the station on its own at full motor speed. The administrator: "What happens after minute 1?" Maya: "The formula says (20 minus Endurance) times 1.5 equals percent we lose per minute. Our Endurance is 4. So (20 minus 4) times 1.5 is 24. We lose 24% every minute. By minute 3 the bot's lost most of its motor power." The administrator: "Why didn't you make Endurance higher?" Maya: "Because of a trade-off. At the auction we had to pick which weakness to fix. I picked Speed instead of Endurance. So my bot is fast for one minute and slow after that. That's the thing I want you to leave knowing." The administrator nods slowly. Three weeks ago Maya would not have known that sentence.
Visitor 2 — a parent — does the coordinate task. Task 1 takes 30 seconds. Task 2 — the parent plots two coordinates from the scouting report: (2, 7) and (6, 7). Maya counts with them. "Four across, zero up. Four squares." Then shows the formula: d = √[(6−2)² + (7−7)²] = 4. Same number. The parent: "So the square root is just the counting?" Maya: "When the two dots are on the same row. When they're not on the same row, the square root is the diagonal — it's shorter than the across-plus-up path." She traces the diagonal with her finger. Iris steps in with the residual page open: "That's why we calculated the diagonal in Season 1 — to predict how long a launch sequence would take from corner to ball."
Visitor 3 — asks about Power, and Maya gets a number wrong in front of him. "Why is one formula times 5 and the other one squared?" Maya hands the visitor the comparison table off the scouting report: "Motor% goes up by 5 every time Speed goes up by 1. ChargePower goes up by more every time Power goes up by 1. At Power 4, chargePower is 16. At Power 8, chargePower is 81 —" Iris, from the other side of the bot, flat: "Sixty-four." Maya stops. Looks at the card. Eight times eight is 64. 81 is 9 squared. She feels her face get warm. Then she just says it. "Sixty-four. Sorry — I was thinking nine. At Power 8, chargePower is 64. Doubled Power, quadrupled chargePower." The visitor smiles a little and waits. "Why does that matter?" Maya — and this answer surprises her because it comes out without planning — "Because for three weeks I argued we should move 2 points from Speed to Power, and the reason is right there. Two more Power points isn't just twice more — it's almost four times more push on the ball." The visitor nods and steps over to look at the dashboard. He never mentioned the 81.
Visitor 4 — Maya freezes, then resets. A teacher from another district asks: "What was the hardest thing you learned?" Maya stops. She has the answer in her data log — quadratic ≠ proportional from Day 11 — but she can't find the sentence. She looks at the bot. The reset button. She says her opening line: "This is our bot. It runs at 30% motor power for the first minute, then drops 24% every minute after that. Want to see it move?" The visitor laughs and takes the micro:bit. She presses the start button. While the bot drives itself across the station, Maya finds the sentence: "The hardest thing was when I almost wrote 'proportional scaling' on a worksheet because that's what the morning lesson was about, and my teammate caught it before I did. Power is quadratic — it doesn't scale proportionally. They look similar from a distance and they're not." The bot completes its run and stops. The visitor looks up. "Say that again."
Visitor 5 — Iris takes the lead. The fifth visitor is a high schooler who asks Iris a residual question. Iris walks her through the Day 15 Gallery Walk insight — Hawks' residual was 0; ours was −17; Hawks picked middle data points and a modest slope; we picked extremes. The high schooler: "So you'd build the model differently next time?" Iris: "Yes. Maya wrote it in her data log on Day 15. For Season 3, use a middle data point and a modest slope. Don't reach for the steepest line just because the spread is widest." Maya hears her own sentence said back to her by Iris to a stranger.
Mid-block check. At the 45-minute mark, the teacher pauses to scan. Patience has had four visitors. Devon hasn't taken the lead with any of them — he's been on the dashboard the whole time. The teacher quietly directs a sixth visitor over and introduces Devon by name: "This is Devon. Ask him about the data dashboard." Devon takes a breath and starts. His opening line is the same one Maya used.
Ballots + exit ticket. Visitors begin to leave at the 75-minute mark. One ballot each at the door. Five ballots collected. None read out loud. When the last visitor walks out, the teacher waits for the room to settle, then saya: "You just taught real people real math. That happened." Then the exit-ticket prompt: the hardest formula to explain, what you'd say differently, and the two math checks." Maya writes: "Hardest: explaining a 24%-per-minute decay so it sounds like a cliff, not a slope. What I'd say differently: lead with 'by minute 3 the bot has lost most of its motor power' before naming the per-minute number, instead of stating the per-minute number first. Motor% at Speed = 7: 35%. ChargePower at Power = 3: 9%. Percent change Speed 4 → 5: 25%." She hands the card in at the door. The teacher reads it once and initials the bottom.
Walk the Wall Final Gallery
Maya walks in and the room that is set up like a gallery — six zones around the walls, each labeled with an index card. Day 1 Goals. Bot Origin Stories. Rivalry Cards. Leaderboard History. Commissioner Rule Changes. The teacher says, "Look around. Everything on these walls is something you made. You're going to walk through it quietly. Take 15 minutes. Read everything. That is what four weeks of work looks like." Then: "As you walk, find one artifact that shows something you couldn't have made on Day 1. You don't have to tell anyone. Just find it."
Zone 1 — Day 1 Goals. Maya stands in front of her own handwriting from four weeks ago. The card reads: "I want to not feel bad in math class." She stares at it. That sentence has no number in it. Three weeks ago she would have crumpled it. Today, it doesn't bother her, and moves on.
Zone 2 — Bot Origin Stories. Patience's card from Day 1: "We picked Speed 6 because we saw 10 was too fast and 1 was dead. So somewhere in the middle. 14 left for the other three. Probably enough." Maya reads it twice. "Probably enough" isn't a calculation. It's a guess that landed somewhere reasonable because Devon could see three stats coming. That sentence was the first math Patience ever did, and Maya can name every reason it was a guess.
Zone 5 — Commissioner Rule Changes. Three rules on the wall in permanent marker, with vote counts. POWER FLOOR 5: 5 − 0. ENDURANCE FLOOR 4: 4 − 1. UNDERDOG BONUS EXTENDS TO 5TH PLACE: 3 − 2. Underneath POWER FLOOR 5, in smaller handwriting, the case study cited at the formal meeting: "Iron Ravens P = 3 → P = 5. ChargePower (25 − 9) ÷ 9 × 100 = 177.8% increase." Maya stops in front of her own number. She did that calculation on Day 11. She defended it from memory on Day 12. It is on the wall in marker. This is what she couldn't have made on Day 1. She keeps walking.
The teacher waits until everyone is seated. Then: "Find your Day 1 goals. Read what you wrote four weeks ago." Maya looks across the room at Zone 1 — she can still see her own handwriting from this distance. Then: "Now think about the artifact you found — the one that shows something you couldn't have made on Day 1. It might be a formula. It might be an argument you wrote." Maya is looking at the Commissioner's wall now. 177.8% in her own handwriting. 5 − 0 next to it. "The distance between those two things — that's what four weeks of math looks like." Then the closing consolidation: "On Day 1, you wrote a stat allocation based on what felt right. By Week 4, you calculated formula outputs and predicted match results with cited data. Same variables. Completely different level of precision. That's the math this program asked you to do — and you did it. This afternoon, the exhibition is yours. For now: take a seat. We have one more thing to do."
Awards Ceremony — Name What They Did With the Math
"Four weeks ago you walked in here and most of you had never driven a robot. Most of you had never written a linear equation from a data table. Most of you had never argued in front of a room about whether a math rule should change. Today we are not doing any of that for the first time. Today you already know how to do it." She names the four parts of the ceremony — moments, Arena Champion, awards, reflection. "Let's start with what I saw." Six moments. One per team. She does not put Patience or the Champion last. Iron Ravens first. Cobalt Wolves second. Magnetic Raptors third. Then Patience. "Patient Foxes. On Day 11 you calculated that Iron Ravens' Power change from 3 to 5 produced a 177.8% chargePower increase. You verified the math in writing on Day 12 in front of the Commissioner, and used it to argue for the POWER FLOOR 5 rule that the whole league reallocated under. That math is on the wall right now in marker, vote 5 − 0 next to it. That is percent change applied to a quadratic relationship, applied to a Commissioner argument that changed the league. Three things in one calculation." She moves to Steady Hawks. Then Kinetic Falcons. Maya does not move while the teacher is speaking. Devon nudges her after the pause. Maya finds her hands.
Arena Champion. The teacher steps back. "The Arena Champion goes to the team with the most wins. Every team that made it today had already done something most people in this building could not do: they ran a full season of competitive matches, revised their bot allocations based on data, and predicted the outcomes in advance." She pauses. "The Arena Champion is Kinetic Falcons. Final Season 2 record: 7 − 2. What I want on record is not just that they won. It's what they did to be in a position to win. Falcons moved Power to 9 at the auction — the largest single-stat move in the league. ChargePower at Power 9 is 81. That number won them three matches in Season 2 and pushed their prediction card from 6 to a Season finish of 7. They overshot their own card by one win because the quadratic kept giving." Maya listens. Falcons did it differently and it worked. The acknowledgment is for the math, not the W column. She watches the Falcons table look at each other. Different math. Different bot. Same camp.
Best Teacher Award. "During the Community Exhibition this morning, every visitor who walked through that door was handed a ballot. They were asked one question: who explained the math in a way you actually understood? This is not a vote for who is the nicest or who talked the most. It is a vote for mathematical communication. Someone in this room made a visitor understand something they did not understand before they walked in. The Best Teacher award goes to Maya from Patient Foxes." Maya does not move for a second. Devon nudges her. She stands. The teacher: "Five visitors cast ballots. Three went to Maya. One ballot reads: 'she explained Endurance decay as a cliff, not a slope.' Another: 'she answered the trade-off question without flinching.' A third: 'she froze, used the bot as a reset, and came back with quadratic ≠ proportional.' The teaching was real. The math landed." Maya walks up. No hug, no applause cue. The teacher hands her a card and shakes her hand. Maya walks back. Devon, low: "I voted for you." Maya: "You can't vote. You were teaching." Devon: "I voted in my head."
Verbal Reflection. "For the last part of the ceremony, two things out loud. No notes. First: name one area where you grew as a problem solver. Second: name one specific moment from this program where you saw that growth in action. A day, a match, a calculation. Something that actually happened." She goes around the room. Cobalt, Iron Ravens, Raptors, Hawks, Falcons. Then Patience. Iris first. Growth: "I learned that a number can be exactly right and still be the wrong number to use." Moment: "Day 15 morning Gallery Walk. I read Steady Hawks' equation. Their residual was 0. Ours was −17. We picked the steepest slope. They picked a modest one. The modest one fit the data." The teacher writes Y on her log. Devon next. Growth: "I check the formula on paper before I trust the program output." Moment: "Day 15 Open Lab compute phase. Four MATCHes on paper. The reason I knew the R3 Endurance Ball loss wasn't a bug was that I ran the formula by hand." Y. Then Maya. The teacher: "Maya." Six seconds of thinking. Maya: "I'm less scared of being wrong out loud." Pause. "That probably sounds small. It's the biggest one." The teacher does not nod or say great. She waits for the second thing. Maya: "This morning. Visitor 3. I said chargePower 81 in front of him and it was supposed to be 64. Iris caught it. I fixed it. He smiled and asked the next question. On Day 1 I think I would have stopped talking for the rest of the day." The teacher writes Y next to Maya's name on the log. She moves to the next person.
The teacher waits until the last student has spoken. Then: "That's the ceremony." Pause. "In four weeks you programmed a bot from allocation decisions, you ran it through a full competitive season, and you taught what you know to someone who walked in off the street. That is not a beginner's program. Most adults have never done any one of those three things.".
Final Debrief and Prep — Name What Landed, Fix What Didn't
"You taught during the Community Exhibition. You explained math to someone who didn't know it. That's different from solving math. Take 60 seconds — what did it feel like when a visitor actually got it?" Maya thinks about the administrator's slow nod when she named the auction trade-off. Devon thinks about the visitor who picked up the dashboard tablet for the first time. Iris thinks about the high schooler nodding while she paraphrased Maya's Day 15 sentence. Then the teacher reads Q1 and Q2. Q1: "What did visitors understand quickly? Name the specific moment." Q2: "What explanation did not land? Write a revised version. The revision must differ in approach, not just be shorter." The teacher runs the comprehension check: "Before you start — tell your teammate what Q2 is asking you to do. Not Q1." Devon to Maya: "Find a moment that didn't work and write a different explanation. Not shorter — different approach." Maya nods. Hard stop: "Think for 10 seconds about the hardest moment — the visitor who looked the most stuck. Hold that moment. Now start."
Q1 — what landed. Patience picks three moments, one each. Maya writes hers: "The administrator who asked why I didn't make Endurance higher. I answered with the auction trade-off without pausing. She nodded slowly — that meant she got it." Iris writes hers: "The high schooler who asked if we'd build the model differently. I gave her the Day 15 modest-slope sentence and she stopped walking and asked me to say it again." Devon writes: "The visitor who picked up the dashboard. I didn't explain it. I just handed it over and she figured it out before I said anything. The silence worked." Q2 — what didn't. Maya pauses longer on this one. She writes: "Visitor 4 asked what was the hardest thing I learned. I froze. I knew the answer. I couldn't say it. Next time: start with the wrong sentence — the one I almost wrote on a worksheet — and let the visitor watch me catch it. Lead with the mess, not the answer." Iris reads it. "That's a different approach. Not shorter." Maya: "Yeah. Start with what I got wrong." The teacher walks past and listens to Maya read it once. She does not say great. She nods and moves to the next team.
Skill Bridge — individual, silent, two minutes. The teacher: "Put the team conversation down. Individual writing. Two minutes. No sharing aloud." She reads the prompt: "The skill I used today to teach a visitor was [name it], and I know it worked when [describe the specific moment you saw them understand it]. One sentence. Name the skill by name. Name the exact moment." Silence. Maya writes: "The skill I used today to teach a visitor was translating a quadratic formula into 'almost four times more push' instead of saying 'P squared.' I know it worked when Visitor 3 asked why one formula was times 5 and the other was squared — and I said 'two more Power points isn't twice more, it's almost four times more push on the ball' without planning the sentence. He stopped asking questions and looked at the bot." She caps her pen. Hands the card in at the door. The teacher does not read it in front of her. She tucks it into a folder with the others and looks at Maya for one second before turning back to the door.
"Teaching math is different from doing math. Today you did the harder one — and you did it well enough to hand it to someone else. That's the goal." Patience stays at the table for a moment. Devon picks up his Q2 sheet and folds it. Iris caps her pen.