🏜️ Luna's Math Quest
Carry Canyon
Column addition and subtraction with carrying and borrowing, rounding, and first story problems.
Long Addition
How this station is declared (YAML)
id: cc-add title: Long Addition icon: ➕ board: long-add bands: - 0 - 2 lesson: long-add concept: addition
Lesson: Long Addition — 4 steps
Stack them
Introduce the idea. Luna opens with the column visual — vertical column arithmetic (add/sub/mul). The author sets each beat's state to walk a worked example column by column, across 1 narrated beat, so the concept is seen before it is ever practised.
What Luna says
- For bigger numbers, we stack them — ones under ones, tens under tens.
In the open config
id: lineup
label: Stack them
beats:
- say: lla-1
caption: For bigger numbers, we stack them — ones under ones, tens under tens.
view:
kind: column
key: a1
op: +
result: ""
carry: {}
active: null
top: 34
bottom: 12Preview

Add columns
Worked example. Luna walks one case step by step with the column view — vertical column arithmetic (add/sub/mul). The author sets each beat's state to walk a worked example column by column, turning the idea into a procedure a child can repeat.
What Luna says
- Always start on the right, with the ones. Four plus two is six.
- Then the tens. Three plus one is four.
- Thirty-four plus twelve is forty-six!
In the open config
id: nocarry
label: Add columns
beats:
- say: lla-2
caption: Always start on the right, with the ones. Four plus two is six.
view:
kind: column
key: a1
op: +
result: "6"
carry: {}
active: 0
top: 34
bottom: 12
- say: lla-3
caption: Then the tens. Three plus one is four.
view:
kind: column
key: a1
op: +
result: "46"
carry: {}
active: 1
top: 34
bottom: 12
- say: lla-4
caption: Thirty-four plus twelve is forty-six!
view:
kind: column
key: a1
op: +
result: "46"
carry: {}
active: null
top: 34
bottom: 12Preview
Carrying
Worked example. Luna walks one case step by step with the column view — vertical column arithmetic (add/sub/mul). The author sets each beat's state to walk a worked example column by column, turning the idea into a procedure a child can repeat.
What Luna says
- Now, what if the ones add up to ten or more? Let's try twenty-seven plus forty-eight.
- Seven plus eight is fifteen. Fifteen is too big for one box, so we write the five and carry the one ten up to the tens column.
- Now the tens: the carried one, plus two, plus four, makes seven.
- Twenty-seven plus forty-eight is seventy-five!
In the open config
id: carry
label: Carrying
beats:
- say: lla-5
caption: Now, what if the ones add up to ten or more? Let's try twenty-seven plus forty-eight.
view:
kind: column
key: a2
op: +
result: ""
carry: {}
active: null
top: 27
bottom: 48
- say: lla-6
caption: Seven plus eight is fifteen. Fifteen is too big for one box, so we write the five and carry the one ten up to the tens column.
view:
kind: column
key: a2
op: +
result: "5"
carry:
"1": "1"
active: 0
top: 27
bottom: 48
- say: lla-7
caption: "Now the tens: the carried one, plus two, plus four, makes seven."
view:
kind: column
key: a2
op: +
result: "75"
carry:
"1": "1"
active: 1
top: 27
bottom: 48
- say: lla-8
caption: Twenty-seven plus forty-eight is seventy-five!
view:
kind: column
key: a2
op: +
result: "75"
carry:
"1": "1"
active: null
top: 27
bottom: 48Preview
Your turn
Your turn. The lesson hands off to the practice board: the child now answers, applying what the column visual — vertical column arithmetic (add/sub/mul). The author sets each beat's state to walk a worked example column by column just showed.
What Luna says
- Line up the digits, add each column, and carry whenever you reach ten. You try!
In the open config
id: go
label: Your turn
beats:
- say: lla-9
caption: Line up the digits, add each column, and carry whenever you reach ten. You try!
view:
kind: column
key: a2
op: +
result: "75"
carry:
"1": "1"
active: null
top: 27
bottom: 48Preview

Long Subtraction
How this station is declared (YAML)
id: cc-sub title: Long Subtraction icon: ➖ board: long-sub bands: - 0 - 2 lesson: long-sub concept: subtraction
Lesson: Long Subtraction — 4 steps
Stack them
Introduce the idea. Luna opens with the column visual — vertical column arithmetic (add/sub/mul). The author sets each beat's state to walk a worked example column by column, across 1 narrated beat, so the concept is seen before it is ever practised.
What Luna says
- We stack subtraction the same way — ones under ones — and start on the right.
In the open config
id: lineup
label: Stack them
beats:
- say: lls-1
caption: We stack subtraction the same way — ones under ones — and start on the right.
view:
kind: column
key: s1
op: −
result: ""
carry: {}
active: null
top: 48
bottom: 23Preview

Subtract
Worked example. Luna walks one case step by step with the column view — vertical column arithmetic (add/sub/mul). The author sets each beat's state to walk a worked example column by column, turning the idea into a procedure a child can repeat.
What Luna says
- Eight minus three is five.
- Then the tens: four minus two is two.
- Forty-eight minus twenty-three is twenty-five.
In the open config
id: noborrow
label: Subtract
beats:
- say: lls-2
caption: Eight minus three is five.
view:
kind: column
key: s1
op: −
result: "5"
carry: {}
active: 0
top: 48
bottom: 23
- say: lls-3
caption: "Then the tens: four minus two is two."
view:
kind: column
key: s1
op: −
result: "25"
carry: {}
active: 1
top: 48
bottom: 23
- say: lls-4
caption: Forty-eight minus twenty-three is twenty-five.
view:
kind: column
key: s1
op: −
result: "25"
carry: {}
active: null
top: 48
bottom: 23Preview
Borrowing
Worked example. Luna walks one case step by step with the column view — vertical column arithmetic (add/sub/mul). The author sets each beat's state to walk a worked example column by column, turning the idea into a procedure a child can repeat.
What Luna says
- Sometimes the top digit is too small. Try fifty-two minus twenty-seven.
- Two minus seven? We can't do that, so we borrow. We take one ten from the five, so it becomes four, and the two ones become twelve.
- Now twelve minus seven is five.
- And four minus two is two.
In the open config
id: borrow
label: Borrowing
beats:
- say: lls-5
caption: Sometimes the top digit is too small. Try fifty-two minus twenty-seven.
view:
kind: column
key: s2
op: −
result: ""
carry: {}
active: null
top: 52
bottom: 27
- say: lls-6
caption: Two minus seven? We can't do that, so we borrow. We take one ten from the five, so it becomes four, and the two ones become twelve.
view:
kind: column
key: s2
op: −
result: ""
carry:
"0": "12"
"1": "4"
active: 0
top: 52
bottom: 27
- say: lls-7
caption: Now twelve minus seven is five.
view:
kind: column
key: s2
op: −
result: "5"
carry:
"0": "12"
"1": "4"
active: 0
top: 52
bottom: 27
- say: lls-8
caption: And four minus two is two.
view:
kind: column
key: s2
op: −
result: "25"
carry:
"0": "12"
"1": "4"
active: 1
top: 52
bottom: 27Preview
Your turn
Your turn. The lesson hands off to the practice board: the child now answers, applying what the column visual — vertical column arithmetic (add/sub/mul). The author sets each beat's state to walk a worked example column by column just showed.
What Luna says
- Fifty-two minus twenty-seven is twenty-five! Borrow whenever the top digit is too small. You try!
In the open config
id: go
label: Your turn
beats:
- say: lls-9
caption: Fifty-two minus twenty-seven is twenty-five! Borrow whenever the top digit is too small. You try!
view:
kind: column
key: s2
op: −
result: "25"
carry:
"0": "12"
"1": "4"
active: null
top: 52
bottom: 27Preview

Rounding
How this station is declared (YAML)
id: cc-round title: Rounding icon: 🎯 board: rounding bands: - 0 - 2 lesson: rounding concept: rounding
Lesson: Rounding — 5 steps
Round numbers
Introduce the idea. Luna opens with the big visual — a single big numeral or label, for emphasis / answer-reveal beats, across 1 narrated beat, so the concept is seen before it is ever practised.
What Luna says
- A round number ends in zero — like ten, twenty, thirty. They are nice and tidy to work with.
In the open config
id: what
label: Round numbers
beats:
- say: lrnd-1
caption: A round number ends in zero — like ten, twenty, thirty. They are nice and tidy to work with.
view:
kind: big
key: rn
text: 10 20 30 40
color: "#22d3ee"Preview

Round up
Worked example. Luna walks one case step by step with the roundline view — a number line showing which nearby multiple a value rounds to, turning the idea into a procedure a child can repeat.
What Luna says
- Rounding finds the nearest round number. Is forty-seven closer to forty, or to fifty?
- Forty-seven is past the middle, so it rounds up to fifty.
In the open config
id: up
label: Round up
beats:
- say: lrnd-2
caption: Rounding finds the nearest round number. Is forty-seven closer to forty, or to fifty?
view:
kind: roundline
key: r47
v: 47
unit: 10
- say: lrnd-3
caption: Forty-seven is past the middle, so it rounds up to fifty.
view:
kind: roundline
key: r47
v: 47
unit: 10Preview

Round down
Worked example. Luna walks one case step by step with the roundline view — a number line showing which nearby multiple a value rounds to, turning the idea into a procedure a child can repeat.
What Luna says
- Now forty-three. It sits below the middle, so it rounds down to forty.
In the open config
id: down
label: Round down
beats:
- say: lrnd-4
caption: Now forty-three. It sits below the middle, so it rounds down to forty.
view:
kind: roundline
key: r43
v: 43
unit: 10Preview

Halfway
Worked example. Luna walks one case step by step with the roundline view — a number line showing which nearby multiple a value rounds to, turning the idea into a procedure a child can repeat.
What Luna says
- And exactly halfway, like forty-five? The rule is: halfway always rounds up — to fifty.
In the open config
id: half
label: Halfway
beats:
- say: lrnd-5
caption: "And exactly halfway, like forty-five? The rule is: halfway always rounds up — to fifty."
view:
kind: roundline
key: r45
v: 45
unit: 10Preview

Your turn
Your turn. The lesson hands off to the practice board: the child now answers, applying what the roundline visual — a number line showing which nearby multiple a value rounds to just showed.
What Luna says
- Look at the ones digit: five or more rounds up, less than five rounds down. You try!
In the open config
id: go
label: Your turn
beats:
- say: lrnd-6
caption: "Look at the ones digit: five or more rounds up, less than five rounds down. You try!"
view:
kind: roundline
key: r47b
v: 47
unit: 10Preview

Story Problems
How this station is declared (YAML)
id: cc-words title: Story Problems icon: 📖 board: word-1step bands: - 0 - 2 lesson: word-problems concept: word-problems
Lesson: Story Problems — 5 steps
Read it
Introduce the idea. Luna opens with the story visual — a word problem read aloud; words reveal as Luna reads, with numbers and action words colour-coded, across 3 narrated beats, so the concept is seen before it is ever practised.
What Luna says
- Story problems hide math inside words. Maya has three apples.
- She gets five more.
- How many apples does she have now?
In the open config
id: readA
label: Read it
beats:
- say: lwp-1
caption: Story problems hide math inside words. Maya has three apples.
view:
kind: story
key: wA
words:
- t: Maya
- t: has
- t: "3"
kind: num
- t: apples.
- t: She
- t: gets
- t: "5"
kind: num
- t: more.
kind: add
- t: How
- t: many
- t: now?
revealed: 4
- say: lwp-2
caption: She gets five more.
view:
kind: story
key: wA
words:
- t: Maya
- t: has
- t: "3"
kind: num
- t: apples.
- t: She
- t: gets
- t: "5"
kind: num
- t: more.
kind: add
- t: How
- t: many
- t: now?
revealed: 8
- say: lwp-3
caption: How many apples does she have now?
view:
kind: story
key: wA
words:
- t: Maya
- t: has
- t: "3"
kind: num
- t: apples.
- t: She
- t: gets
- t: "5"
kind: num
- t: more.
kind: add
- t: How
- t: many
- t: now?
revealed: 11Preview
Find the math
Worked example. Luna walks one case step by step with the big view — a single big numeral or label, for emphasis / answer-reveal beats, turning the idea into a procedure a child can repeat.
What Luna says
- The word 'more' tells us to add. So we add three and five.
- Three plus five is eight apples!
In the open config
id: solveA
label: Find the math
beats:
- say: lwp-4
caption: The word 'more' tells us to add. So we add three and five.
view:
kind: big
key: eqA
text: 3 + 5 = 8
color: "#4ade80"
- say: lwp-5
caption: Three plus five is eight apples!
view:
kind: big
key: eqA
text: 3 + 5 = 8
color: "#4ade80"Preview

Another
Worked example. Luna walks one case step by step with the story view — a word problem read aloud; words reveal as Luna reads, with numbers and action words colour-coded, turning the idea into a procedure a child can repeat.
What Luna says
- Here is a different one. Sam had eight stickers.
- He gave away three.
- How many stickers are left?
In the open config
id: readB
label: Another
beats:
- say: lwp-6
caption: Here is a different one. Sam had eight stickers.
view:
kind: story
key: wB
words:
- t: Sam
- t: had
- t: "8"
kind: num
- t: stickers.
- t: He
- t: gave
kind: sub
- t: away
kind: sub
- t: "3."
kind: num
- t: How
- t: many
- t: left?
kind: sub
revealed: 4
- say: lwp-7
caption: He gave away three.
view:
kind: story
key: wB
words:
- t: Sam
- t: had
- t: "8"
kind: num
- t: stickers.
- t: He
- t: gave
kind: sub
- t: away
kind: sub
- t: "3."
kind: num
- t: How
- t: many
- t: left?
kind: sub
revealed: 8
- say: lwp-8
caption: How many stickers are left?
view:
kind: story
key: wB
words:
- t: Sam
- t: had
- t: "8"
kind: num
- t: stickers.
- t: He
- t: gave
kind: sub
- t: away
kind: sub
- t: "3."
kind: num
- t: How
- t: many
- t: left?
kind: sub
revealed: 11Preview
Subtract
Worked example. Luna walks one case step by step with the big view — a single big numeral or label, for emphasis / answer-reveal beats, turning the idea into a procedure a child can repeat.
What Luna says
- 'Gave away' and 'left' tell us to subtract. Eight minus three is five.
In the open config
id: solveB
label: Subtract
beats:
- say: lwp-9
caption: "'Gave away' and 'left' tell us to subtract. Eight minus three is five."
view:
kind: big
key: eqB
text: 8 − 3 = 5
color: "#fb923c"Preview

Your turn
Your turn. The lesson hands off to the practice board: the child now answers, applying what the story visual — a word problem read aloud; words reveal as Luna reads, with numbers and action words colour-coded just showed.
What Luna says
- Read slowly, find the numbers, and look for the action word. You try!
In the open config
id: go
label: Your turn
beats:
- say: lwp-10
caption: Read slowly, find the numbers, and look for the action word. You try!
view:
kind: story
key: wB
words:
- t: Sam
- t: had
- t: "8"
kind: num
- t: stickers.
- t: He
- t: gave
kind: sub
- t: away
kind: sub
- t: "3."
kind: num
- t: How
- t: many
- t: left?
kind: sub
revealed: 11Preview
