{
  "generatedAt": "2026-06-20T04:34:30.053Z",
  "source": "Generated from Math Foundation skill-manifest lesson briefs",
  "totals": {
    "skills": 600,
    "atomicUnits": 2400,
    "atomicUnitsPerSkill": 4
  },
  "units": [
    {
      "skillId": "ALG.EQ1.01",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Equations as balance",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 22,
      "id": "ALG.EQ1.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Equations as balance: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Equations as balance.",
      "content": "An equation says two expressions have equal value; whatever you do to one side must also happen to the other side to keep the balance true.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EQ1.01",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Equations as balance",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 22,
      "id": "ALG.EQ1.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Equations as balance: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Equations as balance.",
      "content": "x + 5 = 12 can be pictured as a balance. Subtract 5 from both sides: x + 5 − 5 = 12 − 5, so x = 7.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EQ1.01",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Equations as balance",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 22,
      "id": "ALG.EQ1.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Equations as balance: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Equations as balance into personal, civic/data, and career contexts.",
      "content": "Personal — a gift card plus $5 cash pays for a $12 snack order; find the card value. · Civic/Data — a survey total equals online responses plus 35 paper responses. · Career — a mechanic's invoice equals parts plus a fixed diagnostic fee.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EQ1.01",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Equations as balance",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 22,
      "id": "ALG.EQ1.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Equations as balance: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Equations as balance.",
      "content": "Accuracy — 8 balance-preserving move items ≥7/8 · Explanation — why does subtracting from only one side break the equation? · Transfer — solve a new one-step balance and describe the move.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EQ1.02",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Solution as the value that makes it true",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 23,
      "id": "ALG.EQ1.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Solution as the value that makes it true: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Solution as the value that makes it true.",
      "content": "A solution is not just the result of steps; it is the value that makes the original equation true when substituted back in.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EQ1.02",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Solution as the value that makes it true",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 23,
      "id": "ALG.EQ1.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Solution as the value that makes it true: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Solution as the value that makes it true.",
      "content": "For 3x + 2 = 14, x = 4 is a solution because 3(4) + 2 = 14. x = 5 is not because 15 + 2 = 17.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EQ1.02",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Solution as the value that makes it true",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 23,
      "id": "ALG.EQ1.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Solution as the value that makes it true: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Solution as the value that makes it true into personal, civic/data, and career contexts.",
      "content": "Personal — test whether 6 chores earns enough points for a reward. · Civic/Data — verify a missing count in a community table. · Career — check whether a billed hour total matches the invoice formula.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EQ1.02",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Solution as the value that makes it true",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 23,
      "id": "ALG.EQ1.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Solution as the value that makes it true: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Solution as the value that makes it true.",
      "content": "Accuracy — 8 candidate-solution checks and simple solves ≥7/8 · Explanation — why should a solved equation be checked in the original equation? · Transfer — test three candidate values for 2n − 3 = 11 and name the solution.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EQ1.03",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "One-step equations (add/subtract)",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 24,
      "id": "ALG.EQ1.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "One-step equations (add/subtract): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of One-step equations (add/subtract).",
      "content": "Addition and subtraction undo each other; isolate the variable by applying the inverse operation to both sides.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EQ1.03",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "One-step equations (add/subtract)",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 24,
      "id": "ALG.EQ1.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "One-step equations (add/subtract): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for One-step equations (add/subtract).",
      "content": "y − 8 = 19. Add 8 to both sides: y = 27. For a + 14 = 30, subtract 14 to get a = 16.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EQ1.03",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "One-step equations (add/subtract)",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 24,
      "id": "ALG.EQ1.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "One-step equations (add/subtract): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer One-step equations (add/subtract) into personal, civic/data, and career contexts.",
      "content": "Personal — after spending $8, you have $19 left; find the starting amount. · Civic/Data — a library adds 14 new members to reach 30; find the previous count. · Career — a delivery arrives 6 items short of the ordered total; recover the shipped count.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EQ1.03",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "One-step equations (add/subtract)",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 24,
      "id": "ALG.EQ1.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "One-step equations (add/subtract): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond One-step equations (add/subtract).",
      "content": "Accuracy — 8 add/subtract equations including negatives in context ≥7/8 · Explanation — choose the inverse operation and justify it · Transfer — solve p + 17 = 42 and check.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EQ1.04",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "One-step equations (multiply/divide)",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 25,
      "id": "ALG.EQ1.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "One-step equations (multiply/divide): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of One-step equations (multiply/divide).",
      "content": "Multiplication and division undo each other; divide by a coefficient or multiply by a divisor to isolate the variable.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EQ1.04",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "One-step equations (multiply/divide)",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 25,
      "id": "ALG.EQ1.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "One-step equations (multiply/divide): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for One-step equations (multiply/divide).",
      "content": "5x = 45 gives x = 9 by dividing both sides by 5. For n/4 = 7, multiply both sides by 4 to get n = 28.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EQ1.04",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "One-step equations (multiply/divide)",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 25,
      "id": "ALG.EQ1.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "One-step equations (multiply/divide): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer One-step equations (multiply/divide) into personal, civic/data, and career contexts.",
      "content": "Personal — split a $45 group bill equally among 5 friends. · Civic/Data — a town's 4 equal districts total 28,000 voters; find one district's voters. · Career — a warehouse packs 6 identical boxes with 72 items total.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EQ1.04",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "One-step equations (multiply/divide)",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 25,
      "id": "ALG.EQ1.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "One-step equations (multiply/divide): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond One-step equations (multiply/divide).",
      "content": "Accuracy — 8 multiply/divide equations with integer and simple fraction forms ≥7/8 · Explanation — why does dividing by the coefficient undo multiplication? · Transfer — solve t/9 = 6 and verify.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EQ1.05",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Two-step equations",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 26,
      "id": "ALG.EQ1.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Two-step equations: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Two-step equations.",
      "content": "Two-step equations undo operations in reverse order: remove addition or subtraction first, then undo multiplication or division.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EQ1.05",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Two-step equations",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 26,
      "id": "ALG.EQ1.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Two-step equations: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Two-step equations.",
      "content": "3x + 5 = 20. Subtract 5: 3x = 15. Divide by 3: x = 5. Check: 3(5) + 5 = 20.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EQ1.05",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Two-step equations",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 26,
      "id": "ALG.EQ1.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Two-step equations: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Two-step equations into personal, civic/data, and career contexts.",
      "content": "Personal — a gym charges $5 signup plus $3 per visit, total $20. · Civic/Data — a survey prize pool has a fixed $50 setup plus $10 per winner. · Career — a taxi fare has a $4 flagfall plus $2 per kilometre.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EQ1.05",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Two-step equations",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 26,
      "id": "ALG.EQ1.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Two-step equations: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Two-step equations.",
      "content": "Accuracy — 8 two-step equations with explicit checks ≥7/8 · Explanation — why is subtracting 5 before dividing by 3 more efficient in 3x + 5 = 20? · Transfer — solve 4n − 7 = 29 and check.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EQ1.06",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Checking solutions by substitution",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 27,
      "id": "ALG.EQ1.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Checking solutions by substitution: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Checking solutions by substitution.",
      "content": "Substitution is the quality check for equation solving: put the proposed value into the original equation and see whether both sides match.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EQ1.06",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Checking solutions by substitution",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 27,
      "id": "ALG.EQ1.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Checking solutions by substitution: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Checking solutions by substitution.",
      "content": "For 2x − 9 = 17, solving gives x = 13. Check: 2(13) − 9 = 26 − 9 = 17, so the solution is correct.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EQ1.06",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Checking solutions by substitution",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 27,
      "id": "ALG.EQ1.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Checking solutions by substitution: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Checking solutions by substitution into personal, civic/data, and career contexts.",
      "content": "Personal — check whether your answer fits a budgeting equation before deciding what to buy. · Civic/Data — verify a reported missing table value. · Career — test a spreadsheet result against the original pricing rule.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EQ1.06",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Checking solutions by substitution",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 27,
      "id": "ALG.EQ1.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Checking solutions by substitution: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Checking solutions by substitution.",
      "content": "Accuracy — 8 solve-and-check items, including one deliberately wrong worked solution ≥7/8 · Explanation — identify where a wrong solution fails the original equation · Transfer — solve and check 6 = 18 − 3k.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EQ1.07",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Equations from bar models",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 28,
      "id": "ALG.EQ1.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Equations from bar models: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Equations from bar models.",
      "content": "Bar models make unknown quantities visible; each equal part can become a variable, and the total becomes an equation.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EQ1.07",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Equations from bar models",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 28,
      "id": "ALG.EQ1.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Equations from bar models: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Equations from bar models.",
      "content": "A bar shows three equal parts plus 4 equals 25. Write 3x + 4 = 25, so 3x = 21 and x = 7.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EQ1.07",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Equations from bar models",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 28,
      "id": "ALG.EQ1.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Equations from bar models: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Equations from bar models into personal, civic/data, and career contexts.",
      "content": "Personal — split a savings goal into equal weekly chunks plus money already saved. · Civic/Data — model three equal neighborhood allocations plus a central reserve. · Career — represent equal material batches plus a setup amount.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EQ1.07",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Equations from bar models",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 28,
      "id": "ALG.EQ1.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Equations from bar models: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Equations from bar models.",
      "content": "Accuracy — 8 bar-model-to-equation items and solves ≥7/8 · Explanation — how did each bar part become x? · Transfer — draw or describe a bar model for 4x − 3 = 21.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EQ1.08",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Writing equations from word problems",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 29,
      "id": "ALG.EQ1.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Writing equations from word problems: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Writing equations from word problems.",
      "content": "A word problem becomes an equation when you define the unknown, translate the relationship, solve, and check the answer against the story.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EQ1.08",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Writing equations from word problems",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 29,
      "id": "ALG.EQ1.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Writing equations from word problems: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Writing equations from word problems.",
      "content": "\"A phone plan costs $12 plus $4 per GB. The bill is $40.\" Let g be GB: 12 + 4g = 40, so 4g = 28 and g = 7.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EQ1.08",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Writing equations from word problems",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 29,
      "id": "ALG.EQ1.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Writing equations from word problems: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Writing equations from word problems into personal, civic/data, and career contexts.",
      "content": "Personal — concert tickets cost a fee plus price per ticket. · Civic/Data — a fundraiser total equals a starting donation plus equal later donations. · Career — a plumber's invoice equals call-out fee plus hourly rate times hours.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EQ1.08",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Writing equations from word problems",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 29,
      "id": "ALG.EQ1.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Writing equations from word problems: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Writing equations from word problems.",
      "content": "Accuracy — 8 story-to-equation items requiring variable definition, equation, solution, and check ≥7/8 · Explanation — spot a setup that uses the total as the variable by mistake · Transfer — write and solve an equation for a delivery fee plus per-kilometre charge.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EQ1.09",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Equations with negative solutions",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 30,
      "id": "ALG.EQ1.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Equations with negative solutions: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Equations with negative solutions.",
      "content": "A negative solution is valid when it makes the equation true and the context allows values below zero, such as temperature, elevation, or debt.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EQ1.09",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Equations with negative solutions",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 30,
      "id": "ALG.EQ1.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Equations with negative solutions: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Equations with negative solutions.",
      "content": "x + 8 = 3 gives x = −5. Check: −5 + 8 = 3. In a temperature-change context, −5 degrees can make sense.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EQ1.09",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Equations with negative solutions",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 30,
      "id": "ALG.EQ1.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Equations with negative solutions: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Equations with negative solutions into personal, civic/data, and career contexts.",
      "content": "Personal — an account balance plus an $8 deposit becomes $3, so the starting balance was −$5. · Civic/Data — a weather report rises 6 degrees to 2°C; find the starting temperature. · Career — a diver ascends 12 m to reach −4 m elevation.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EQ1.09",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Equations with negative solutions",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 30,
      "id": "ALG.EQ1.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Equations with negative solutions: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Equations with negative solutions.",
      "content": "Accuracy — 8 equations with integer operations and context checks ≥7/8 · Explanation — when would a negative answer be impossible even if the algebra is correct? · Transfer — solve 2x + 5 = −9 and state a context where the answer fits.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EQ1.10",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Choosing efficient solution steps",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 31,
      "id": "ALG.EQ1.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Choosing efficient solution steps: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Choosing efficient solution steps.",
      "content": "Efficient solving means choosing legal inverse moves that reduce complexity while keeping the equation balanced and easy to check.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EQ1.10",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Choosing efficient solution steps",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 31,
      "id": "ALG.EQ1.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Choosing efficient solution steps: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Choosing efficient solution steps.",
      "content": "For (x/3) + 4 = 11, subtract 4 first to get x/3 = 7, then multiply by 3 to get x = 21. Multiplying everything by 3 first also works, but creates 12 on the left and can be less clear for beginners.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EQ1.10",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Choosing efficient solution steps",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 31,
      "id": "ALG.EQ1.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Choosing efficient solution steps: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Choosing efficient solution steps into personal, civic/data, and career contexts.",
      "content": "Personal — pick quick steps for a discount-plus-fee equation. · Civic/Data — solve a simple projection formula and explain the chosen order. · Career — choose steps for an invoice equation to reduce arithmetic mistakes.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EQ1.10",
      "clusterId": "ALG.EQ1",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Choosing efficient solution steps",
      "clusterTitle": "Linear Equations I (ALG.EQ1)",
      "band": "6–7",
      "hardLevel": 31,
      "id": "ALG.EQ1.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Choosing efficient solution steps: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Choosing efficient solution steps.",
      "content": "Accuracy — 8 equations where learners solve and justify the sequence of moves ≥7/8 · Explanation — compare two legal solution paths and identify which is cleaner · Transfer — solve (n − 5)/2 = 9 using an efficient path and check.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EQ2.01",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Variables on both sides",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 32,
      "id": "ALG.EQ2.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Variables on both sides: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Variables on both sides.",
      "content": "When a variable appears on both sides, collect the variable terms onto one side first, then solve the simpler equation that remains.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EQ2.01",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Variables on both sides",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 32,
      "id": "ALG.EQ2.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Variables on both sides: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Variables on both sides.",
      "content": "5x + 3 = 2x + 18. Subtract 2x from both sides: 3x + 3 = 18. Subtract 3: 3x = 15. Divide by 3: x = 5.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EQ2.01",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Variables on both sides",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 32,
      "id": "ALG.EQ2.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Variables on both sides: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Variables on both sides into personal, civic/data, and career contexts.",
      "content": "Personal — compare two phone plans with different start fees and per-GB charges. · Civic/Data — find when two neighborhood signup totals become equal. · Career — compare two suppliers with different fixed fees and unit costs.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EQ2.01",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Variables on both sides",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 32,
      "id": "ALG.EQ2.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Variables on both sides: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Variables on both sides.",
      "content": "Accuracy — 8 equations with variables on both sides and checks ≥7/8 · Explanation — why is subtracting 2x from both sides legal and useful? · Transfer — solve 7n − 4 = 3n + 20 and check.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EQ2.02",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Equations with brackets",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 33,
      "id": "ALG.EQ2.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Equations with brackets: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Equations with brackets.",
      "content": "Brackets hide repeated groups; expand carefully, then collect like terms and solve.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EQ2.02",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Equations with brackets",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 33,
      "id": "ALG.EQ2.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Equations with brackets: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Equations with brackets.",
      "content": "3(x + 4) = 2x + 19. Expand: 3x + 12 = 2x + 19. Subtract 2x: x + 12 = 19. So x = 7.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EQ2.02",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Equations with brackets",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 33,
      "id": "ALG.EQ2.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Equations with brackets: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Equations with brackets into personal, civic/data, and career contexts.",
      "content": "Personal — solve a family-ticket bundle with repeated package costs. · Civic/Data — model three identical event kits plus a shared fee. · Career — expand a quote with repeated labor-and-material groups.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EQ2.02",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Equations with brackets",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 33,
      "id": "ALG.EQ2.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Equations with brackets: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Equations with brackets.",
      "content": "Accuracy — 8 bracket equations including negative multipliers ≥7/8 · Explanation — spot the flaw in 2(x + 5) = 2x + 5 · Transfer — solve 4(a − 3) = 2a + 10.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EQ2.03",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Fraction and decimal coefficients",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 34,
      "id": "ALG.EQ2.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Fraction and decimal coefficients: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Fraction and decimal coefficients.",
      "content": "Fraction and decimal coefficients obey the same balance rules; clear fractions or decimals when it makes the equation easier.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EQ2.03",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Fraction and decimal coefficients",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 34,
      "id": "ALG.EQ2.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Fraction and decimal coefficients: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Fraction and decimal coefficients.",
      "content": "0.5x + 3 = 11 gives 0.5x = 8, so x = 16. For x/3 + 2 = 7, subtract 2 and multiply by 3 to get x = 15.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EQ2.03",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Fraction and decimal coefficients",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 34,
      "id": "ALG.EQ2.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Fraction and decimal coefficients: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Fraction and decimal coefficients into personal, civic/data, and career contexts.",
      "content": "Personal — solve for hours when half-hour charges and a booking fee create the bill. · Civic/Data — find a survey rate when each response counts as 0.25 of a target unit. · Career — solve a recipe-scaling equation with fractional cups.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EQ2.03",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Fraction and decimal coefficients",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 34,
      "id": "ALG.EQ2.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Fraction and decimal coefficients: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Fraction and decimal coefficients.",
      "content": "Accuracy — 8 equations with fraction/decimal coefficients and reasonableness checks ≥7/8 · Explanation — why can multiplying every term by the denominator remove fractions without changing the solution? · Transfer — solve x/4 + 1.5 = 6.5.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EQ2.04",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Multi-step equation strategy",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 35,
      "id": "ALG.EQ2.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Multi-step equation strategy: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Multi-step equation strategy.",
      "content": "Multi-step equations become manageable when you simplify both sides first, collect variables, isolate the term, and check in the original equation.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EQ2.04",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Multi-step equation strategy",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 35,
      "id": "ALG.EQ2.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Multi-step equation strategy: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Multi-step equation strategy.",
      "content": "2(x + 5) − 3 = x + 12. Expand and simplify: 2x + 7 = x + 12. Subtract x: x + 7 = 12. So x = 5.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EQ2.04",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Multi-step equation strategy",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 35,
      "id": "ALG.EQ2.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Multi-step equation strategy: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Multi-step equation strategy into personal, civic/data, and career contexts.",
      "content": "Personal — solve a subscription bill with a discount, fee, and usage charge. · Civic/Data — reconcile two equivalent-looking budget formulas. · Career — solve a repair quote that combines call-out, hours, and parts.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EQ2.04",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Multi-step equation strategy",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 35,
      "id": "ALG.EQ2.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Multi-step equation strategy: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Multi-step equation strategy.",
      "content": "Accuracy — 8 multi-step equations requiring written solution paths ≥7/8 · Explanation — name the first simplification move and why it helps · Transfer — solve 5 + 2(3k − 1) = 4k + 15.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EQ2.05",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Identities vs equations vs contradictions",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 36,
      "id": "ALG.EQ2.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Identities vs equations vs contradictions: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Identities vs equations vs contradictions.",
      "content": "Some equations have one solution, some are true for every value, and some are never true; simplifying reveals which type you have.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EQ2.05",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Identities vs equations vs contradictions",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 36,
      "id": "ALG.EQ2.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Identities vs equations vs contradictions: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Identities vs equations vs contradictions.",
      "content": "2(x + 3) = 2x + 6 simplifies to 2x + 6 = 2x + 6, so it is an identity: every x works. But 2x + 6 = 2x + 9 simplifies to 6 = 9, so no value works.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EQ2.05",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Identities vs equations vs contradictions",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 36,
      "id": "ALG.EQ2.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Identities vs equations vs contradictions: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Identities vs equations vs contradictions into personal, civic/data, and career contexts.",
      "content": "Personal — compare two reward formulas and discover they always match. · Civic/Data — test whether two published formulas are equivalent or contradictory. · Career — catch a spreadsheet rule that can never meet its stated condition.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EQ2.05",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Identities vs equations vs contradictions",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 36,
      "id": "ALG.EQ2.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Identities vs equations vs contradictions: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Identities vs equations vs contradictions.",
      "content": "Accuracy — 8 classifications as one solution, identity, or contradiction ≥7/8 · Explanation — what does 0 = 0 mean after variables cancel? · Transfer — classify 3(n + 2) = 3n + 5.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EQ2.06",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Literal equations — solving for a chosen letter",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 37,
      "id": "ALG.EQ2.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Literal equations — solving for a chosen letter: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Literal equations — solving for a chosen letter.",
      "content": "A literal equation contains several variables; solving for one chosen letter uses the same inverse operations while treating the other letters as quantities.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EQ2.06",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Literal equations — solving for a chosen letter",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 37,
      "id": "ALG.EQ2.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Literal equations — solving for a chosen letter: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Literal equations — solving for a chosen letter.",
      "content": "Solve P = 2l + 2w for l. Subtract 2w: P − 2w = 2l. Divide by 2: l = (P − 2w)/2.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EQ2.06",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Literal equations — solving for a chosen letter",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 37,
      "id": "ALG.EQ2.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Literal equations — solving for a chosen letter: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Literal equations — solving for a chosen letter into personal, civic/data, and career contexts.",
      "content": "Personal — rearrange a speed formula to find travel time. · Civic/Data — rearrange density = people/area to solve for area. · Career — rearrange a perimeter or invoice formula for a missing input.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EQ2.06",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Literal equations — solving for a chosen letter",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 37,
      "id": "ALG.EQ2.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Literal equations — solving for a chosen letter: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Literal equations — solving for a chosen letter.",
      "content": "Accuracy — 8 literal-equation rearrangements with stated target variable ≥7/8 · Explanation — why do the other letters remain in the answer? · Transfer — solve A = bh/2 for h.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EQ2.07",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Rearranging formulas (MEA/science formulas)",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 38,
      "id": "ALG.EQ2.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Rearranging formulas (MEA/science formulas): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Rearranging formulas (MEA/science formulas).",
      "content": "Rearranging formulas lets one relationship answer different questions; the context and units help check whether the rearranged form makes sense.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EQ2.07",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Rearranging formulas (MEA/science formulas)",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 38,
      "id": "ALG.EQ2.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Rearranging formulas (MEA/science formulas): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Rearranging formulas (MEA/science formulas).",
      "content": "Distance = speed × time, d = st. To solve for time, divide by speed: t = d/s. If d is kilometres and s is kilometres per hour, d/s gives hours.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EQ2.07",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Rearranging formulas (MEA/science formulas)",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 38,
      "id": "ALG.EQ2.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Rearranging formulas (MEA/science formulas): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Rearranging formulas (MEA/science formulas) into personal, civic/data, and career contexts.",
      "content": "Personal — find time from distance and cycling speed. · Civic/Data — rearrange population density to estimate land area. · Career — rearrange pressure, force, and area in a workshop calculation.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EQ2.07",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Rearranging formulas (MEA/science formulas)",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 38,
      "id": "ALG.EQ2.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Rearranging formulas (MEA/science formulas): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Rearranging formulas (MEA/science formulas).",
      "content": "Accuracy — 8 formula rearrangements plus unit checks ≥7/8 · Explanation — how do units confirm t = d/s? · Transfer — rearrange C = 2πr to solve for r and use it for a given circumference.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EQ2.08",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Equations from geometric contexts",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 39,
      "id": "ALG.EQ2.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Equations from geometric contexts: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Equations from geometric contexts.",
      "content": "Geometry equations translate measurements and constraints into algebra; diagrams help define variables and avoid mixing lengths, areas, and angles.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EQ2.08",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Equations from geometric contexts",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 39,
      "id": "ALG.EQ2.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Equations from geometric contexts: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Equations from geometric contexts.",
      "content": "A rectangle has perimeter 42, length x + 3, width x. Then 2(x + 3) + 2x = 42, so 4x + 6 = 42, x = 9, and the length is 12.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EQ2.08",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Equations from geometric contexts",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 39,
      "id": "ALG.EQ2.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Equations from geometric contexts: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Equations from geometric contexts into personal, civic/data, and career contexts.",
      "content": "Personal — find a garden's unknown side length from perimeter. · Civic/Data — solve for a missing park-path measurement. · Career — use angle relationships in a construction drawing to find a marked angle.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EQ2.08",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Equations from geometric contexts",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 39,
      "id": "ALG.EQ2.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Equations from geometric contexts: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Equations from geometric contexts.",
      "content": "Accuracy — 8 diagram-to-equation items across perimeter, area, and angles ≥7/8 · Explanation — why cannot length units and area units be combined in one equation? · Transfer — write and solve an equation from a triangle angle diagram.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EQ2.09",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Word problems — define, set up, solve, check",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 40,
      "id": "ALG.EQ2.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Word problems — define, set up, solve, check: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Word problems — define, set up, solve, check.",
      "content": "Strong equation modeling follows a repeatable loop: define the variable, build the equation from relationships, solve, check, and answer in context.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EQ2.09",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Word problems — define, set up, solve, check",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 40,
      "id": "ALG.EQ2.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Word problems — define, set up, solve, check: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Word problems — define, set up, solve, check.",
      "content": "A club sells adult tickets for $12 and student tickets for $7. If student tickets are fixed at 20 and the total is $380, define a = adult tickets: 12a + 7(20) = 380, so 12a = 240 and a = 20.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EQ2.09",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Word problems — define, set up, solve, check",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 40,
      "id": "ALG.EQ2.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Word problems — define, set up, solve, check: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Word problems — define, set up, solve, check into personal, civic/data, and career contexts.",
      "content": "Personal — find how many paid tasks are needed after a starting bonus. · Civic/Data — solve a community fundraising total with a fixed donation and equal small donations. · Career — calculate billable hours from a fixed fee plus hourly cost.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EQ2.09",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Word problems — define, set up, solve, check",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 40,
      "id": "ALG.EQ2.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Word problems — define, set up, solve, check: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Word problems — define, set up, solve, check.",
      "content": "Accuracy — 8 word problems requiring the full define/set up/solve/check loop ≥7/8 · Explanation — identify whether a proposed variable definition is too vague · Transfer — solve a new fee-plus-rate story and write the final sentence with units.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EQ2.10",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Error analysis in equation solving",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 41,
      "id": "ALG.EQ2.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Error analysis in equation solving: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Error analysis in equation solving.",
      "content": "Error analysis means finding the exact illegal or inefficient move, explaining why it fails, and repairing the solution from that point.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EQ2.10",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Error analysis in equation solving",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 41,
      "id": "ALG.EQ2.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Error analysis in equation solving: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Error analysis in equation solving.",
      "content": "A student solves 4x + 6 = 2x + 18 by subtracting 2x from only the right side and writes 4x + 6 = 18. The legal move is subtract 2x from both sides: 2x + 6 = 18, so x = 6.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EQ2.10",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Error analysis in equation solving",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 41,
      "id": "ALG.EQ2.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Error analysis in equation solving: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Error analysis in equation solving into personal, civic/data, and career contexts.",
      "content": "Personal — debug a friend's bill-splitting equation before they overpay. · Civic/Data — catch a mistaken rearrangement in a shared chart formula. · Career — review a trainee's invoice equation and correct the first invalid step.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EQ2.10",
      "clusterId": "ALG.EQ2",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Error analysis in equation solving",
      "clusterTitle": "Linear Equations II (ALG.EQ2)",
      "band": "7–8",
      "hardLevel": 41,
      "id": "ALG.EQ2.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Error analysis in equation solving: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Error analysis in equation solving.",
      "content": "Accuracy — 8 worked-solution diagnostics identifying, explaining, and correcting errors ≥7/8 · Explanation — why is naming the first wrong step more useful than just giving the right answer? · Transfer — repair a bracket-expansion error in 3(x − 2) = 15.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EXG.01",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Repeated multiplication as a model",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 23,
      "id": "ALG.EXG.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Repeated multiplication as a model: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Repeated multiplication as a model.",
      "content": "Exponential models grow or shrink by repeated multiplication, not repeated addition; each step scales the current amount.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EXG.01",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Repeated multiplication as a model",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 23,
      "id": "ALG.EXG.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Repeated multiplication as a model: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Repeated multiplication as a model.",
      "content": "Starting at 100 and multiplying by 2 each step gives 100, 200, 400, 800. The added amount changes because the base amount changes.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EXG.01",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Repeated multiplication as a model",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 23,
      "id": "ALG.EXG.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Repeated multiplication as a model: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Repeated multiplication as a model into personal, civic/data, and career contexts.",
      "content": "Personal — track a follower count that doubles in a challenge. · Civic/Data — model a spreading message with each person sharing to two more. · Career — describe bacteria growth under ideal lab conditions.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EXG.01",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Repeated multiplication as a model",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 23,
      "id": "ALG.EXG.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Repeated multiplication as a model: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Repeated multiplication as a model.",
      "content": "Accuracy — 8 items distinguishing repeated multiplication from addition ≥7/8 · Explanation — why does the increase get larger each step? · Transfer — generate four terms from starting 50 and multiplying by 1.2.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EXG.02",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Exponential growth tables and graphs",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 45,
      "id": "ALG.EXG.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Exponential growth tables and graphs: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Exponential growth tables and graphs.",
      "content": "Exponential growth tables multiply by a constant factor over equal input steps, creating a graph that curves upward rather than forming a straight line.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EXG.02",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Exponential growth tables and graphs",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 45,
      "id": "ALG.EXG.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Exponential growth tables and graphs: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Exponential growth tables and graphs.",
      "content": "3, 6, 12, 24 has growth factor 2. Plotting the points shows slow early growth and steeper later growth.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EXG.02",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Exponential growth tables and graphs",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 45,
      "id": "ALG.EXG.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Exponential growth tables and graphs: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Exponential growth tables and graphs into personal, civic/data, and career contexts.",
      "content": "Personal — graph a savings bonus that increases by 10% each week. · Civic/Data — read a table of cases growing by a fixed factor. · Career — chart subscriptions under a repeated monthly growth factor.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EXG.02",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Exponential growth tables and graphs",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 45,
      "id": "ALG.EXG.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Exponential growth tables and graphs: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Exponential growth tables and graphs.",
      "content": "Accuracy — 8 table/graph items identifying growth factor and shape ≥7/8 · Explanation — how can the same factor make bigger absolute jumps later? · Transfer — complete and sketch a table with factor 1.5.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EXG.03",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Growth factor vs growth rate (×1.05 vs +5%)",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 46,
      "id": "ALG.EXG.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Growth factor vs growth rate (×1.05 vs +5%): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Growth factor vs growth rate (×1.05 vs +5%).",
      "content": "A percent growth rate becomes a multiplier: +5% means multiply by 1.05, while −5% means multiply by 0.95.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EXG.03",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Growth factor vs growth rate (×1.05 vs +5%)",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 46,
      "id": "ALG.EXG.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Growth factor vs growth rate (×1.05 vs +5%): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Growth factor vs growth rate (×1.05 vs +5%).",
      "content": "$200 growing 5% becomes 200 × 1.05 = $210. A 12% decrease uses ×0.88.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EXG.03",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Growth factor vs growth rate (×1.05 vs +5%)",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 46,
      "id": "ALG.EXG.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Growth factor vs growth rate (×1.05 vs +5%): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Growth factor vs growth rate (×1.05 vs +5%) into personal, civic/data, and career contexts.",
      "content": "Personal — calculate a savings balance after one 4% rise. · Civic/Data — interpret a population increase written as a multiplier. · Career — convert a sales-growth target into a spreadsheet multiplier.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EXG.03",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Growth factor vs growth rate (×1.05 vs +5%)",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 46,
      "id": "ALG.EXG.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Growth factor vs growth rate (×1.05 vs +5%): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Growth factor vs growth rate (×1.05 vs +5%).",
      "content": "Accuracy — 8 percent-to-factor and factor-to-percent items ≥7/8 · Explanation — why is +5% not written as ×0.05 for the new total? · Transfer — convert ×1.18 and ×0.72 into percent change language.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EXG.04",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Exponential decay",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 47,
      "id": "ALG.EXG.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Exponential decay: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Exponential decay.",
      "content": "Exponential decay repeatedly multiplies by a factor between 0 and 1, so the amount decreases by a fixed percent of its current value.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EXG.04",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Exponential decay",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 47,
      "id": "ALG.EXG.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Exponential decay: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Exponential decay.",
      "content": "A $1,000 bike loses 20% value each year: multiply by 0.8 each year. After two years: 1000 × 0.8² = $640.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EXG.04",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Exponential decay",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 47,
      "id": "ALG.EXG.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Exponential decay: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Exponential decay into personal, civic/data, and career contexts.",
      "content": "Personal — model phone battery loss by percent per hour. · Civic/Data — estimate remaining pollutant under repeated percentage removal. · Career — calculate depreciation of equipment over several years.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EXG.04",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Exponential decay",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 47,
      "id": "ALG.EXG.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Exponential decay: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Exponential decay.",
      "content": "Accuracy — 8 decay items using factors, tables, and context interpretation ≥7/8 · Explanation — why does losing 20% twice not mean losing exactly 40% of the original? · Transfer — find the amount left after three 10% decreases from 500.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EXG.05",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Doubling time and half-life (informal)",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 48,
      "id": "ALG.EXG.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Doubling time and half-life (informal): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Doubling time and half-life (informal).",
      "content": "Doubling time and half-life describe how many equal time intervals it takes for an exponential quantity to double or halve.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EXG.05",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Doubling time and half-life (informal)",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 48,
      "id": "ALG.EXG.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Doubling time and half-life (informal): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Doubling time and half-life (informal).",
      "content": "If a culture doubles every 3 hours, then 200 becomes 400 after 3 hours, 800 after 6 hours, and 1,600 after 9 hours.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EXG.05",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Doubling time and half-life (informal)",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 48,
      "id": "ALG.EXG.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Doubling time and half-life (informal): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Doubling time and half-life (informal) into personal, civic/data, and career contexts.",
      "content": "Personal — reason about a viral post doubling views every day. · Civic/Data — interpret half-life language in a science news article. · Career — estimate medication decay using a given half-life.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EXG.05",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Doubling time and half-life (informal)",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 48,
      "id": "ALG.EXG.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Doubling time and half-life (informal): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Doubling time and half-life (informal).",
      "content": "Accuracy — 8 doubling/halving table items with informal interpretation ≥7/8 · Explanation — why does half-life leave half of the current amount, not a fixed subtraction? · Transfer — start with 640 and halve every 2 days for 8 days.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EXG.06",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Compound interest as exponential growth",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 49,
      "id": "ALG.EXG.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Compound interest as exponential growth: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Compound interest as exponential growth.",
      "content": "Compound interest multiplies the balance by a growth factor each period; interest earns more interest over time.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EXG.06",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Compound interest as exponential growth",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 49,
      "id": "ALG.EXG.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Compound interest as exponential growth: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Compound interest as exponential growth.",
      "content": "$500 at 6% annual compound interest for 3 years is 500 × 1.06³ ≈ $595.51.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EXG.06",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Compound interest as exponential growth",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 49,
      "id": "ALG.EXG.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Compound interest as exponential growth: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Compound interest as exponential growth into personal, civic/data, and career contexts.",
      "content": "Personal — compare money saved under simple vs compound interest. · Civic/Data — understand a loan balance growing with monthly interest. · Career — project an investment account using annual compounding.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EXG.06",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Compound interest as exponential growth",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 49,
      "id": "ALG.EXG.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Compound interest as exponential growth: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Compound interest as exponential growth.",
      "content": "Accuracy — 8 compound-interest calculations and simple-vs-compound comparisons ≥7/8 · Explanation — why does compound interest curve upward? · Transfer — calculate $800 at 4% for 2 years, compounded annually.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EXG.07",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Linear vs exponential — which model fits?",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 62,
      "id": "ALG.EXG.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Linear vs exponential — which model fits?: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Linear vs exponential — which model fits?.",
      "content": "Linear models add equal amounts; exponential models multiply by equal factors, so tables reveal the model type by differences or ratios.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EXG.07",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Linear vs exponential — which model fits?",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 62,
      "id": "ALG.EXG.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Linear vs exponential — which model fits?: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Linear vs exponential — which model fits?.",
      "content": "10, 15, 20, 25 is linear because differences are +5. 10, 15, 22.5, 33.75 is exponential because each term multiplies by 1.5.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EXG.07",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Linear vs exponential — which model fits?",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 62,
      "id": "ALG.EXG.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Linear vs exponential — which model fits?: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Linear vs exponential — which model fits? into personal, civic/data, and career contexts.",
      "content": "Personal — decide whether savings or online views follow a linear or exponential pattern. · Civic/Data — compare steady attendance growth with repeated percentage growth. · Career — choose a model for revenue that grows by a fixed percent each month.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EXG.07",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Linear vs exponential — which model fits?",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 62,
      "id": "ALG.EXG.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Linear vs exponential — which model fits?: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Linear vs exponential — which model fits?.",
      "content": "Accuracy — 8 model-classification items from tables, graphs, and contexts ≥7/8 · Explanation — when do ratios matter more than differences? · Transfer — classify two supplied tables and justify each.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EXG.08",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Population, virality, and spread models",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 63,
      "id": "ALG.EXG.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Population, virality, and spread models: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Population, virality, and spread models.",
      "content": "Exponential spread models can describe early growth, but real systems have limits, changing rates, and human behavior that eventually break the simple model.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EXG.08",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Population, virality, and spread models",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 63,
      "id": "ALG.EXG.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Population, virality, and spread models: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Population, virality, and spread models.",
      "content": "If each person shares a message to 3 new people per day, 1 becomes 3, 9, 27, 81 in an ideal model; in reality, overlap and saturation slow the spread.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EXG.08",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Population, virality, and spread models",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 63,
      "id": "ALG.EXG.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Population, virality, and spread models: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Population, virality, and spread models into personal, civic/data, and career contexts.",
      "content": "Personal — model a social post's early sharing pattern. · Civic/Data — critique a disease-spread chart that assumes constant growth forever. · Career — forecast app referrals while noting market saturation.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EXG.08",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Population, virality, and spread models",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 63,
      "id": "ALG.EXG.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Population, virality, and spread models: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Population, virality, and spread models.",
      "content": "Accuracy — 8 spread-model calculations plus limitation statements ≥7/8 · Explanation — why does overlap reduce real spread? · Transfer — build a three-step spread table and state one reason it might fail.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EXG.09",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Exponential decline in value (depreciation)",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 64,
      "id": "ALG.EXG.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Exponential decline in value (depreciation): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Exponential decline in value (depreciation).",
      "content": "Depreciation by a fixed percent is exponential decay: each period loses a percent of the current value, not the original value.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EXG.09",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Exponential decline in value (depreciation)",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 64,
      "id": "ALG.EXG.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Exponential decline in value (depreciation): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Exponential decline in value (depreciation).",
      "content": "A $20,000 car depreciates 15% per year: value after 2 years is 20000 × 0.85² = $14,450.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EXG.09",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Exponential decline in value (depreciation)",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 64,
      "id": "ALG.EXG.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Exponential decline in value (depreciation): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Exponential decline in value (depreciation) into personal, civic/data, and career contexts.",
      "content": "Personal — estimate resale value of a laptop after yearly depreciation. · Civic/Data — model declining usage of older equipment. · Career — calculate book value for a business asset.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EXG.09",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Exponential decline in value (depreciation)",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 64,
      "id": "ALG.EXG.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Exponential decline in value (depreciation): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Exponential decline in value (depreciation).",
      "content": "Accuracy — 8 depreciation calculations, tables, and interpretation items ≥7/8 · Explanation — why is year-two dollar loss smaller than year-one loss? · Transfer — find the value of $1,200 equipment after three 25% declines.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EXG.10",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Limits of models — why nothing grows forever",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 65,
      "id": "ALG.EXG.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Limits of models — why nothing grows forever: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Limits of models — why nothing grows forever.",
      "content": "Exponential models are powerful but local; constraints such as space, resources, market size, and rules eventually change the pattern.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EXG.10",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Limits of models — why nothing grows forever",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 65,
      "id": "ALG.EXG.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Limits of models — why nothing grows forever: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Limits of models — why nothing grows forever.",
      "content": "A subscriber base growing 20% monthly cannot keep that rate forever because the number of possible subscribers is finite.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EXG.10",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Limits of models — why nothing grows forever",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 65,
      "id": "ALG.EXG.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Limits of models — why nothing grows forever: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Limits of models — why nothing grows forever into personal, civic/data, and career contexts.",
      "content": "Personal — challenge a \"views will double forever\" claim. · Civic/Data — critique long-range exponential population forecasts. · Career — decide when a startup growth model needs saturation assumptions.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EXG.10",
      "clusterId": "ALG.EXG",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Limits of models — why nothing grows forever",
      "clusterTitle": "Exponential & Growth Models (ALG.EXG)",
      "band": "8+",
      "hardLevel": 65,
      "id": "ALG.EXG.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Limits of models — why nothing grows forever: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Limits of models — why nothing grows forever.",
      "content": "Accuracy — 8 items identifying model usefulness, breakdown points, and realistic constraints ≥7/8 · Explanation — what evidence suggests an exponential model has stopped fitting? · Transfer — name two limits for a model where app users double every month.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EXP.01",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Variables — letters that stand for numbers",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 13,
      "id": "ALG.EXP.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Variables — letters that stand for numbers: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Variables — letters that stand for numbers.",
      "content": "A variable is a symbol for a number that can change or be unknown; the same variable must mean the same value within one expression or problem.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EXP.01",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Variables — letters that stand for numbers",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 13,
      "id": "ALG.EXP.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Variables — letters that stand for numbers: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Variables — letters that stand for numbers.",
      "content": "If p is the number of practice minutes, p + 10 means ten more than that number. When p = 25, p + 10 = 35. The p cannot mean 25 in one place and 30 in another.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EXP.01",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Variables — letters that stand for numbers",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 13,
      "id": "ALG.EXP.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Variables — letters that stand for numbers: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Variables — letters that stand for numbers into personal, civic/data, and career contexts.",
      "content": "Personal — let s be songs in a playlist and write s + 3 after adding three songs. · Civic/Data — let h be households surveyed and describe h − 12 after removing incomplete surveys. · Career — let m be metres of cable and write 2m for twice the measured length.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EXP.01",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Variables — letters that stand for numbers",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 13,
      "id": "ALG.EXP.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Variables — letters that stand for numbers: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Variables — letters that stand for numbers.",
      "content": "Accuracy — 8 items identifying variable meaning and evaluating one-step expressions ≥7/8 · Explanation — why does the same letter have to keep the same value in one calculation? · Transfer — define a variable for a new story and write a matching expression.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EXP.02",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Writing expressions from words",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 14,
      "id": "ALG.EXP.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Writing expressions from words: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Writing expressions from words.",
      "content": "Word phrases name operations; translating them into expressions preserves the order and relationships without needing an equals sign.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EXP.02",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Writing expressions from words",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 14,
      "id": "ALG.EXP.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Writing expressions from words: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Writing expressions from words.",
      "content": "\"Seven less than three times a number\" is 3n − 7, not 7 − 3n. The phrase \"less than\" reverses the subtraction order.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EXP.02",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Writing expressions from words",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 14,
      "id": "ALG.EXP.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Writing expressions from words: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Writing expressions from words into personal, civic/data, and career contexts.",
      "content": "Personal — write the cost of g game tickets at $12 each plus a $5 booking fee. · Civic/Data — express total survey responses after adding 40 late responses to r originals. · Career — write the pay for h hours at $28 per hour minus a $15 uniform deduction.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EXP.02",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Writing expressions from words",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 14,
      "id": "ALG.EXP.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Writing expressions from words: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Writing expressions from words.",
      "content": "Accuracy — 8 phrase-to-expression items with addition, subtraction, multiplication, division, and grouping ≥7/8 · Explanation — spot the order error in \"5 less than x\" written as 5 − x · Transfer — write an expression for a delivery fee plus cost per kilometre.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EXP.03",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Evaluating expressions (substitution)",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 15,
      "id": "ALG.EXP.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Evaluating expressions (substitution): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Evaluating expressions (substitution).",
      "content": "To evaluate an expression, replace each variable with its value and then follow the order of operations.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EXP.03",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Evaluating expressions (substitution)",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 15,
      "id": "ALG.EXP.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Evaluating expressions (substitution): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Evaluating expressions (substitution).",
      "content": "Evaluate 4a − 3 when a = 6: 4(6) − 3 = 24 − 3 = 21. For 2x + y when x = 5 and y = 8, compute 10 + 8 = 18.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EXP.03",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Evaluating expressions (substitution)",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 15,
      "id": "ALG.EXP.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Evaluating expressions (substitution): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Evaluating expressions (substitution) into personal, civic/data, and career contexts.",
      "content": "Personal — calculate total ride-share cost from base fee plus per-kilometre expression. · Civic/Data — evaluate a library fine formula for a late return. · Career — substitute hours and rate into a payroll expression.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EXP.03",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Evaluating expressions (substitution)",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 15,
      "id": "ALG.EXP.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Evaluating expressions (substitution): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Evaluating expressions (substitution).",
      "content": "Accuracy — 8 substitution items including two-variable expressions and brackets ≥7/8 · Explanation — why must multiplication happen before subtraction in 4a − 3? · Transfer — evaluate 3(p + 2) for p = 7 and explain the bracket step.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EXP.04",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Like terms and simplifying",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 16,
      "id": "ALG.EXP.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Like terms and simplifying: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Like terms and simplifying.",
      "content": "Like terms have the same variable part, so their coefficients can combine; unlike terms must stay separate.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EXP.04",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Like terms and simplifying",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 16,
      "id": "ALG.EXP.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Like terms and simplifying: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Like terms and simplifying.",
      "content": "5x + 3x − 2 = 8x − 2. But 5x + 3y cannot become 8xy because x-terms and y-terms count different unknown quantities.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EXP.04",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Like terms and simplifying",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 16,
      "id": "ALG.EXP.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Like terms and simplifying: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Like terms and simplifying into personal, civic/data, and career contexts.",
      "content": "Personal — combine points from two bonus rules that both depend on games won. · Civic/Data — simplify a survey expression with youth responses and adult responses kept separate. · Career — combine material costs written as 4m + 7m + 20.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EXP.04",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Like terms and simplifying",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 16,
      "id": "ALG.EXP.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Like terms and simplifying: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Like terms and simplifying.",
      "content": "Accuracy — 8 simplification items with positive and negative coefficients ≥7/8 · Explanation — why can 2a + 3b not simplify to 5ab? · Transfer — simplify 6n − 4 + 2n + 9 and state which terms combined.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EXP.05",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "The distributive property with variables",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 17,
      "id": "ALG.EXP.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "The distributive property with variables: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of The distributive property with variables.",
      "content": "Multiplying a grouped sum means multiplying every term inside the group; this keeps an expression equivalent while changing its form.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EXP.05",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "The distributive property with variables",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 17,
      "id": "ALG.EXP.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "The distributive property with variables: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for The distributive property with variables.",
      "content": "3(x + 4) = 3x + 12 because three copies of x + 4 contain 3x and 12. Similarly, −2(a − 5) = −2a + 10.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EXP.05",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "The distributive property with variables",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 17,
      "id": "ALG.EXP.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "The distributive property with variables: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer The distributive property with variables into personal, civic/data, and career contexts.",
      "content": "Personal — calculate three identical snack packs each with one drink and four bars. · Civic/Data — expand 12(h + a) for survey responses from households and apartments in 12 districts. · Career — expand a contractor's 5(labor + materials) estimate.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EXP.05",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "The distributive property with variables",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 17,
      "id": "ALG.EXP.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "The distributive property with variables: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond The distributive property with variables.",
      "content": "Accuracy — 8 expand items including negative multipliers ≥7/8 · Explanation — spot the flaw in 4(x + 7) = 4x + 7 · Transfer — expand −3(2p − 5) and verify by substituting p = 4.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EXP.06",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Expanding single brackets",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 18,
      "id": "ALG.EXP.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Expanding single brackets: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Expanding single brackets.",
      "content": "Expanding single brackets turns products into sums so terms can be combined or compared more easily.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EXP.06",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Expanding single brackets",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 18,
      "id": "ALG.EXP.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Expanding single brackets: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Expanding single brackets.",
      "content": "2(3x + 5) + x = 6x + 10 + x = 7x + 10. Expand first, then collect like terms.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EXP.06",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Expanding single brackets",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 18,
      "id": "ALG.EXP.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Expanding single brackets: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Expanding single brackets into personal, civic/data, and career contexts.",
      "content": "Personal — expand a monthly plan with two users each paying the same base and usage cost. · Civic/Data — expand a cost model for two identical community events plus an extra permit fee. · Career — expand a packaging formula with boxes containing repeated item groups.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EXP.06",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Expanding single brackets",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 18,
      "id": "ALG.EXP.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Expanding single brackets: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Expanding single brackets.",
      "content": "Accuracy — 8 expand-and-simplify items ≥7/8 · Explanation — why is expanding before collecting necessary in 2(x + 3) + 4x? · Transfer — simplify 5(2n − 1) − 3n.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EXP.07",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Factoring out a common factor",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 19,
      "id": "ALG.EXP.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Factoring out a common factor: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Factoring out a common factor.",
      "content": "Factoring reverses distribution: if terms share a common factor, pull it outside brackets to reveal repeated structure.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EXP.07",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Factoring out a common factor",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 19,
      "id": "ALG.EXP.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Factoring out a common factor: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Factoring out a common factor.",
      "content": "6x + 12 = 6(x + 2). Check by expanding: 6(x + 2) = 6x + 12. For 8a − 20, the greatest common factor is 4, so 4(2a − 5).",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EXP.07",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Factoring out a common factor",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 19,
      "id": "ALG.EXP.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Factoring out a common factor: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Factoring out a common factor into personal, civic/data, and career contexts.",
      "content": "Personal — factor a points expression to show repeated weekly gains. · Civic/Data — factor 5y + 5a to show five responses from each group type. · Career — factor a manufacturing cost expression to show a shared batch size.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EXP.07",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Factoring out a common factor",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 19,
      "id": "ALG.EXP.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Factoring out a common factor: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Factoring out a common factor.",
      "content": "Accuracy — 8 factoring items with numeric and variable factors ≥7/8 · Explanation — how does expanding check a factorization? · Transfer — factor 9m + 15 and identify the common factor.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EXP.08",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Expressions with exponents",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 20,
      "id": "ALG.EXP.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Expressions with exponents: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Expressions with exponents.",
      "content": "Exponents in algebra follow the same order rules as numbers: powers are evaluated before multiplication, addition, and subtraction.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EXP.08",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Expressions with exponents",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 20,
      "id": "ALG.EXP.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Expressions with exponents: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Expressions with exponents.",
      "content": "If x = 3, then 2x² = 2(3²) = 18, not (2×3)² = 36. The exponent belongs to x unless brackets say otherwise.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EXP.08",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Expressions with exponents",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 20,
      "id": "ALG.EXP.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Expressions with exponents: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Expressions with exponents into personal, civic/data, and career contexts.",
      "content": "Personal — compute square garden area s² for different side lengths. · Civic/Data — evaluate a population model with n² comparisons. · Career — use r² in a circular area estimate for a design job.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EXP.08",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Expressions with exponents",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 20,
      "id": "ALG.EXP.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Expressions with exponents: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Expressions with exponents.",
      "content": "Accuracy — 8 substitution and simplification items involving exponents ≥7/8 · Explanation — explain the difference between 2x² and (2x)² · Transfer — evaluate 3a² − 2a when a = 4.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EXP.09",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Equivalent expressions — testing and proving",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 21,
      "id": "ALG.EXP.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Equivalent expressions — testing and proving: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Equivalent expressions — testing and proving.",
      "content": "Equivalent expressions give the same value for every allowed input; examples can support a claim, but algebraic structure proves it.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EXP.09",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Equivalent expressions — testing and proving",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 21,
      "id": "ALG.EXP.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Equivalent expressions — testing and proving: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Equivalent expressions — testing and proving.",
      "content": "3(x + 2) and 3x + 6 are equivalent because distribution changes the form without changing the value. Testing x = 4 gives 18 for both, but the distributive property explains why it always works.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EXP.09",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Equivalent expressions — testing and proving",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 21,
      "id": "ALG.EXP.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Equivalent expressions — testing and proving: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Equivalent expressions — testing and proving into personal, civic/data, and career contexts.",
      "content": "Personal — compare two phone-plan expressions that look different but charge the same. · Civic/Data — check whether two budget formulas are genuinely equivalent or only match one year. · Career — verify two spreadsheet formulas before replacing one with the other.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EXP.09",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Equivalent expressions — testing and proving",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 21,
      "id": "ALG.EXP.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Equivalent expressions — testing and proving: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Equivalent expressions — testing and proving.",
      "content": "Accuracy — 8 items classifying equivalent/non-equivalent expressions using expansion, simplification, and counterexamples ≥7/8 · Explanation — why does one matching input not prove equivalence? · Transfer — decide whether 2(x + 5) + x and 3x + 10 are equivalent.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.EXP.10",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Expression structure — seeing the parts",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 22,
      "id": "ALG.EXP.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Expression structure — seeing the parts: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Expression structure — seeing the parts.",
      "content": "Reading expression structure means seeing terms, factors, operations, and groups so you can choose the next useful move.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.EXP.10",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Expression structure — seeing the parts",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 22,
      "id": "ALG.EXP.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Expression structure — seeing the parts: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Expression structure — seeing the parts.",
      "content": "In 4(x + 3) − 7, the whole expression is a difference: four groups of x + 3, then subtract 7. In 4x + 12 − 7, the same expression is expanded and ready to combine constants.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.EXP.10",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Expression structure — seeing the parts",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 22,
      "id": "ALG.EXP.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Expression structure — seeing the parts: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Expression structure — seeing the parts into personal, civic/data, and career contexts.",
      "content": "Personal — identify the fixed fee and variable fee in a subscription expression. · Civic/Data — interpret a report formula as starting amount plus monthly growth. · Career — read a quote formula and point to labor, materials, and discount parts.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.EXP.10",
      "clusterId": "ALG.EXP",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Expression structure — seeing the parts",
      "clusterTitle": "Expressions & Variables (ALG.EXP)",
      "band": "6–7",
      "hardLevel": 22,
      "id": "ALG.EXP.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Expression structure — seeing the parts: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Expression structure — seeing the parts.",
      "content": "Accuracy — 8 items naming terms, factors, coefficients, constants, and useful next moves ≥7/8 · Explanation — how does structure help decide whether to expand, factor, or substitute? · Transfer — annotate 3(2h + 5) − 4 and choose a simplification path.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.FUN.01",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Relations and the function idea (one output per input)",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 42,
      "id": "ALG.FUN.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Relations and the function idea (one output per input): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Relations and the function idea (one output per input).",
      "content": "A function is a relationship where each input has exactly one output; the same input cannot produce two different outputs in the same function.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.FUN.01",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Relations and the function idea (one output per input)",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 42,
      "id": "ALG.FUN.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Relations and the function idea (one output per input): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Relations and the function idea (one output per input).",
      "content": "A table with inputs 1, 2, 3 and outputs 5, 7, 9 can be a function. A table where input 2 maps to both 7 and 10 is not a function.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.FUN.01",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Relations and the function idea (one output per input)",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 42,
      "id": "ALG.FUN.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Relations and the function idea (one output per input): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Relations and the function idea (one output per input) into personal, civic/data, and career contexts.",
      "content": "Personal — each song length gives one play time in minutes. · Civic/Data — each household ID maps to one recorded suburb. · Career — each item barcode maps to one product price in the shop system.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.FUN.01",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Relations and the function idea (one output per input)",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 42,
      "id": "ALG.FUN.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Relations and the function idea (one output per input): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Relations and the function idea (one output per input).",
      "content": "Accuracy — 8 items classifying mappings, tables, and ordered pairs as functions or not ≥7/8 · Explanation — why does one input with two outputs break the function rule? · Transfer — create a small function table and a non-function table.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.FUN.02",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Function notation f(x)",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 43,
      "id": "ALG.FUN.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Function notation f(x): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Function notation f(x).",
      "content": "Function notation names the rule and the input: f(3) means the output of function f when the input is 3, not f times 3.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.FUN.02",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Function notation f(x)",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 43,
      "id": "ALG.FUN.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Function notation f(x): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Function notation f(x).",
      "content": "If f(x) = 2x + 5, then f(4) = 2(4) + 5 = 13. If g(x) = x² − 1, then g(3) = 8.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.FUN.02",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Function notation f(x)",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 43,
      "id": "ALG.FUN.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Function notation f(x): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Function notation f(x) into personal, civic/data, and career contexts.",
      "content": "Personal — evaluate a points function for level 6. · Civic/Data — use f(d) for library visitors d days after launch. · Career — calculate cost c(h) for h hours of work.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.FUN.02",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Function notation f(x)",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 43,
      "id": "ALG.FUN.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Function notation f(x): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Function notation f(x).",
      "content": "Accuracy — 8 notation/evaluation items with one- and two-step rules ≥7/8 · Explanation — explain why f(4) is an output, not multiplication · Transfer — define a simple function and evaluate it at two inputs.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.FUN.03",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Tables, graphs, rules — three views of one function",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 44,
      "id": "ALG.FUN.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Tables, graphs, rules — three views of one function: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Tables, graphs, rules — three views of one function.",
      "content": "A function can be represented by a rule, a table, or a graph; each view shows the same input-output relationship in a different form.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.FUN.03",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Tables, graphs, rules — three views of one function",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 44,
      "id": "ALG.FUN.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Tables, graphs, rules — three views of one function: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Tables, graphs, rules — three views of one function.",
      "content": "Rule y = 3x + 1 gives table points (0, 1), (1, 4), (2, 7). Plotting those points shows the graph of the same function.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.FUN.03",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Tables, graphs, rules — three views of one function",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 44,
      "id": "ALG.FUN.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Tables, graphs, rules — three views of one function: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Tables, graphs, rules — three views of one function into personal, civic/data, and career contexts.",
      "content": "Personal — convert a phone-plan rule into a table and graph. · Civic/Data — read a chart of attendance and write matching table values. · Career — turn a delivery-cost rule into plotted quote points.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.FUN.03",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Tables, graphs, rules — three views of one function",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 44,
      "id": "ALG.FUN.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Tables, graphs, rules — three views of one function: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Tables, graphs, rules — three views of one function.",
      "content": "Accuracy — 8 conversion items between rules, tables, graphs, and ordered pairs ≥7/8 · Explanation — how can you tell a plotted point belongs to the rule? · Transfer — complete a table and graph for y = 2x − 3.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.FUN.04",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Domain and range (informal)",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 45,
      "id": "ALG.FUN.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Domain and range (informal): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Domain and range (informal).",
      "content": "The domain is the set of allowed inputs; the range is the set of possible outputs, and context often restricts both.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.FUN.04",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Domain and range (informal)",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 45,
      "id": "ALG.FUN.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Domain and range (informal): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Domain and range (informal).",
      "content": "For a ticket cost function c(t) = 12t, the input t is whole-number tickets: 0, 1, 2, and so on. A value like 2.5 tickets is not meaningful.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.FUN.04",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Domain and range (informal)",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 45,
      "id": "ALG.FUN.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Domain and range (informal): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Domain and range (informal) into personal, civic/data, and career contexts.",
      "content": "Personal — decide allowed inputs for number of rides bought. · Civic/Data — limit a survey-age function to people actually surveyed. · Career — restrict machine-run time to a safe operating interval.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.FUN.04",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Domain and range (informal)",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 45,
      "id": "ALG.FUN.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Domain and range (informal): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Domain and range (informal).",
      "content": "Accuracy — 8 items identifying reasonable domain and range from tables, graphs, and contexts ≥7/8 · Explanation — why can context reject a mathematically possible input? · Transfer — state a sensible domain for a taxi fare function.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.FUN.05",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Linear vs nonlinear from tables",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 46,
      "id": "ALG.FUN.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Linear vs nonlinear from tables: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Linear vs nonlinear from tables.",
      "content": "A linear function changes by a constant amount for equal input steps; nonlinear functions do not keep the same difference.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.FUN.05",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Linear vs nonlinear from tables",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 46,
      "id": "ALG.FUN.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Linear vs nonlinear from tables: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Linear vs nonlinear from tables.",
      "content": "Inputs 0, 1, 2, 3 with outputs 4, 7, 10, 13 are linear because outputs rise by 3 each step. Outputs 1, 4, 9, 16 are not linear because differences are 3, 5, 7.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.FUN.05",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Linear vs nonlinear from tables",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 46,
      "id": "ALG.FUN.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Linear vs nonlinear from tables: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Linear vs nonlinear from tables into personal, civic/data, and career contexts.",
      "content": "Personal — compare steady weekly savings with accelerating video views. · Civic/Data — classify a table of bus fares versus a table of spreading rumor counts. · Career — decide whether a cost table has a constant per-unit rate.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.FUN.05",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Linear vs nonlinear from tables",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 46,
      "id": "ALG.FUN.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Linear vs nonlinear from tables: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Linear vs nonlinear from tables.",
      "content": "Accuracy — 8 table classifications with differences shown ≥7/8 · Explanation — why do equal input steps matter when checking differences? · Transfer — create one linear and one nonlinear table with four rows.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.FUN.06",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Rate of change from a table",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 47,
      "id": "ALG.FUN.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Rate of change from a table: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Rate of change from a table.",
      "content": "Rate of change compares output change to input change; in a linear table it stays constant across every interval.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.FUN.06",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Rate of change from a table",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 47,
      "id": "ALG.FUN.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Rate of change from a table: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Rate of change from a table.",
      "content": "A table goes from (2, 11) to (5, 20). Output changes by 9 while input changes by 3, so the rate of change is 3 per input unit.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.FUN.06",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Rate of change from a table",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 47,
      "id": "ALG.FUN.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Rate of change from a table: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Rate of change from a table into personal, civic/data, and career contexts.",
      "content": "Personal — find dollars saved per week from a savings table. · Civic/Data — calculate library signups per day from a launch table. · Career — compute cost per hour from a service quote table.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.FUN.06",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Rate of change from a table",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 47,
      "id": "ALG.FUN.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Rate of change from a table: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Rate of change from a table.",
      "content": "Accuracy — 8 rate-of-change calculations from tables and paired points ≥7/8 · Explanation — what does \"per input unit\" mean in the context? · Transfer — find the rate from a table where inputs rise by 5 at a time.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.FUN.07",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Initial value and rate in context",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 48,
      "id": "ALG.FUN.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Initial value and rate in context: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Initial value and rate in context.",
      "content": "A linear function can be understood as starting amount plus repeated change; the initial value is the output when the input is zero.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.FUN.07",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Initial value and rate in context",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 48,
      "id": "ALG.FUN.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Initial value and rate in context: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Initial value and rate in context.",
      "content": "c(h) = 20 + 15h has initial value 20 and rate 15 per hour. At h = 0, the cost is still 20 because of the fixed fee.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.FUN.07",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Initial value and rate in context",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 48,
      "id": "ALG.FUN.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Initial value and rate in context: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Initial value and rate in context into personal, civic/data, and career contexts.",
      "content": "Personal — identify the setup fee and weekly charge in a subscription. · Civic/Data — read a population projection's starting count and monthly change. · Career — separate a call-out fee from an hourly repair rate.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.FUN.07",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Initial value and rate in context",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 48,
      "id": "ALG.FUN.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Initial value and rate in context: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Initial value and rate in context.",
      "content": "Accuracy — 8 items finding initial value and rate from rules, tables, and contexts ≥7/8 · Explanation — why does input zero reveal the starting amount? · Transfer — write a rule from an initial value of 50 and rate of 8 per week.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.FUN.08",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Comparing two functions",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 49,
      "id": "ALG.FUN.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Comparing two functions: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Comparing two functions.",
      "content": "Two functions can be compared by rate, initial value, outputs at the same input, or where one becomes larger than the other.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.FUN.08",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Comparing two functions",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 49,
      "id": "ALG.FUN.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Comparing two functions: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Comparing two functions.",
      "content": "Plan A costs 10 + 4g and Plan B costs 22 + 2g. At g = 3, A costs 22 and B costs 28, so A is cheaper; at g = 8, A costs 42 and B costs 38, so B is cheaper.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.FUN.08",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Comparing two functions",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 49,
      "id": "ALG.FUN.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Comparing two functions: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Comparing two functions into personal, civic/data, and career contexts.",
      "content": "Personal — compare two phone plans for low and high data use. · Civic/Data — compare two attendance-growth projections. · Career — compare two supplier quotes with different setup and unit costs.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.FUN.08",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Comparing two functions",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 49,
      "id": "ALG.FUN.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Comparing two functions: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Comparing two functions.",
      "content": "Accuracy — 8 comparison items across tables, graphs, and rules ≥7/8 · Explanation — why can the cheaper option change as input grows? · Transfer — compare two gym-membership functions at three visit counts.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.FUN.09",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Qualitative graphs — stories from shape",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 50,
      "id": "ALG.FUN.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Qualitative graphs — stories from shape: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Qualitative graphs — stories from shape.",
      "content": "A graph's shape tells a story: rising, falling, flat, steep, and curved sections all describe how the output changes over time or another input.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.FUN.09",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Qualitative graphs — stories from shape",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 50,
      "id": "ALG.FUN.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Qualitative graphs — stories from shape: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Qualitative graphs — stories from shape.",
      "content": "A distance-time graph that rises steeply, then flattens, then rises gently means fast movement, a stop, then slower movement.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.FUN.09",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Qualitative graphs — stories from shape",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 50,
      "id": "ALG.FUN.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Qualitative graphs — stories from shape: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Qualitative graphs — stories from shape into personal, civic/data, and career contexts.",
      "content": "Personal — describe a bike ride from a distance-time graph. · Civic/Data — interpret a water-storage graph during rain and dry spells. · Career — read a machine-temperature graph showing warm-up, steady operation, and cooldown.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.FUN.09",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Qualitative graphs — stories from shape",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 50,
      "id": "ALG.FUN.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Qualitative graphs — stories from shape: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Qualitative graphs — stories from shape.",
      "content": "Accuracy — 8 graph-story matching and description items ≥7/8 · Explanation — what does a flat section mean for the output? · Transfer — sketch a graph for a story with a fast start, pause, and slow finish.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.FUN.10",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Functions as models — choosing inputs that make sense",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 51,
      "id": "ALG.FUN.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Functions as models — choosing inputs that make sense: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Functions as models — choosing inputs that make sense.",
      "content": "A function model is useful only over inputs that fit the situation; beyond that range, predictions can become misleading or impossible.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.FUN.10",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Functions as models — choosing inputs that make sense",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 51,
      "id": "ALG.FUN.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Functions as models — choosing inputs that make sense: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Functions as models — choosing inputs that make sense.",
      "content": "A plant model h(w) = 5 + 2w may work for the first 8 weeks, but predicting 205 cm at week 100 may be unreasonable for that plant.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.FUN.10",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Functions as models — choosing inputs that make sense",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 51,
      "id": "ALG.FUN.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Functions as models — choosing inputs that make sense: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Functions as models — choosing inputs that make sense into personal, civic/data, and career contexts.",
      "content": "Personal — decide whether a savings rule can be extended forever. · Civic/Data — judge whether a population trend should be projected far beyond observed years. · Career — limit a cost model to production levels a factory can actually handle.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.FUN.10",
      "clusterId": "ALG.FUN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Functions as models — choosing inputs that make sense",
      "clusterTitle": "Functions & Relations (ALG.FUN)",
      "band": "8",
      "hardLevel": 51,
      "id": "ALG.FUN.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Functions as models — choosing inputs that make sense: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Functions as models — choosing inputs that make sense.",
      "content": "Accuracy — 8 modeling-domain items identifying useful and risky inputs ≥7/8 · Explanation — why is a mathematically valid output not always a realistic prediction? · Transfer — set sensible input limits for a ticket-revenue model.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.INQ.01",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Inequality symbols and statements",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 32,
      "id": "ALG.INQ.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Inequality symbols and statements: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Inequality symbols and statements.",
      "content": "Inequalities compare values that are not necessarily equal; the symbol points toward the smaller side and opens toward the larger side.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.INQ.01",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Inequality symbols and statements",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 32,
      "id": "ALG.INQ.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Inequality symbols and statements: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Inequality symbols and statements.",
      "content": "8 > 5 means 8 is greater than 5. x ≤ 12 means x can be 12 or any value below 12.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.INQ.01",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Inequality symbols and statements",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 32,
      "id": "ALG.INQ.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Inequality symbols and statements: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Inequality symbols and statements into personal, civic/data, and career contexts.",
      "content": "Personal — an age limit says riders must be at least 12. · Civic/Data — a grant accepts projects costing no more than $5,000. · Career — a lift sign says load must be less than 900 kg.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.INQ.01",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Inequality symbols and statements",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 32,
      "id": "ALG.INQ.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Inequality symbols and statements: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Inequality symbols and statements.",
      "content": "Accuracy — 8 symbol-meaning and statement-writing items ≥7/8 · Explanation — explain the difference between < and ≤ · Transfer — write an inequality for \"temperature is below zero.\"",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.INQ.02",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Inequalities on the number line",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 33,
      "id": "ALG.INQ.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Inequalities on the number line: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Inequalities on the number line.",
      "content": "A number-line graph shows all values that make an inequality true; open circles exclude endpoints, closed circles include them.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.INQ.02",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Inequalities on the number line",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 33,
      "id": "ALG.INQ.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Inequalities on the number line: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Inequalities on the number line.",
      "content": "x > 3 uses an open circle at 3 and shading to the right. x ≤ −2 uses a closed circle at −2 and shading to the left.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.INQ.02",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Inequalities on the number line",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 33,
      "id": "ALG.INQ.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Inequalities on the number line: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Inequalities on the number line into personal, civic/data, and career contexts.",
      "content": "Personal — show ages eligible for a teen discount. · Civic/Data — graph rainfall days with totals at least 10 mm. · Career — display acceptable storage temperatures for a medicine.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.INQ.02",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Inequalities on the number line",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 33,
      "id": "ALG.INQ.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Inequalities on the number line: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Inequalities on the number line.",
      "content": "Accuracy — 8 graph/read inequality items with open and closed endpoints ≥7/8 · Explanation — why is the circle closed for ≤? · Transfer — graph −4 < x on a number line.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.INQ.03",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Solution sets — many answers, not one",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 34,
      "id": "ALG.INQ.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Solution sets — many answers, not one: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Solution sets — many answers, not one.",
      "content": "An inequality usually has a solution set: every value that makes the statement true, not a single answer.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.INQ.03",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Solution sets — many answers, not one",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 34,
      "id": "ALG.INQ.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Solution sets — many answers, not one: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Solution sets — many answers, not one.",
      "content": "x + 2 < 7 simplifies to x < 5. Values 4, 0, and −10 all work; 5 and 6 do not.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.INQ.03",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Solution sets — many answers, not one",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 34,
      "id": "ALG.INQ.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Solution sets — many answers, not one: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Solution sets — many answers, not one into personal, civic/data, and career contexts.",
      "content": "Personal — list possible snack prices under a $6 budget. · Civic/Data — identify all attendance counts that meet a minimum threshold. · Career — choose machine settings within a safe range.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.INQ.03",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Solution sets — many answers, not one",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 34,
      "id": "ALG.INQ.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Solution sets — many answers, not one: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Solution sets — many answers, not one.",
      "content": "Accuracy — 8 items testing and listing values from solution sets ≥7/8 · Explanation — why is \"x = 4\" incomplete for x < 5? · Transfer — give three solutions and one non-solution for n ≥ 12.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.INQ.04",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "One-step inequalities",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 35,
      "id": "ALG.INQ.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "One-step inequalities: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of One-step inequalities.",
      "content": "One-step inequalities solve like one-step equations, using inverse operations while preserving the comparison.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.INQ.04",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "One-step inequalities",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 35,
      "id": "ALG.INQ.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "One-step inequalities: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for One-step inequalities.",
      "content": "x + 9 ≤ 20 gives x ≤ 11 by subtracting 9 from both sides. 4m > 24 gives m > 6 by dividing both sides by 4.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.INQ.04",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "One-step inequalities",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 35,
      "id": "ALG.INQ.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "One-step inequalities: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer One-step inequalities into personal, civic/data, and career contexts.",
      "content": "Personal — find how much more you can spend and stay within a budget. · Civic/Data — work out the maximum extra attendees under a room limit. · Career — solve a minimum-production target from boxes of equal size.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.INQ.04",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "One-step inequalities",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 35,
      "id": "ALG.INQ.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "One-step inequalities: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond One-step inequalities.",
      "content": "Accuracy — 8 one-step inequality solves and graphs ≥7/8 · Explanation — why does subtracting 9 from both sides keep the inequality direction? · Transfer — solve p − 7 ≥ 18 and graph it.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.INQ.05",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Two-step inequalities",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 36,
      "id": "ALG.INQ.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Two-step inequalities: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Two-step inequalities.",
      "content": "Two-step inequalities undo operations in reverse order, then graph or interpret the full solution set.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.INQ.05",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Two-step inequalities",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 36,
      "id": "ALG.INQ.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Two-step inequalities: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Two-step inequalities.",
      "content": "3x + 4 < 19. Subtract 4: 3x < 15. Divide by 3: x < 5.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.INQ.05",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Two-step inequalities",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 36,
      "id": "ALG.INQ.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Two-step inequalities: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Two-step inequalities into personal, civic/data, and career contexts.",
      "content": "Personal — a delivery fee plus item price must stay under your cash limit. · Civic/Data — plan a workshop budget with a fixed venue cost and per-person materials. · Career — calculate how many units can be made before exceeding a material limit.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.INQ.05",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Two-step inequalities",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 36,
      "id": "ALG.INQ.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Two-step inequalities: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Two-step inequalities.",
      "content": "Accuracy — 8 two-step inequality solves with number-line graphs ≥7/8 · Explanation — how is the final graph part of the answer? · Transfer — solve 5n − 6 ≥ 24 and name two possible values.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.INQ.06",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Flipping the sign (multiplying by negatives)",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 37,
      "id": "ALG.INQ.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Flipping the sign (multiplying by negatives): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Flipping the sign (multiplying by negatives).",
      "content": "Multiplying or dividing both sides by a negative reverses the inequality direction because the order of numbers flips on the number line.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.INQ.06",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Flipping the sign (multiplying by negatives)",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 37,
      "id": "ALG.INQ.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Flipping the sign (multiplying by negatives): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Flipping the sign (multiplying by negatives).",
      "content": "−2x < 10. Divide by −2 and flip the sign: x > −5. Check with x = 0: −2(0) < 10 is true.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.INQ.06",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Flipping the sign (multiplying by negatives)",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 37,
      "id": "ALG.INQ.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Flipping the sign (multiplying by negatives): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Flipping the sign (multiplying by negatives) into personal, civic/data, and career contexts.",
      "content": "Personal — solve a debt-reduction inequality involving negative balances. · Civic/Data — interpret temperature changes below zero. · Career — solve a loss or elevation constraint written with negative rates.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.INQ.06",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Flipping the sign (multiplying by negatives)",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 37,
      "id": "ALG.INQ.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Flipping the sign (multiplying by negatives): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Flipping the sign (multiplying by negatives).",
      "content": "Accuracy — 8 inequalities requiring negative multiplication/division and checks ≥7/8 · Explanation — use the number line to explain why the sign flips · Transfer — solve −3a ≥ 12 and test a value.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.INQ.07",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Compound inequalities (and/or)",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 38,
      "id": "ALG.INQ.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Compound inequalities (and/or): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Compound inequalities (and/or).",
      "content": "Compound inequalities combine constraints: \"and\" means values must satisfy both at once; \"or\" means satisfying either constraint is enough.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.INQ.07",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Compound inequalities (and/or)",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 38,
      "id": "ALG.INQ.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Compound inequalities (and/or): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Compound inequalities (and/or).",
      "content": "2 < x ≤ 7 means x is greater than 2 and at most 7. x < −3 or x > 5 describes two separate regions.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.INQ.07",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Compound inequalities (and/or)",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 38,
      "id": "ALG.INQ.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Compound inequalities (and/or): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Compound inequalities (and/or) into personal, civic/data, and career contexts.",
      "content": "Personal — choose a training heart-rate range. · Civic/Data — filter survey ages from 12 through 18 inclusive. · Career — describe acceptable machine temperature between minimum and maximum bounds.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.INQ.07",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Compound inequalities (and/or)",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 38,
      "id": "ALG.INQ.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Compound inequalities (and/or): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Compound inequalities (and/or).",
      "content": "Accuracy — 8 compound-inequality graphing and interpretation items ≥7/8 · Explanation — contrast the graph for \"and\" with the graph for \"or\" · Transfer — write a compound inequality for \"at least 60 and under 90.\"",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.INQ.08",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Inequalities from constraints (\"at least\", \"no more than\")",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 39,
      "id": "ALG.INQ.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Inequalities from constraints (\"at least\", \"no more than\"): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Inequalities from constraints (\"at least\", \"no more than\").",
      "content": "Constraint words translate to inequality symbols; defining the variable and checking the boundary prevents reversed symbols.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.INQ.08",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Inequalities from constraints (\"at least\", \"no more than\")",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 39,
      "id": "ALG.INQ.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Inequalities from constraints (\"at least\", \"no more than\"): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Inequalities from constraints (\"at least\", \"no more than\").",
      "content": "\"No more than 30 students\" means s ≤ 30. \"At least $120\" means money ≥ 120.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.INQ.08",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Inequalities from constraints (\"at least\", \"no more than\")",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 39,
      "id": "ALG.INQ.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Inequalities from constraints (\"at least\", \"no more than\"): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Inequalities from constraints (\"at least\", \"no more than\") into personal, civic/data, and career contexts.",
      "content": "Personal — write constraints for a weekly screen-time limit and a minimum savings goal. · Civic/Data — express capacity and funding rules for a community event. · Career — translate safety limits for weight, temperature, or time.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.INQ.08",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Inequalities from constraints (\"at least\", \"no more than\")",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 39,
      "id": "ALG.INQ.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Inequalities from constraints (\"at least\", \"no more than\"): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Inequalities from constraints (\"at least\", \"no more than\").",
      "content": "Accuracy — 8 story-to-inequality items including boundary tests ≥7/8 · Explanation — why does \"no more than\" include the boundary? · Transfer — write and solve an inequality for a fixed fee plus per-ticket cost under a budget.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.INQ.09",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Graphing constraint regions (intro)",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 40,
      "id": "ALG.INQ.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Graphing constraint regions (intro): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Graphing constraint regions (intro).",
      "content": "In two variables, an inequality shades a half-plane; a point is a solution if its coordinates make the inequality true.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.INQ.09",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Graphing constraint regions (intro)",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 40,
      "id": "ALG.INQ.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Graphing constraint regions (intro): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Graphing constraint regions (intro).",
      "content": "y ≤ 2x + 1 includes points on and below the line. Test (0, 0): 0 ≤ 1, so shade the side containing (0, 0).",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.INQ.09",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Graphing constraint regions (intro)",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 40,
      "id": "ALG.INQ.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Graphing constraint regions (intro): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Graphing constraint regions (intro) into personal, civic/data, and career contexts.",
      "content": "Personal — graph possible combinations of paid work hours and study hours under a time limit. · Civic/Data — shade feasible event plans under a budget constraint. · Career — map combinations of two materials that stay within a weight limit.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.INQ.09",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Graphing constraint regions (intro)",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 40,
      "id": "ALG.INQ.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Graphing constraint regions (intro): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Graphing constraint regions (intro).",
      "content": "Accuracy — 8 two-variable inequality items: graph boundary, test point, shade region ≥7/8 · Explanation — why does ≤ use a solid boundary line? · Transfer — graph x + y ≤ 10 and test whether (6, 5) works.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.INQ.10",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Inequality word problems",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 41,
      "id": "ALG.INQ.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Inequality word problems: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Inequality word problems.",
      "content": "Inequality word problems ask for all workable values; the final answer should state the solution set and what it means in context.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.INQ.10",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Inequality word problems",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 41,
      "id": "ALG.INQ.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Inequality word problems: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Inequality word problems.",
      "content": "A party budget is $80 plus $6 per guest, with at most $200 to spend: 80 + 6g ≤ 200, so 6g ≤ 120 and g ≤ 20. Up to 20 guests fit the budget.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.INQ.10",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Inequality word problems",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 41,
      "id": "ALG.INQ.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Inequality word problems: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Inequality word problems into personal, civic/data, and career contexts.",
      "content": "Personal — find how many songs can be downloaded with a gift card after a fixed subscription fee. · Civic/Data — plan workshop attendees under venue and material limits. · Career — calculate maximum units before a shipping-weight limit is exceeded.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.INQ.10",
      "clusterId": "ALG.INQ",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Inequality word problems",
      "clusterTitle": "Inequalities (ALG.INQ)",
      "band": "6–8",
      "hardLevel": 41,
      "id": "ALG.INQ.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Inequality word problems: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Inequality word problems.",
      "content": "Accuracy — 8 word problems requiring variable, inequality, solution, graph or set, and context sentence ≥7/8 · Explanation — why does rounding need context when the solution is x ≤ 12.6 people? · Transfer — solve a budget limit with a fixed fee and per-item cost.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.LIN.01",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Plotting linear equations",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 52,
      "id": "ALG.LIN.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Plotting linear equations: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Plotting linear equations.",
      "content": "A linear equation in two variables makes a straight-line graph; plotting several solution pairs reveals the line of all solutions.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.LIN.01",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Plotting linear equations",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 52,
      "id": "ALG.LIN.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Plotting linear equations: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Plotting linear equations.",
      "content": "For y = 2x + 1, x values 0, 1, 2 give y values 1, 3, 5. Plot (0, 1), (1, 3), (2, 5) and draw the straight line through them.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.LIN.01",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Plotting linear equations",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 52,
      "id": "ALG.LIN.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Plotting linear equations: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Plotting linear equations into personal, civic/data, and career contexts.",
      "content": "Personal — graph a savings plan with dollars increasing each week. · Civic/Data — plot a steady bus-fare rule by distance. · Career — graph a repair quote with cost against hours.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.LIN.01",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Plotting linear equations",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 52,
      "id": "ALG.LIN.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Plotting linear equations: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Plotting linear equations.",
      "content": "Accuracy — 8 graphing items from linear equations and tables ≥7/8 · Explanation — why do all plotted points need to satisfy the equation? · Transfer — plot y = −x + 4 from a table of three points.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.LIN.02",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Slope as rate of change",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 53,
      "id": "ALG.LIN.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Slope as rate of change: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Slope as rate of change.",
      "content": "Slope measures how much y changes for each one-unit change in x; it is the graph version of constant rate of change.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.LIN.02",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Slope as rate of change",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 53,
      "id": "ALG.LIN.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Slope as rate of change: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Slope as rate of change.",
      "content": "A line rises 6 units while moving 3 units right, so slope = rise/run = 6/3 = 2. The output increases 2 for each input step.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.LIN.02",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Slope as rate of change",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 53,
      "id": "ALG.LIN.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Slope as rate of change: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Slope as rate of change into personal, civic/data, and career contexts.",
      "content": "Personal — interpret dollars saved per week as slope. · Civic/Data — read signups per day from a straight-line graph. · Career — use slope as cost per extra hour in a service quote.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.LIN.02",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Slope as rate of change",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 53,
      "id": "ALG.LIN.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Slope as rate of change: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Slope as rate of change.",
      "content": "Accuracy — 8 slope-from-graph items using rise/run and context statements ≥7/8 · Explanation — what does a slope of 2 mean in the story? · Transfer — find slope from a graph that drops 4 while moving right 2.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.LIN.03",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Slope from two points",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 54,
      "id": "ALG.LIN.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Slope from two points: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Slope from two points.",
      "content": "Slope between two points is change in y divided by change in x; the order must be consistent for both changes.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.LIN.03",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Slope from two points",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 54,
      "id": "ALG.LIN.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Slope from two points: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Slope from two points.",
      "content": "Points (2, 5) and (6, 17): slope = (17 − 5)/(6 − 2) = 12/4 = 3. Reversing both differences gives the same result.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.LIN.03",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Slope from two points",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 54,
      "id": "ALG.LIN.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Slope from two points: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Slope from two points into personal, civic/data, and career contexts.",
      "content": "Personal — calculate weekly progress from two savings records. · Civic/Data — find daily attendance growth between two dates. · Career — compute hourly cost increase between two quote points.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.LIN.03",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Slope from two points",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 54,
      "id": "ALG.LIN.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Slope from two points: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Slope from two points.",
      "content": "Accuracy — 8 slope calculations from coordinate pairs, including negative slopes ≥7/8 · Explanation — why must the numerator and denominator use the same point order? · Transfer — find the slope through (−1, 7) and (3, −1).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.LIN.04",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Intercepts and what they mean",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 55,
      "id": "ALG.LIN.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Intercepts and what they mean: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Intercepts and what they mean.",
      "content": "The y-intercept is where the line crosses the y-axis and often represents the starting value; the x-intercept is where the output reaches zero.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.LIN.04",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Intercepts and what they mean",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 55,
      "id": "ALG.LIN.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Intercepts and what they mean: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Intercepts and what they mean.",
      "content": "y = 50 − 5x has y-intercept 50: the starting amount is 50. The x-intercept is 10 because 50 − 5(10) = 0.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.LIN.04",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Intercepts and what they mean",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 55,
      "id": "ALG.LIN.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Intercepts and what they mean: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Intercepts and what they mean into personal, civic/data, and career contexts.",
      "content": "Personal — interpret the starting balance and zero-balance week for a spending plan. · Civic/Data — read the initial population and predicted zero point in a simple model. · Career — identify startup cost and break-even output on a graph.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.LIN.04",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Intercepts and what they mean",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 55,
      "id": "ALG.LIN.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Intercepts and what they mean: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Intercepts and what they mean.",
      "content": "Accuracy — 8 intercept-finding and interpretation items from graphs and equations ≥7/8 · Explanation — why does x = 0 describe the starting value in many contexts? · Transfer — find and interpret both intercepts of y = 24 − 3x.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.LIN.05",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Slope-intercept form y = mx + b",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 56,
      "id": "ALG.LIN.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Slope-intercept form y = mx + b: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Slope-intercept form y = mx + b.",
      "content": "In y = mx + b, m is the slope and b is the y-intercept; the form exposes rate and starting value directly.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.LIN.05",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Slope-intercept form y = mx + b",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 56,
      "id": "ALG.LIN.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Slope-intercept form y = mx + b: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Slope-intercept form y = mx + b.",
      "content": "y = 4x + 12 has slope 4 and y-intercept 12. The graph starts at (0, 12) and rises 4 for each step right.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.LIN.05",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Slope-intercept form y = mx + b",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 56,
      "id": "ALG.LIN.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Slope-intercept form y = mx + b: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Slope-intercept form y = mx + b into personal, civic/data, and career contexts.",
      "content": "Personal — write a savings rule from a starting balance and weekly deposit. · Civic/Data — model registrations with an initial count and daily increase. · Career — express total cost as fixed fee plus hourly rate.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.LIN.05",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Slope-intercept form y = mx + b",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 56,
      "id": "ALG.LIN.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Slope-intercept form y = mx + b: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Slope-intercept form y = mx + b.",
      "content": "Accuracy — 8 identify/write/use y = mx + b items ≥7/8 · Explanation — explain the roles of m and b in a context · Transfer — write a line with slope −2 and y-intercept 9.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.LIN.06",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Writing equations from graphs",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 57,
      "id": "ALG.LIN.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Writing equations from graphs: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Writing equations from graphs.",
      "content": "A graph gives the information needed for an equation: read the intercept, find the slope, then write y = mx + b.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.LIN.06",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Writing equations from graphs",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 57,
      "id": "ALG.LIN.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Writing equations from graphs: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Writing equations from graphs.",
      "content": "A line crosses the y-axis at 3 and rises 2 for every 1 right, so the equation is y = 2x + 3.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.LIN.06",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Writing equations from graphs",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 57,
      "id": "ALG.LIN.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Writing equations from graphs: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Writing equations from graphs into personal, civic/data, and career contexts.",
      "content": "Personal — write the equation for a graph of savings over weeks. · Civic/Data — model a straight-line attendance trend from a chart. · Career — write a quote equation from a cost graph.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.LIN.06",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Writing equations from graphs",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 57,
      "id": "ALG.LIN.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Writing equations from graphs: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Writing equations from graphs.",
      "content": "Accuracy — 8 graph-to-equation items with slope and intercept identified ≥7/8 · Explanation — why is the y-intercept not always the first plotted point shown? · Transfer — write the equation of a line crossing at −4 with slope 3.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.LIN.07",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Writing equations from two points",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 58,
      "id": "ALG.LIN.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Writing equations from two points: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Writing equations from two points.",
      "content": "Two points determine one non-vertical line; find the slope from the points, then use one point to solve for the intercept.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.LIN.07",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Writing equations from two points",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 58,
      "id": "ALG.LIN.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Writing equations from two points: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Writing equations from two points.",
      "content": "Through (2, 7) and (5, 16), slope = 9/3 = 3. Use y = 3x + b with (2, 7): 7 = 6 + b, so b = 1. Equation: y = 3x + 1.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.LIN.07",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Writing equations from two points",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 58,
      "id": "ALG.LIN.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Writing equations from two points: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Writing equations from two points into personal, civic/data, and career contexts.",
      "content": "Personal — build a savings rule from balances at week 2 and week 5. · Civic/Data — model a straight trend from two census points. · Career — estimate a service quote from two known hour-cost pairs.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.LIN.07",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Writing equations from two points",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 58,
      "id": "ALG.LIN.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Writing equations from two points: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Writing equations from two points.",
      "content": "Accuracy — 8 two-point-to-equation items including negative slopes and fractional slopes ≥7/8 · Explanation — why do two points fix a single straight line? · Transfer — write the line through (0, 4) and (3, 10).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.LIN.08",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Parallel lines and equal slopes",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 59,
      "id": "ALG.LIN.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Parallel lines and equal slopes: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Parallel lines and equal slopes.",
      "content": "Parallel non-vertical lines have the same slope and different intercepts, so they rise or fall at the same rate and never meet.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.LIN.08",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Parallel lines and equal slopes",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 59,
      "id": "ALG.LIN.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Parallel lines and equal slopes: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Parallel lines and equal slopes.",
      "content": "y = 2x + 1 and y = 2x − 5 have the same slope 2 but different intercepts, so they are parallel. y = −0.5x + 1 is not parallel to them.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.LIN.08",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Parallel lines and equal slopes",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 59,
      "id": "ALG.LIN.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Parallel lines and equal slopes: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Parallel lines and equal slopes into personal, civic/data, and career contexts.",
      "content": "Personal — compare two savings plans that grow at the same weekly amount but start differently. · Civic/Data — identify two trend lines with equal growth rates. · Career — read parallel cost lines with the same per-unit cost but different setup fees.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.LIN.08",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Parallel lines and equal slopes",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 59,
      "id": "ALG.LIN.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Parallel lines and equal slopes: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Parallel lines and equal slopes.",
      "content": "Accuracy — 8 identify/write parallel-line items ≥7/8 · Explanation — why do equal slopes mean the gap stays constant? · Transfer — write a line parallel to y = −3x + 8 through y-intercept 2.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.LIN.09",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Proportional vs non-proportional lines",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 60,
      "id": "ALG.LIN.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Proportional vs non-proportional lines: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Proportional vs non-proportional lines.",
      "content": "A proportional relationship has a straight-line graph through the origin; a non-proportional linear relationship has a nonzero starting value.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.LIN.09",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Proportional vs non-proportional lines",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 60,
      "id": "ALG.LIN.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Proportional vs non-proportional lines: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Proportional vs non-proportional lines.",
      "content": "y = 5x is proportional because y/x = 5 and the graph passes through (0, 0). y = 5x + 3 is linear but not proportional because it starts at 3.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.LIN.09",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Proportional vs non-proportional lines",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 60,
      "id": "ALG.LIN.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Proportional vs non-proportional lines: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Proportional vs non-proportional lines into personal, civic/data, and career contexts.",
      "content": "Personal — compare paying only per song with paying a subscription plus per song. · Civic/Data — identify whether total donations scale directly with donors or include a starting grant. · Career — distinguish pure unit pricing from pricing with a setup fee.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.LIN.09",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Proportional vs non-proportional lines",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 60,
      "id": "ALG.LIN.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Proportional vs non-proportional lines: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Proportional vs non-proportional lines.",
      "content": "Accuracy — 8 classifications from equations, tables, graphs, and contexts ≥7/8 · Explanation — why does a fixed fee break proportionality? · Transfer — decide whether a table with (0, 4), (1, 7), (2, 10) is proportional.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.LIN.10",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Linear graphs in context (cost, distance, depreciation)",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 61,
      "id": "ALG.LIN.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Linear graphs in context (cost, distance, depreciation): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Linear graphs in context (cost, distance, depreciation).",
      "content": "Linear graphs model constant-rate change in context; slope and intercept explain the practical meaning, while the domain limits sensible predictions.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.LIN.10",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Linear graphs in context (cost, distance, depreciation)",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 61,
      "id": "ALG.LIN.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Linear graphs in context (cost, distance, depreciation): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Linear graphs in context (cost, distance, depreciation).",
      "content": "A laptop worth $900 loses $120 per year: v = 900 − 120t. The slope −120 means dollars lost per year, the intercept 900 is starting value, and the model stops making sense after the value reaches zero.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.LIN.10",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Linear graphs in context (cost, distance, depreciation)",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 61,
      "id": "ALG.LIN.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Linear graphs in context (cost, distance, depreciation): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Linear graphs in context (cost, distance, depreciation) into personal, civic/data, and career contexts.",
      "content": "Personal — model phone value depreciation over years. · Civic/Data — model a steady water-tank drain during maintenance. · Career — compare fixed-plus-hourly job quotes on one graph.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.LIN.10",
      "clusterId": "ALG.LIN",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Linear graphs in context (cost, distance, depreciation)",
      "clusterTitle": "Linear Graphs & Slope (ALG.LIN)",
      "band": "7–8",
      "hardLevel": 61,
      "id": "ALG.LIN.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Linear graphs in context (cost, distance, depreciation): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Linear graphs in context (cost, distance, depreciation).",
      "content": "Accuracy — 8 context-model items requiring equation, graph features, interpretation, and domain check ≥7/8 · Explanation — why should a depreciation model not keep going below zero value? · Transfer — write and interpret a linear distance-time model for a steady trip.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.MOD.01",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "From situation to variable choice",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 41,
      "id": "ALG.MOD.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "From situation to variable choice: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of From situation to variable choice.",
      "content": "Good models begin by choosing variables that represent meaningful quantities, with units and definitions precise enough to guide the equation.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.MOD.01",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "From situation to variable choice",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 41,
      "id": "ALG.MOD.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "From situation to variable choice: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for From situation to variable choice.",
      "content": "For a taxi fare, let k be kilometres travelled and C be total cost in dollars. Vague choices like \"let x be taxi\" do not identify a measurable quantity.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.MOD.01",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "From situation to variable choice",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 41,
      "id": "ALG.MOD.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "From situation to variable choice: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer From situation to variable choice into personal, civic/data, and career contexts.",
      "content": "Personal — define variables for hours worked and money earned. · Civic/Data — define variables for attendees and total event cost. · Career — define variables for units produced and material cost.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.MOD.01",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "From situation to variable choice",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 41,
      "id": "ALG.MOD.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "From situation to variable choice: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond From situation to variable choice.",
      "content": "Accuracy — 8 modeling prompts requiring useful variable definitions and units ≥7/8 · Explanation — why is \"x = the problem\" not a usable variable definition? · Transfer — define variables for a delivery-fee scenario.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.MOD.02",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Building the equation from quantities and relationships",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 62,
      "id": "ALG.MOD.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Building the equation from quantities and relationships: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Building the equation from quantities and relationships.",
      "content": "A model equation comes from relationships between quantities: fixed amounts, rates, totals, differences, and constraints each translate to structure.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.MOD.02",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Building the equation from quantities and relationships",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 62,
      "id": "ALG.MOD.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Building the equation from quantities and relationships: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Building the equation from quantities and relationships.",
      "content": "A gym charges $20 signup plus $8 per visit. With v visits and total cost C, C = 20 + 8v.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.MOD.02",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Building the equation from quantities and relationships",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 62,
      "id": "ALG.MOD.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Building the equation from quantities and relationships: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Building the equation from quantities and relationships into personal, civic/data, and career contexts.",
      "content": "Personal — model a savings account with starting money and weekly deposits. · Civic/Data — write a community-event cost equation from venue fee and per-person materials. · Career — model a contractor quote with call-out fee and hourly rate.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.MOD.02",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Building the equation from quantities and relationships",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 62,
      "id": "ALG.MOD.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Building the equation from quantities and relationships: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Building the equation from quantities and relationships.",
      "content": "Accuracy — 8 story-to-model items across fixed-plus-rate and proportional contexts ≥7/8 · Explanation — identify which number is the fixed amount and which is the rate · Transfer — write an equation for a subscription plus per-use charge.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.MOD.03",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Stating assumptions explicitly",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 63,
      "id": "ALG.MOD.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Stating assumptions explicitly: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Stating assumptions explicitly.",
      "content": "Every model makes assumptions; naming them clarifies when the model should be trusted and when it might fail.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.MOD.03",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Stating assumptions explicitly",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 63,
      "id": "ALG.MOD.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Stating assumptions explicitly: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Stating assumptions explicitly.",
      "content": "A cost model C = 50 + 3n assumes the $50 fee is fixed, every item costs $3, and there are no bulk discounts or taxes.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.MOD.03",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Stating assumptions explicitly",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 63,
      "id": "ALG.MOD.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Stating assumptions explicitly: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Stating assumptions explicitly into personal, civic/data, and career contexts.",
      "content": "Personal — list assumptions in a monthly-budget model. · Civic/Data — state assumptions behind an attendance forecast. · Career — document assumptions in a production-cost estimate.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.MOD.03",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Stating assumptions explicitly",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 63,
      "id": "ALG.MOD.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Stating assumptions explicitly: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Stating assumptions explicitly.",
      "content": "Accuracy — 8 prompts identifying hidden assumptions and likely failure points ≥7/8 · Explanation — why can an equation be correct under one assumption and wrong under another? · Transfer — name three assumptions for a taxi-fare model.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.MOD.04",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Solving and interpreting in units",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 64,
      "id": "ALG.MOD.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Solving and interpreting in units: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Solving and interpreting in units.",
      "content": "Solving a model is only half the work; the result must be interpreted with units and checked against what the variable represents.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.MOD.04",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Solving and interpreting in units",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 64,
      "id": "ALG.MOD.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Solving and interpreting in units: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Solving and interpreting in units.",
      "content": "20 + 8v = 68 gives v = 6. The answer means 6 visits, not $6 or 6 weeks.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.MOD.04",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Solving and interpreting in units",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 64,
      "id": "ALG.MOD.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Solving and interpreting in units: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Solving and interpreting in units into personal, civic/data, and career contexts.",
      "content": "Personal — solve for work hours needed to reach a savings target. · Civic/Data — find the number of attendees a budget supports. · Career — calculate billable hours from total invoice amount.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.MOD.04",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Solving and interpreting in units",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 64,
      "id": "ALG.MOD.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Solving and interpreting in units: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Solving and interpreting in units.",
      "content": "Accuracy — 8 solve-and-interpret items requiring units and context sentences ≥7/8 · Explanation — how do units prevent misreading v = 6? · Transfer — solve a fixed-plus-rate model and write the final answer in words.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.MOD.05",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Checking against reality (sanity bounds)",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 65,
      "id": "ALG.MOD.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Checking against reality (sanity bounds): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Checking against reality (sanity bounds).",
      "content": "A model output should be checked against reality: sign, size, units, domain, and practical limits can reveal impossible or misleading answers.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.MOD.05",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Checking against reality (sanity bounds)",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 65,
      "id": "ALG.MOD.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Checking against reality (sanity bounds): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Checking against reality (sanity bounds).",
      "content": "A model says −3 people should attend to break even. The algebra may indicate the break-even point happened before the chosen starting point, but −3 people is not a literal attendance count.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.MOD.05",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Checking against reality (sanity bounds)",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 65,
      "id": "ALG.MOD.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Checking against reality (sanity bounds): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Checking against reality (sanity bounds) into personal, civic/data, and career contexts.",
      "content": "Personal — reject a negative number of tickets in a budget plan. · Civic/Data — check whether a forecast exceeds venue capacity. · Career — notice a production model recommends more units than the machine can make.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.MOD.05",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Checking against reality (sanity bounds)",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 65,
      "id": "ALG.MOD.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Checking against reality (sanity bounds): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Checking against reality (sanity bounds).",
      "content": "Accuracy — 8 model-output sanity checks with revisions or warnings ≥7/8 · Explanation — why can a computed answer be mathematically valid but contextually unusable? · Transfer — judge whether a fractional-person answer should be rounded up, down, or rejected.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.MOD.06",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Refining a model that misses",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 66,
      "id": "ALG.MOD.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Refining a model that misses: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Refining a model that misses.",
      "content": "When predictions miss real data, refine the model by revisiting assumptions, adding constraints, changing model type, or narrowing the domain.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.MOD.06",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Refining a model that misses",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 66,
      "id": "ALG.MOD.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Refining a model that misses: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Refining a model that misses.",
      "content": "A linear signup model predicts 500 users after a campaign, but actual signups flatten at 300. A refined model may include market saturation or a shorter valid time window.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.MOD.06",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Refining a model that misses",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 66,
      "id": "ALG.MOD.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Refining a model that misses: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Refining a model that misses into personal, civic/data, and career contexts.",
      "content": "Personal — adjust a savings forecast after irregular income. · Civic/Data — revise attendance projections after weather changes. · Career — update a sales model when a promotion ends.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.MOD.06",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Refining a model that misses",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 66,
      "id": "ALG.MOD.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Refining a model that misses: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Refining a model that misses.",
      "content": "Accuracy — 8 prompts comparing prediction with actual data and proposing model refinements ≥7/8 · Explanation — what evidence suggests changing the model type? · Transfer — refine a simple growth model after three observed data points diverge.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.MOD.07",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Constraint problems (budgets, capacity)",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 67,
      "id": "ALG.MOD.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Constraint problems (budgets, capacity): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Constraint problems (budgets, capacity).",
      "content": "Constraint models describe what is allowed; inequalities and systems show feasible choices rather than one exact answer.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.MOD.07",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Constraint problems (budgets, capacity)",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 67,
      "id": "ALG.MOD.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Constraint problems (budgets, capacity): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Constraint problems (budgets, capacity).",
      "content": "A party has $200, a $50 room fee, and $6 per guest: 50 + 6g ≤ 200, so g ≤ 25. The feasible guest counts are whole numbers from 0 to 25.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.MOD.07",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Constraint problems (budgets, capacity)",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 67,
      "id": "ALG.MOD.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Constraint problems (budgets, capacity): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Constraint problems (budgets, capacity) into personal, civic/data, and career contexts.",
      "content": "Personal — plan purchases under a budget and bag-weight limit. · Civic/Data — choose event options under room capacity and grant limits. · Career — schedule work hours under labor and equipment constraints.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.MOD.07",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Constraint problems (budgets, capacity)",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 67,
      "id": "ALG.MOD.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Constraint problems (budgets, capacity): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Constraint problems (budgets, capacity).",
      "content": "Accuracy — 8 constraint-model items writing inequalities, solving, and interpreting feasible sets ≥7/8 · Explanation — why does a constraint problem often have many answers? · Transfer — write constraints for time and money in a weekend job plan.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.MOD.08",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Optimization by trial and structure (intro)",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 68,
      "id": "ALG.MOD.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Optimization by trial and structure (intro): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Optimization by trial and structure (intro).",
      "content": "Optimization asks for the best feasible option; early modeling can use organized trial, tables, graph features, and structure to compare choices.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.MOD.08",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Optimization by trial and structure (intro)",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 68,
      "id": "ALG.MOD.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Optimization by trial and structure (intro): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Optimization by trial and structure (intro).",
      "content": "With 24 metres of fencing for a rectangle, test whole-number side pairs with perimeter 24: 1×11, 2×10, 3×9, 4×8, 5×7, 6×6. The square gives the greatest area, 36 m².",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.MOD.08",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Optimization by trial and structure (intro)",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 68,
      "id": "ALG.MOD.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Optimization by trial and structure (intro): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Optimization by trial and structure (intro) into personal, civic/data, and career contexts.",
      "content": "Personal — maximize snack packs within a fixed budget. · Civic/Data — choose the best workshop size under budget and capacity limits. · Career — compare production mixes to maximize profit under resource limits.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.MOD.08",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Optimization by trial and structure (intro)",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 68,
      "id": "ALG.MOD.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Optimization by trial and structure (intro): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Optimization by trial and structure (intro).",
      "content": "Accuracy — 8 optimization-intro items requiring organized trials and justification ≥7/8 · Explanation — why is random guessing weaker than a structured table? · Transfer — find the largest rectangle area for a fixed small perimeter using a table.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.MOD.09",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Comparing model predictions to data",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 69,
      "id": "ALG.MOD.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Comparing model predictions to data: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Comparing model predictions to data.",
      "content": "A model should be tested against observed data using residuals, percent error, or clear qualitative comparisons before it is trusted.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.MOD.09",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Comparing model predictions to data",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 69,
      "id": "ALG.MOD.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Comparing model predictions to data: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Comparing model predictions to data.",
      "content": "A model predicts 120, 135, 150 signups, but actual counts are 118, 140, 147. Errors are −2, +5, −3, small enough for rough planning but not exact reporting.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.MOD.09",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Comparing model predictions to data",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 69,
      "id": "ALG.MOD.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Comparing model predictions to data: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Comparing model predictions to data into personal, civic/data, and career contexts.",
      "content": "Personal — compare predicted spending with actual bank transactions. · Civic/Data — test a park-usage forecast against collected counts. · Career — compare projected sales to actual sales after launch.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.MOD.09",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Comparing model predictions to data",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 69,
      "id": "ALG.MOD.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Comparing model predictions to data: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Comparing model predictions to data.",
      "content": "Accuracy — 8 prediction-vs-data items computing errors and judging fit ≥7/8 · Explanation — how can a model be useful even when not exact? · Transfer — calculate prediction errors for a supplied table and recommend keep/refine/reject.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.MOD.10",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Communicating a model — the one-paragraph writeup",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 70,
      "id": "ALG.MOD.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Communicating a model — the one-paragraph writeup: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Communicating a model — the one-paragraph writeup.",
      "content": "A strong model writeup states the variables, equation or rule, assumptions, result, interpretation, and limitations in plain language.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.MOD.10",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Communicating a model — the one-paragraph writeup",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 70,
      "id": "ALG.MOD.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Communicating a model — the one-paragraph writeup: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Communicating a model — the one-paragraph writeup.",
      "content": "\"Let g be guests. Cost is C = 50 + 6g, assuming one fixed room fee and $6 materials per guest. With $200, 50 + 6g ≤ 200 gives g ≤ 25, so at most 25 guests fit the budget. This ignores tax and any discounts.\"",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.MOD.10",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Communicating a model — the one-paragraph writeup",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 70,
      "id": "ALG.MOD.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Communicating a model — the one-paragraph writeup: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Communicating a model — the one-paragraph writeup into personal, civic/data, and career contexts.",
      "content": "Personal — write a short explanation for a savings model. · Civic/Data — summarize a community-event capacity model for a flyer. · Career — present a quote model with assumptions and limits to a client.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.MOD.10",
      "clusterId": "ALG.MOD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Communicating a model — the one-paragraph writeup",
      "clusterTitle": "Algebraic Modeling (ALG.MOD)",
      "band": "7–8+",
      "hardLevel": 70,
      "id": "ALG.MOD.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Communicating a model — the one-paragraph writeup: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Communicating a model — the one-paragraph writeup.",
      "content": "Accuracy — 8 model writeups assessed for variables, rule, assumptions, result, units, and limitation ≥7/8 · Explanation — why should limitations be included even when the answer is correct? · Transfer — produce a one-paragraph writeup for a new fixed-plus-rate constraint problem.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.PAT.01",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Repeating patterns — find and extend the unit",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 3,
      "id": "ALG.PAT.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Repeating patterns — find and extend the unit: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Repeating patterns — find and extend the unit.",
      "content": "A repeating pattern is built from a smallest unit that loops; once you name the unit, you can extend the pattern without guessing one item at a time.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.PAT.01",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Repeating patterns — find and extend the unit",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 3,
      "id": "ALG.PAT.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Repeating patterns — find and extend the unit: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Repeating patterns — find and extend the unit.",
      "content": "Red, blue, blue, red, blue, blue repeats the unit RBB. The 7th term starts the next unit, so it is red.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.PAT.01",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Repeating patterns — find and extend the unit",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 3,
      "id": "ALG.PAT.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Repeating patterns — find and extend the unit: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Repeating patterns — find and extend the unit into personal, civic/data, and career contexts.",
      "content": "Personal — predict the next bead colors in a bracelet pattern. · Civic/Data — read a repeating traffic-light maintenance schedule and find which crew works next. · Career — a tile setter checks a border pattern before cutting the next tiles.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.PAT.01",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Repeating patterns — find and extend the unit",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 3,
      "id": "ALG.PAT.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Repeating patterns — find and extend the unit: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Repeating patterns — find and extend the unit.",
      "content": "Accuracy — 8 items identifying units and extending patterns ≥7/8 · Explanation — why is AB not the unit for ABBABB? · Transfer — find the 13th symbol in a new 4-symbol repeating pattern.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.PAT.02",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Growing patterns with shapes",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 4,
      "id": "ALG.PAT.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Growing patterns with shapes: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Growing patterns with shapes.",
      "content": "A growing pattern changes by a rule each step; looking at what is added helps predict later figures without drawing every one.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.PAT.02",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Growing patterns with shapes",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 4,
      "id": "ALG.PAT.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Growing patterns with shapes: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Growing patterns with shapes.",
      "content": "Figure 1 has 3 squares, figure 2 has 5, figure 3 has 7. The pattern adds 2 each time, so figure 4 has 9 and figure 5 has 11.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.PAT.02",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Growing patterns with shapes",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 4,
      "id": "ALG.PAT.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Growing patterns with shapes: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Growing patterns with shapes into personal, civic/data, and career contexts.",
      "content": "Personal — build stair steps from blocks and predict how many blocks the next step needs. · Civic/Data — extend a seating-row diagram where each row adds two seats. · Career — a landscaper plans triangular garden beds that grow by one border tile each layer.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.PAT.02",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Growing patterns with shapes",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 4,
      "id": "ALG.PAT.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Growing patterns with shapes: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Growing patterns with shapes.",
      "content": "Accuracy — 8 shape-pattern extensions with add-on descriptions ≥7/8 · Explanation — describe what changes and what stays fixed between figures · Transfer — predict figure 6 from a new visual pattern and justify the count.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.PAT.03",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Number sequences — counting rules",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 5,
      "id": "ALG.PAT.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Number sequences — counting rules: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Number sequences — counting rules.",
      "content": "A number sequence follows a counting rule such as add 3, subtract 5, double, or halve; the rule must work for every step, not just one jump.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.PAT.03",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Number sequences — counting rules",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 5,
      "id": "ALG.PAT.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Number sequences — counting rules: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Number sequences — counting rules.",
      "content": "4, 7, 10, 13 adds 3 each time, so the next terms are 16 and 19. In 2, 4, 8, 16 the rule is multiply by 2, not add the same amount.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.PAT.03",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Number sequences — counting rules",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 5,
      "id": "ALG.PAT.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Number sequences — counting rules: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Number sequences — counting rules into personal, civic/data, and career contexts.",
      "content": "Personal — track a savings jar that gains $4 each week. · Civic/Data — inspect bus arrival times spaced every 12 minutes. · Career — a warehouse scanner labels boxes by counting up in 25s.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.PAT.03",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Number sequences — counting rules",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 5,
      "id": "ALG.PAT.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Number sequences — counting rules: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Number sequences — counting rules.",
      "content": "Accuracy — 8 sequence-rule items including additive and multiplicative patterns ≥7/8 · Explanation — why does checking only the first two numbers risk a wrong rule? · Transfer — continue 81, 27, 9, 3 and name the rule.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.PAT.04",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Input–output machines",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 6,
      "id": "ALG.PAT.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Input–output machines: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Input–output machines.",
      "content": "An input-output rule turns every input into an output the same way; testing several pairs reveals the operation.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.PAT.04",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Input–output machines",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 6,
      "id": "ALG.PAT.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Input–output machines: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Input–output machines.",
      "content": "Inputs 1, 2, 3 become 5, 7, 9. The rule is multiply by 2, then add 3: 4 would become 11.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.PAT.04",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Input–output machines",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 6,
      "id": "ALG.PAT.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Input–output machines: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Input–output machines into personal, civic/data, and career contexts.",
      "content": "Personal — a game awards points as double your level plus 1. · Civic/Data — a parking meter converts hours into cost using a fixed rule. · Career — a print shop prices posters with a setup fee plus a per-poster amount.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.PAT.04",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Input–output machines",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 6,
      "id": "ALG.PAT.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Input–output machines: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Input–output machines.",
      "content": "Accuracy — 8 tables requiring rule finding and missing outputs ≥7/8 · Explanation — compare \"add 4\" vs \"double then 3\" when both fit one pair but not all pairs · Transfer — fill a new table from a two-step rule written in words.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.PAT.05",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Describing a rule in words",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 7,
      "id": "ALG.PAT.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Describing a rule in words: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Describing a rule in words.",
      "content": "A pattern rule is useful only when it is precise enough for someone else to reproduce the same sequence or table.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.PAT.05",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Describing a rule in words",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 7,
      "id": "ALG.PAT.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Describing a rule in words: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Describing a rule in words.",
      "content": "For 6, 10, 14, 18, \"it gets bigger\" is too vague. \"Start at 6 and add 4 each time\" is precise and testable.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.PAT.05",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Describing a rule in words",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 7,
      "id": "ALG.PAT.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Describing a rule in words: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Describing a rule in words into personal, civic/data, and career contexts.",
      "content": "Personal — write directions for a friend to recreate your block pattern. · Civic/Data — describe how a recycling reward grows each week. · Career — document a pricing rule so another staff member quotes the same amount.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.PAT.05",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Describing a rule in words",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 7,
      "id": "ALG.PAT.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Describing a rule in words: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Describing a rule in words.",
      "content": "Accuracy — 8 items matching sequences, tables, and verbal rules ≥7/8 · Explanation — revise a vague rule into a precise rule · Transfer — write a rule for a visual pattern that another learner could follow.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.PAT.06",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Term-to-term rules",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 8,
      "id": "ALG.PAT.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Term-to-term rules: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Term-to-term rules.",
      "content": "A term-to-term rule tells how to get from one term to the next; it is efficient for nearby terms but can be slow for far-away terms.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.PAT.06",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Term-to-term rules",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 8,
      "id": "ALG.PAT.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Term-to-term rules: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Term-to-term rules.",
      "content": "In 9, 14, 19, 24, the rule is add 5. To find the 6th term, keep stepping: 29, 34. To find the 100th, stepping works but is inefficient.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.PAT.06",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Term-to-term rules",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 8,
      "id": "ALG.PAT.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Term-to-term rules: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Term-to-term rules into personal, civic/data, and career contexts.",
      "content": "Personal — track a daily reading target that rises by 3 pages each day. · Civic/Data — follow a water-restriction schedule that tightens by equal amounts. · Career — a trainer increases reps by 2 each session and forecasts the next few sessions.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.PAT.06",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Term-to-term rules",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 8,
      "id": "ALG.PAT.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Term-to-term rules: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Term-to-term rules.",
      "content": "Accuracy — 8 term-to-term extension items with one error-detection prompt ≥7/8 · Explanation — why is a term-to-term rule less useful for the 50th term? · Transfer — find and fix the wrong term in 5, 8, 11, 15, 17.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.PAT.07",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Position-to-term thinking (nth shape)",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 9,
      "id": "ALG.PAT.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Position-to-term thinking (nth shape): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Position-to-term thinking (nth shape).",
      "content": "A position-to-term rule connects the figure number directly to the count, making far-away terms possible without listing every earlier term.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.PAT.07",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Position-to-term thinking (nth shape)",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 9,
      "id": "ALG.PAT.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Position-to-term thinking (nth shape): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Position-to-term thinking (nth shape).",
      "content": "A pattern has 3, 5, 7, 9 tiles. Figure n has 2n + 1 tiles, so figure 20 has 41 tiles. The rule matches figure 1: 2(1) + 1 = 3.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.PAT.07",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Position-to-term thinking (nth shape)",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 9,
      "id": "ALG.PAT.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Position-to-term thinking (nth shape): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Position-to-term thinking (nth shape) into personal, civic/data, and career contexts.",
      "content": "Personal — find how many stickers are needed for page 30 of a scrapbook border. · Civic/Data — predict seats in row 25 when each row adds two seats. · Career — estimate materials for the 40th fence panel in a repeating build plan.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.PAT.07",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Position-to-term thinking (nth shape)",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 9,
      "id": "ALG.PAT.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Position-to-term thinking (nth shape): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Position-to-term thinking (nth shape).",
      "content": "Accuracy — 8 direct-rule items from visuals and tables ≥7/8 · Explanation — check why n + 2 works for early figures but fails later in a given pattern · Transfer — write and use a rule for a new linear growing pattern.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.PAT.08",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Arithmetic sequences",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 10,
      "id": "ALG.PAT.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Arithmetic sequences: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Arithmetic sequences.",
      "content": "An arithmetic sequence has a constant difference; each term equals the starting value plus repeated copies of that difference.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.PAT.08",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Arithmetic sequences",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 10,
      "id": "ALG.PAT.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Arithmetic sequences: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Arithmetic sequences.",
      "content": "12, 19, 26, 33 has common difference 7. Term 10 is 12 + 9×7 = 75 because nine jumps move from term 1 to term 10.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.PAT.08",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Arithmetic sequences",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 10,
      "id": "ALG.PAT.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Arithmetic sequences: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Arithmetic sequences into personal, civic/data, and career contexts.",
      "content": "Personal — a savings plan starts with $12 and adds $7 each week. · Civic/Data — estimate the 10th stop distance when stops are evenly spaced. · Career — a subscription forecast gains the same number of users each month.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.PAT.08",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Arithmetic sequences",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 10,
      "id": "ALG.PAT.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Arithmetic sequences: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Arithmetic sequences.",
      "content": "Accuracy — 8 arithmetic-sequence items including missing terms and distant terms ≥7/8 · Explanation — why are there 9 jumps from term 1 to term 10, not 10? · Transfer — find term 15 of a sequence starting at 50 and decreasing by 3.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.PAT.09",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Patterns in tables and charts",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 11,
      "id": "ALG.PAT.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Patterns in tables and charts: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Patterns in tables and charts.",
      "content": "Tables and charts reveal patterns by pairing positions with values; reading across and down helps separate the input, output, and rate of change.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.PAT.09",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Patterns in tables and charts",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 11,
      "id": "ALG.PAT.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Patterns in tables and charts: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Patterns in tables and charts.",
      "content": "A table shows weeks 0, 1, 2, 3 and dollars 20, 25, 30, 35. The output increases by 5 per week and starts at 20, so week 8 is 60.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.PAT.09",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Patterns in tables and charts",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 11,
      "id": "ALG.PAT.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Patterns in tables and charts: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Patterns in tables and charts into personal, civic/data, and career contexts.",
      "content": "Personal — read a fitness table showing total kilometers after each week. · Civic/Data — interpret a library signup chart with steady weekly growth. · Career — use a repair-cost table to identify the fixed fee and hourly charge.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.PAT.09",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Patterns in tables and charts",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 11,
      "id": "ALG.PAT.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Patterns in tables and charts: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Patterns in tables and charts.",
      "content": "Accuracy — 8 table/chart pattern items with missing entries and one interpretation prompt ≥7/8 · Explanation — identify the start value and the change value from a table · Transfer — build a table from a short story rule and predict a later output.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.PAT.10",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "From pattern to formula (intro)",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 12,
      "id": "ALG.PAT.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "From pattern to formula (intro): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of From pattern to formula (intro).",
      "content": "A formula is a compressed pattern rule: it uses a variable for the position or input so the same rule can generate any term.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.PAT.10",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "From pattern to formula (intro)",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 12,
      "id": "ALG.PAT.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "From pattern to formula (intro): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for From pattern to formula (intro).",
      "content": "A taxi costs $4 plus $2 per kilometre. For k kilometres, cost = 4 + 2k. At 11 km, cost = 4 + 2(11) = $26.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.PAT.10",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "From pattern to formula (intro)",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 12,
      "id": "ALG.PAT.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "From pattern to formula (intro): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer From pattern to formula (intro) into personal, civic/data, and career contexts.",
      "content": "Personal — write a formula for a weekly allowance that starts with $10 and adds $3 per chore. · Civic/Data — model total event cost as room fee plus ticket cost per attendee. · Career — a contractor writes total price = call-out fee + hourly rate × hours.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.PAT.10",
      "clusterId": "ALG.PAT",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "From pattern to formula (intro)",
      "clusterTitle": "Patterns & Sequences (ALG.PAT)",
      "band": "1–6",
      "hardLevel": 12,
      "id": "ALG.PAT.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "From pattern to formula (intro): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond From pattern to formula (intro).",
      "content": "Accuracy — 8 items translating simple patterns into formulas and using them ≥7/8 · Explanation — what does the variable represent in the formula, and why must it be defined? · Transfer — write a formula for a pattern with 5 tiles in figure 1 and 3 more each figure.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.POL.01",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Polynomial vocabulary (terms, degree, coefficients)",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 23,
      "id": "ALG.POL.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Polynomial vocabulary (terms, degree, coefficients): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Polynomial vocabulary (terms, degree, coefficients).",
      "content": "A polynomial is built from terms; each term has a coefficient and variable power, and the highest power names the degree.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.POL.01",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Polynomial vocabulary (terms, degree, coefficients)",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 23,
      "id": "ALG.POL.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Polynomial vocabulary (terms, degree, coefficients): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Polynomial vocabulary (terms, degree, coefficients).",
      "content": "4x² − 3x + 7 has three terms. The coefficient of x² is 4, the coefficient of x is −3, the constant is 7, and the degree is 2.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.POL.01",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Polynomial vocabulary (terms, degree, coefficients)",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 23,
      "id": "ALG.POL.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Polynomial vocabulary (terms, degree, coefficients): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Polynomial vocabulary (terms, degree, coefficients) into personal, civic/data, and career contexts.",
      "content": "Personal — identify parts of a game-score formula with bonus powers. · Civic/Data — read a simple projection formula and name its constant and variable terms. · Career — inspect an area-cost expression before simplifying it.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.POL.01",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Polynomial vocabulary (terms, degree, coefficients)",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 23,
      "id": "ALG.POL.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Polynomial vocabulary (terms, degree, coefficients): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Polynomial vocabulary (terms, degree, coefficients).",
      "content": "Accuracy — 8 vocabulary items naming terms, coefficients, constants, powers, and degree ≥7/8 · Explanation — why does the highest power determine degree? · Transfer — annotate −2a³ + 5a − 9.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.POL.02",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Adding and subtracting polynomials",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 24,
      "id": "ALG.POL.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Adding and subtracting polynomials: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Adding and subtracting polynomials.",
      "content": "Adding and subtracting polynomials means combining like terms while keeping unlike powers separate.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.POL.02",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Adding and subtracting polynomials",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 24,
      "id": "ALG.POL.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Adding and subtracting polynomials: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Adding and subtracting polynomials.",
      "content": "(3x² + 4x − 1) + (2x² − x + 6) = 5x² + 3x + 5. Subtraction requires distributing the negative first.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.POL.02",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Adding and subtracting polynomials",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 24,
      "id": "ALG.POL.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Adding and subtracting polynomials: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Adding and subtracting polynomials into personal, civic/data, and career contexts.",
      "content": "Personal — combine two reward formulas that include regular and bonus terms. · Civic/Data — add two trend expressions from separate districts. · Career — combine area expressions for connected garden beds.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.POL.02",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Adding and subtracting polynomials",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 24,
      "id": "ALG.POL.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Adding and subtracting polynomials: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Adding and subtracting polynomials.",
      "content": "Accuracy — 8 add/subtract polynomial items, including negative brackets ≥7/8 · Explanation — why can x² and x terms not combine? · Transfer — simplify (5n² − 2n + 4) − (n² + 3n − 8).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.POL.03",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Multiplying monomials",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 25,
      "id": "ALG.POL.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Multiplying monomials: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Multiplying monomials.",
      "content": "Multiplying monomials multiplies coefficients and adds exponents on like bases because repeated factors are being joined.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.POL.03",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Multiplying monomials",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 25,
      "id": "ALG.POL.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Multiplying monomials: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Multiplying monomials.",
      "content": "3x² · 4x³ = 12x⁵. The x factors are x·x and x·x·x, five x factors altogether.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.POL.03",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Multiplying monomials",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 25,
      "id": "ALG.POL.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Multiplying monomials: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Multiplying monomials into personal, civic/data, and career contexts.",
      "content": "Personal — scale a square-area expression by a number of panels. · Civic/Data — multiply simple growth factors in a model. · Career — calculate an area expression from algebraic length and width.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.POL.03",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Multiplying monomials",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 25,
      "id": "ALG.POL.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Multiplying monomials: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Multiplying monomials.",
      "content": "Accuracy — 8 monomial products with coefficients, powers, and signs ≥7/8 · Explanation — why do exponents add when multiplying same bases? · Transfer — multiply −2a³ · 5a².",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.POL.04",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Multiplying binomials (area model → FOIL)",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 26,
      "id": "ALG.POL.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Multiplying binomials (area model → FOIL): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Multiplying binomials (area model → FOIL).",
      "content": "Multiplying binomials means every term in one bracket multiplies every term in the other; an area model shows all four partial products.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.POL.04",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Multiplying binomials (area model → FOIL)",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 26,
      "id": "ALG.POL.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Multiplying binomials (area model → FOIL): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Multiplying binomials (area model → FOIL).",
      "content": "(x + 3)(x + 5) = x² + 5x + 3x + 15 = x² + 8x + 15.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.POL.04",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Multiplying binomials (area model → FOIL)",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 26,
      "id": "ALG.POL.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Multiplying binomials (area model → FOIL): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Multiplying binomials (area model → FOIL) into personal, civic/data, and career contexts.",
      "content": "Personal — find the area of a rectangular poster with sides x + 3 and x + 5. · Civic/Data — model a park expansion with both length and width increasing. · Career — calculate flooring area from algebraic dimensions.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.POL.04",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Multiplying binomials (area model → FOIL)",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 26,
      "id": "ALG.POL.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Multiplying binomials (area model → FOIL): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Multiplying binomials (area model → FOIL).",
      "content": "Accuracy — 8 binomial products using area grids or distribution ≥7/8 · Explanation — where does the middle term come from? · Transfer — expand (a − 4)(a + 2).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.POL.05",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Special products — squares and difference of squares",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 27,
      "id": "ALG.POL.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Special products — squares and difference of squares: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Special products — squares and difference of squares.",
      "content": "Some binomial products have reusable patterns: square a binomial by keeping both middle products, and difference of squares creates no middle term.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.POL.05",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Special products — squares and difference of squares",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 27,
      "id": "ALG.POL.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Special products — squares and difference of squares: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Special products — squares and difference of squares.",
      "content": "(x + 4)² = x² + 8x + 16, not x² + 16. (x + 4)(x − 4) = x² − 16 because the middle terms cancel.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.POL.05",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Special products — squares and difference of squares",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 27,
      "id": "ALG.POL.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Special products — squares and difference of squares: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Special products — squares and difference of squares into personal, civic/data, and career contexts.",
      "content": "Personal — calculate the area of a square stage extended by 4 metres each side. · Civic/Data — compare two nearly equal rectangular dimensions with difference of squares. · Career — use special products to speed repeated design calculations.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.POL.05",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Special products — squares and difference of squares",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 27,
      "id": "ALG.POL.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Special products — squares and difference of squares: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Special products — squares and difference of squares.",
      "content": "Accuracy — 8 special-product expansions and error checks ≥7/8 · Explanation — why does (x + 4)² need a middle term? · Transfer — expand (2n − 3)².",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.POL.06",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Factoring trinomials (intro)",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 28,
      "id": "ALG.POL.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Factoring trinomials (intro): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Factoring trinomials (intro).",
      "content": "Factoring a simple trinomial reverses binomial multiplication by finding two numbers whose product is the constant term and whose sum is the middle coefficient.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.POL.06",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Factoring trinomials (intro)",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 28,
      "id": "ALG.POL.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Factoring trinomials (intro): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Factoring trinomials (intro).",
      "content": "x² + 7x + 12 factors as (x + 3)(x + 4) because 3×4 = 12 and 3+4 = 7.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.POL.06",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Factoring trinomials (intro)",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 28,
      "id": "ALG.POL.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Factoring trinomials (intro): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Factoring trinomials (intro) into personal, civic/data, and career contexts.",
      "content": "Personal — reverse an area expression to find possible side lengths. · Civic/Data — factor a simple model before finding when it reaches zero. · Career — recover rectangle dimensions from an area expression.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.POL.06",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Factoring trinomials (intro)",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 28,
      "id": "ALG.POL.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Factoring trinomials (intro): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Factoring trinomials (intro).",
      "content": "Accuracy — 8 simple monic trinomial factorings with expansion checks ≥7/8 · Explanation — how do product and sum connect to the trinomial terms? · Transfer — factor x² − x − 20.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.POL.07",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Factoring with common factors first",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 29,
      "id": "ALG.POL.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Factoring with common factors first: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Factoring with common factors first.",
      "content": "Before using more advanced factoring, remove the greatest common factor so the remaining expression is simpler and structure is visible.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.POL.07",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Factoring with common factors first",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 29,
      "id": "ALG.POL.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Factoring with common factors first: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Factoring with common factors first.",
      "content": "3x² + 12x = 3x(x + 4). For 2x² + 10x + 12, factor 2 first: 2(x² + 5x + 6) = 2(x + 2)(x + 3).",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.POL.07",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Factoring with common factors first",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 29,
      "id": "ALG.POL.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Factoring with common factors first: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Factoring with common factors first into personal, civic/data, and career contexts.",
      "content": "Personal — factor a points formula with every term sharing a multiplier. · Civic/Data — simplify a cost expression where every category repeats across districts. · Career — factor a materials expression by a shared panel count.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.POL.07",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Factoring with common factors first",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 29,
      "id": "ALG.POL.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Factoring with common factors first: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Factoring with common factors first.",
      "content": "Accuracy — 8 items requiring GCF first, then optional trinomial factoring ≥7/8 · Explanation — why is factoring the GCF first safer? · Transfer — factor 4n² − 20n.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.POL.08",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Polynomial identities — proving equivalence",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 30,
      "id": "ALG.POL.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Polynomial identities — proving equivalence: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Polynomial identities — proving equivalence.",
      "content": "A polynomial identity is true for every allowed value; expansion, factoring, and collecting like terms can prove the two sides are always equivalent.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.POL.08",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Polynomial identities — proving equivalence",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 30,
      "id": "ALG.POL.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Polynomial identities — proving equivalence: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Polynomial identities — proving equivalence.",
      "content": "(x + 2)² − x² = 4x + 4. Expand the left: x² + 4x + 4 − x² = 4x + 4, so the identity holds.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.POL.08",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Polynomial identities — proving equivalence",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 30,
      "id": "ALG.POL.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Polynomial identities — proving equivalence: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Polynomial identities — proving equivalence into personal, civic/data, and career contexts.",
      "content": "Personal — prove two scoring shortcuts always match. · Civic/Data — verify an alternate published formula for a budget calculation. · Career — check that two spreadsheet formulas are equivalent before replacing one.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.POL.08",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Polynomial identities — proving equivalence",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 30,
      "id": "ALG.POL.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Polynomial identities — proving equivalence: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Polynomial identities — proving equivalence.",
      "content": "Accuracy — 8 identity checks using expansion, simplification, or counterexample ≥7/8 · Explanation — why is testing x = 1 not a proof? · Transfer — prove or disprove (x − 3)(x + 3) = x² − 9.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.POL.09",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Substitution checks and counterexamples",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 31,
      "id": "ALG.POL.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Substitution checks and counterexamples: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Substitution checks and counterexamples.",
      "content": "Substitution can quickly disprove a false identity with one counterexample, but proving a true identity requires algebraic reasoning.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.POL.09",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Substitution checks and counterexamples",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 31,
      "id": "ALG.POL.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Substitution checks and counterexamples: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Substitution checks and counterexamples.",
      "content": "Claim: (x + 5)² = x² + 25. Test x = 1: 36 ≠ 26, so the claim is false. The missing 10x term explains the error.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.POL.09",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Substitution checks and counterexamples",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 31,
      "id": "ALG.POL.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Substitution checks and counterexamples: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Substitution checks and counterexamples into personal, civic/data, and career contexts.",
      "content": "Personal — test a friend's shortcut for squaring totals. · Civic/Data — check whether a simplified chart formula fails for a sample year. · Career — find a counterexample to a faulty quote formula before it is used.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.POL.09",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Substitution checks and counterexamples",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 31,
      "id": "ALG.POL.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Substitution checks and counterexamples: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Substitution checks and counterexamples.",
      "content": "Accuracy — 8 items finding counterexamples or proving equivalence as appropriate ≥7/8 · Explanation — why does one counterexample defeat a universal claim? · Transfer — test and explain whether 2(x + 4) = 2x + 4.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.POL.10",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Polynomials in geometry (areas, volumes as expressions)",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 32,
      "id": "ALG.POL.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Polynomials in geometry (areas, volumes as expressions): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Polynomials in geometry (areas, volumes as expressions).",
      "content": "Polynomial expressions often represent geometric measures; diagrams and units help keep lengths, areas, and volumes correctly separated.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.POL.10",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Polynomials in geometry (areas, volumes as expressions)",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 32,
      "id": "ALG.POL.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Polynomials in geometry (areas, volumes as expressions): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Polynomials in geometry (areas, volumes as expressions).",
      "content": "A rectangle with sides x + 2 and x + 6 has area (x + 2)(x + 6) = x² + 8x + 12 square units.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.POL.10",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Polynomials in geometry (areas, volumes as expressions)",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 32,
      "id": "ALG.POL.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Polynomials in geometry (areas, volumes as expressions): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Polynomials in geometry (areas, volumes as expressions) into personal, civic/data, and career contexts.",
      "content": "Personal — calculate a room-area expression after adding width to both sides. · Civic/Data — model park area after extending a rectangular field. · Career — write a volume expression for a box with algebraic dimensions.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.POL.10",
      "clusterId": "ALG.POL",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Polynomials in geometry (areas, volumes as expressions)",
      "clusterTitle": "Polynomials & Identities (ALG.POL)",
      "band": "8+",
      "hardLevel": 32,
      "id": "ALG.POL.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Polynomials in geometry (areas, volumes as expressions): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Polynomials in geometry (areas, volumes as expressions).",
      "content": "Accuracy — 8 geometry-to-polynomial items with units and expansion/factoring checks ≥7/8 · Explanation — why does multiplying two lengths produce square units? · Transfer — write and expand the area of a garden with sides 2x and x + 5.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.QUA.01",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Quadratic patterns — second differences",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 47,
      "id": "ALG.QUA.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Quadratic patterns — second differences: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Quadratic patterns — second differences.",
      "content": "Quadratic patterns do not have constant first differences, but their second differences are constant when inputs step evenly.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.QUA.01",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Quadratic patterns — second differences",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 47,
      "id": "ALG.QUA.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Quadratic patterns — second differences: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Quadratic patterns — second differences.",
      "content": "Outputs 1, 4, 9, 16, 25 have first differences 3, 5, 7, 9 and second differences 2, 2, 2, so the pattern is quadratic.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.QUA.01",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Quadratic patterns — second differences",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 47,
      "id": "ALG.QUA.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Quadratic patterns — second differences: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Quadratic patterns — second differences into personal, civic/data, and career contexts.",
      "content": "Personal — count square-number tile designs as side length grows. · Civic/Data — inspect a table of area from growing square plots. · Career — recognize a production-area pattern that grows faster than linearly.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.QUA.01",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Quadratic patterns — second differences",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 47,
      "id": "ALG.QUA.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Quadratic patterns — second differences: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Quadratic patterns — second differences.",
      "content": "Accuracy — 8 table items finding first and second differences ≥7/8 · Explanation — how do second differences distinguish quadratic from linear? · Transfer — classify a new table as linear, quadratic, or neither.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.QUA.02",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Parabolas — the shape of x²",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 48,
      "id": "ALG.QUA.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Parabolas — the shape of x²: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Parabolas — the shape of x².",
      "content": "The graph of a quadratic is a parabola: a symmetric curve that opens upward for positive x² coefficient and downward for negative coefficient.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.QUA.02",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Parabolas — the shape of x²",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 48,
      "id": "ALG.QUA.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Parabolas — the shape of x²: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Parabolas — the shape of x².",
      "content": "y = x² gives points (−2, 4), (−1, 1), (0, 0), (1, 1), (2, 4), forming a U-shaped curve symmetric about the y-axis.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.QUA.02",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Parabolas — the shape of x²",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 48,
      "id": "ALG.QUA.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Parabolas — the shape of x²: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Parabolas — the shape of x² into personal, civic/data, and career contexts.",
      "content": "Personal — graph the area of a square as side length changes. · Civic/Data — view a simple curved trend rather than forcing a straight line. · Career — recognize a parabolic arch in a design sketch.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.QUA.02",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Parabolas — the shape of x²",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 48,
      "id": "ALG.QUA.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Parabolas — the shape of x²: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Parabolas — the shape of x².",
      "content": "Accuracy — 8 graphing/recognition items for basic parabolas ≥7/8 · Explanation — why do x = 2 and x = −2 give the same y for x²? · Transfer — sketch key points for y = −x².",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.QUA.03",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Roots, vertex, and symmetry from graphs",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 49,
      "id": "ALG.QUA.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Roots, vertex, and symmetry from graphs: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Roots, vertex, and symmetry from graphs.",
      "content": "A quadratic graph reveals roots where it crosses the x-axis, a vertex at its turning point, and an axis of symmetry through the vertex.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.QUA.03",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Roots, vertex, and symmetry from graphs",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 49,
      "id": "ALG.QUA.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Roots, vertex, and symmetry from graphs: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Roots, vertex, and symmetry from graphs.",
      "content": "A parabola crossing at x = 1 and x = 5 has axis of symmetry halfway at x = 3. If the lowest point is (3, −4), that point is the vertex.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.QUA.03",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Roots, vertex, and symmetry from graphs",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 49,
      "id": "ALG.QUA.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Roots, vertex, and symmetry from graphs: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Roots, vertex, and symmetry from graphs into personal, civic/data, and career contexts.",
      "content": "Personal — read when a thrown ball is at ground level from a height graph. · Civic/Data — find the minimum point on a curved cost graph. · Career — identify the highest point of a simple arch model.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.QUA.03",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Roots, vertex, and symmetry from graphs",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 49,
      "id": "ALG.QUA.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Roots, vertex, and symmetry from graphs: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Roots, vertex, and symmetry from graphs.",
      "content": "Accuracy — 8 graph-reading items naming roots, vertex, and symmetry line ≥7/8 · Explanation — why is the axis halfway between matching points? · Transfer — read features from a supplied parabola graph.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.QUA.04",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Solving x² = k and square-root thinking",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 50,
      "id": "ALG.QUA.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Solving x² = k and square-root thinking: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Solving x² = k and square-root thinking.",
      "content": "Solving x² = k asks which numbers square to k; positive k usually gives two opposite solutions, zero gives one, and negative k has no real solution at this level.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.QUA.04",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Solving x² = k and square-root thinking",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 50,
      "id": "ALG.QUA.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Solving x² = k and square-root thinking: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Solving x² = k and square-root thinking.",
      "content": "x² = 49 gives x = 7 or x = −7 because both square to 49. x² = 0 gives x = 0.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.QUA.04",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Solving x² = k and square-root thinking",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 50,
      "id": "ALG.QUA.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Solving x² = k and square-root thinking: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Solving x² = k and square-root thinking into personal, civic/data, and career contexts.",
      "content": "Personal — find possible side directions from a squared distance value. · Civic/Data — solve a square-area problem with side length unknown. · Career — recover a dimension from a squared measurement.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.QUA.04",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Solving x² = k and square-root thinking",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 50,
      "id": "ALG.QUA.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Solving x² = k and square-root thinking: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Solving x² = k and square-root thinking.",
      "content": "Accuracy — 8 square-root equation items including two-solution and no-real-solution cases ≥7/8 · Explanation — why does x² = 25 have two solutions? · Transfer — solve x² = 18 approximately between integers.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.QUA.05",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Solving by factoring (zero product)",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 51,
      "id": "ALG.QUA.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Solving by factoring (zero product): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Solving by factoring (zero product).",
      "content": "If a product equals zero, at least one factor must be zero; factoring a quadratic turns it into simpler linear equations.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.QUA.05",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Solving by factoring (zero product)",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 51,
      "id": "ALG.QUA.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Solving by factoring (zero product): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Solving by factoring (zero product).",
      "content": "x² + 5x + 6 = 0 factors as (x + 2)(x + 3) = 0, so x = −2 or x = −3.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.QUA.05",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Solving by factoring (zero product)",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 51,
      "id": "ALG.QUA.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Solving by factoring (zero product): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Solving by factoring (zero product) into personal, civic/data, and career contexts.",
      "content": "Personal — find when a rectangular area expression reaches a target after moving all terms to zero. · Civic/Data — solve when a curved model crosses a baseline. · Career — determine break-even points from a simple quadratic profit expression.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.QUA.05",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Solving by factoring (zero product)",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 51,
      "id": "ALG.QUA.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Solving by factoring (zero product): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Solving by factoring (zero product).",
      "content": "Accuracy — 8 factor-and-solve items with checks in the original equation ≥7/8 · Explanation — why can you set each factor equal to zero? · Transfer — solve x² − 7x + 10 = 0.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.QUA.06",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Quadratics in projectile and area contexts",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 52,
      "id": "ALG.QUA.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Quadratics in projectile and area contexts: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Quadratics in projectile and area contexts.",
      "content": "Quadratics model situations where change itself changes, such as height under gravity or area when two dimensions vary together.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.QUA.06",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Quadratics in projectile and area contexts",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 52,
      "id": "ALG.QUA.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Quadratics in projectile and area contexts: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Quadratics in projectile and area contexts.",
      "content": "A ball's height h = −5t² + 20t starts at 0, rises, then returns to 0. Factoring −5t(t − 4) shows it lands at t = 4 seconds.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.QUA.06",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Quadratics in projectile and area contexts",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 52,
      "id": "ALG.QUA.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Quadratics in projectile and area contexts: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Quadratics in projectile and area contexts into personal, civic/data, and career contexts.",
      "content": "Personal — estimate when a basketball shot returns to hoop height in a simplified model. · Civic/Data — model the area of a rectangular community garden as both sides change. · Career — use a simplified safety arc for a fountain or thrown object.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.QUA.06",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Quadratics in projectile and area contexts",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 52,
      "id": "ALG.QUA.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Quadratics in projectile and area contexts: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Quadratics in projectile and area contexts.",
      "content": "Accuracy — 8 context items interpreting roots, vertex, and sensible domain ≥7/8 · Explanation — why is negative time rejected in projectile contexts? · Transfer — interpret the roots of a simple area-target equation.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.QUA.07",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Comparing linear and quadratic growth",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 62,
      "id": "ALG.QUA.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Comparing linear and quadratic growth: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Comparing linear and quadratic growth.",
      "content": "Linear growth adds equal amounts; quadratic growth accelerates with constant second differences and eventually outpaces linear growth.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.QUA.07",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Comparing linear and quadratic growth",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 62,
      "id": "ALG.QUA.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Comparing linear and quadratic growth: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Comparing linear and quadratic growth.",
      "content": "y = 5x grows by 5 each step, while y = x² grows by 1, 3, 5, 7, 9... At first the line can be larger, but the square curve eventually overtakes.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.QUA.07",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Comparing linear and quadratic growth",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 62,
      "id": "ALG.QUA.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Comparing linear and quadratic growth: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Comparing linear and quadratic growth into personal, civic/data, and career contexts.",
      "content": "Personal — compare steady savings with a square-number challenge. · Civic/Data — contrast a constant yearly increase with area expansion. · Career — decide whether cost grows per item or with item pairs/interactions.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.QUA.07",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Comparing linear and quadratic growth",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 62,
      "id": "ALG.QUA.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Comparing linear and quadratic growth: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Comparing linear and quadratic growth.",
      "content": "Accuracy — 8 comparison items using tables, graphs, and context explanations ≥7/8 · Explanation — how can a quadratic start slower and later become larger? · Transfer — compare y = 3x + 10 and y = x² at selected x values.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.QUA.08",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Quadratic tables → equations (intro)",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 63,
      "id": "ALG.QUA.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Quadratic tables → equations (intro): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Quadratic tables → equations (intro).",
      "content": "Simple quadratic tables can be matched to equations by testing features such as starting value, symmetry, and known outputs.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.QUA.08",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Quadratic tables → equations (intro)",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 63,
      "id": "ALG.QUA.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Quadratic tables → equations (intro): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Quadratic tables → equations (intro).",
      "content": "A table with x values −2, −1, 0, 1, 2 and y values 4, 1, 0, 1, 4 matches y = x². Adding 3 to every output would match y = x² + 3.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.QUA.08",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Quadratic tables → equations (intro)",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 63,
      "id": "ALG.QUA.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Quadratic tables → equations (intro): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Quadratic tables → equations (intro) into personal, civic/data, and career contexts.",
      "content": "Personal — match square-tile counts to a formula. · Civic/Data — choose a simple curved model for area data. · Career — fit a basic quadratic expression to symmetric design measurements.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.QUA.08",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Quadratic tables → equations (intro)",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 63,
      "id": "ALG.QUA.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Quadratic tables → equations (intro): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Quadratic tables → equations (intro).",
      "content": "Accuracy — 8 match-table-to-equation items using substitution and graph features ≥7/8 · Explanation — why does testing several rows matter? · Transfer — choose between y = x² + 2 and y = 2x² for a supplied table.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.QUA.09",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Maximum and minimum in context",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 64,
      "id": "ALG.QUA.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Maximum and minimum in context: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Maximum and minimum in context.",
      "content": "The vertex gives a quadratic model's maximum or minimum value; the opening direction tells whether the vertex is highest or lowest.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.QUA.09",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Maximum and minimum in context",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 64,
      "id": "ALG.QUA.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Maximum and minimum in context: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Maximum and minimum in context.",
      "content": "A downward-opening height graph has its maximum at the vertex. If the vertex is (2, 18), the object reaches 18 metres at 2 seconds.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.QUA.09",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Maximum and minimum in context",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 64,
      "id": "ALG.QUA.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Maximum and minimum in context: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Maximum and minimum in context into personal, civic/data, and career contexts.",
      "content": "Personal — find the peak height of a kicked ball from a graph. · Civic/Data — identify the minimum cost point in a curved cost model. · Career — choose dimensions that maximize area under a simplified constraint.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.QUA.09",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Maximum and minimum in context",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 64,
      "id": "ALG.QUA.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Maximum and minimum in context: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Maximum and minimum in context.",
      "content": "Accuracy — 8 vertex interpretation items from graphs and tables ≥7/8 · Explanation — how does opening upward vs downward change the meaning of the vertex? · Transfer — read the minimum value from a supplied parabola and state its input.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.QUA.10",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "When quadratic models fit (and when not)",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 65,
      "id": "ALG.QUA.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "When quadratic models fit (and when not): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of When quadratic models fit (and when not).",
      "content": "Quadratic models are useful for curved patterns with changing rates, but they should be checked against data, units, domain, and realistic boundaries.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.QUA.10",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "When quadratic models fit (and when not)",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 65,
      "id": "ALG.QUA.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "When quadratic models fit (and when not): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for When quadratic models fit (and when not).",
      "content": "A square-area model fits area vs side length, but a quadratic trend line for population may fail if projected far beyond the observed years.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.QUA.10",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "When quadratic models fit (and when not)",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 65,
      "id": "ALG.QUA.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "When quadratic models fit (and when not): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer When quadratic models fit (and when not) into personal, civic/data, and career contexts.",
      "content": "Personal — decide whether a viral-view curve should keep being modeled as quadratic. · Civic/Data — question a curved projection used in a council report. · Career — choose between linear and quadratic models for production waste data.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.QUA.10",
      "clusterId": "ALG.QUA",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "When quadratic models fit (and when not)",
      "clusterTitle": "Quadratics (intro) (ALG.QUA)",
      "band": "8+",
      "hardLevel": 65,
      "id": "ALG.QUA.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "When quadratic models fit (and when not): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond When quadratic models fit (and when not).",
      "content": "Accuracy — 8 model-choice items with justification and domain cautions ≥7/8 · Explanation — what evidence would make you reject a quadratic model? · Transfer — decide whether a given table and context should use a linear, quadratic, or other model.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.RAD.01",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Square roots of non-perfect squares",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 22,
      "id": "ALG.RAD.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Square roots of non-perfect squares: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Square roots of non-perfect squares.",
      "content": "Some square roots are not whole numbers; they can be estimated between perfect squares and represented exactly with radical notation.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.RAD.01",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Square roots of non-perfect squares",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 22,
      "id": "ALG.RAD.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Square roots of non-perfect squares: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Square roots of non-perfect squares.",
      "content": "√20 is between √16 = 4 and √25 = 5, so √20 is between 4 and 5. Since 20 is not a perfect square, √20 is irrational.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.RAD.01",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Square roots of non-perfect squares",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 22,
      "id": "ALG.RAD.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Square roots of non-perfect squares: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Square roots of non-perfect squares into personal, civic/data, and career contexts.",
      "content": "Personal — estimate the diagonal of a square screen when the squared length is not a perfect square. · Civic/Data — interpret a map-distance calculation that gives √50 km. · Career — estimate a construction diagonal from a right-triangle measurement.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.RAD.01",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Square roots of non-perfect squares",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 22,
      "id": "ALG.RAD.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Square roots of non-perfect squares: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Square roots of non-perfect squares.",
      "content": "Accuracy — 8 items estimating and locating square roots between integers ≥7/8 · Explanation — why is √20 not equal to 10 or 4.5 exactly? · Transfer — place √72 between two whole numbers and justify.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.RAD.02",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Simplifying radicals",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 23,
      "id": "ALG.RAD.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Simplifying radicals: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Simplifying radicals.",
      "content": "A radical can be simplified by factoring out perfect-square factors while keeping the exact value unchanged.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.RAD.02",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Simplifying radicals",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 23,
      "id": "ALG.RAD.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Simplifying radicals: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Simplifying radicals.",
      "content": "√48 = √(16×3) = 4√3. This is simpler but equal to the original value.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.RAD.02",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Simplifying radicals",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 23,
      "id": "ALG.RAD.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Simplifying radicals: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Simplifying radicals into personal, civic/data, and career contexts.",
      "content": "Personal — simplify a diagonal length before comparing screen sizes. · Civic/Data — express a map-distance result in simpler exact form. · Career — simplify a measurement formula for a design note.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.RAD.02",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Simplifying radicals",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 23,
      "id": "ALG.RAD.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Simplifying radicals: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Simplifying radicals.",
      "content": "Accuracy — 8 radical simplification items using perfect-square factors ≥7/8 · Explanation — how does expanding 4√3 check √48? · Transfer — simplify √75.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.RAD.03",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Operations with radicals (add, multiply)",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 24,
      "id": "ALG.RAD.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Operations with radicals (add, multiply): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Operations with radicals (add, multiply).",
      "content": "Like radicals can be added by combining coefficients, and radicals multiply by multiplying radicands before simplifying.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.RAD.03",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Operations with radicals (add, multiply)",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 24,
      "id": "ALG.RAD.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Operations with radicals (add, multiply): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Operations with radicals (add, multiply).",
      "content": "2√5 + 3√5 = 5√5. But 2√5 + 3√2 cannot combine. Multiplication: √6·√3 = √18 = 3√2.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.RAD.03",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Operations with radicals (add, multiply)",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 24,
      "id": "ALG.RAD.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Operations with radicals (add, multiply): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Operations with radicals (add, multiply) into personal, civic/data, and career contexts.",
      "content": "Personal — combine equal diagonal lengths in a craft plan. · Civic/Data — add matching radical distance estimates in a map route. · Career — multiply radical side lengths in an exact area calculation.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.RAD.03",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Operations with radicals (add, multiply)",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 24,
      "id": "ALG.RAD.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Operations with radicals (add, multiply): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Operations with radicals (add, multiply).",
      "content": "Accuracy — 8 add/multiply radical items with simplification ≥7/8 · Explanation — why can √5 and √2 not be added into √7? · Transfer — simplify 4√3 + 2√3 and √8·√2.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.RAD.04",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Rationalizing simple denominators",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 25,
      "id": "ALG.RAD.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Rationalizing simple denominators: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Rationalizing simple denominators.",
      "content": "Rationalizing rewrites a fraction so the denominator has no radical, using an equivalent form multiplied by 1.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.RAD.04",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Rationalizing simple denominators",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 25,
      "id": "ALG.RAD.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Rationalizing simple denominators: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Rationalizing simple denominators.",
      "content": "5/√2 = 5/√2 × √2/√2 = 5√2/2. The value is unchanged because √2/√2 = 1.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.RAD.04",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Rationalizing simple denominators",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 25,
      "id": "ALG.RAD.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Rationalizing simple denominators: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Rationalizing simple denominators into personal, civic/data, and career contexts.",
      "content": "Personal — rewrite an exact screen-ratio calculation in standard form. · Civic/Data — present a map-scale formula with a rational denominator. · Career — clean up an engineering formula for consistent reporting.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.RAD.04",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Rationalizing simple denominators",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 25,
      "id": "ALG.RAD.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Rationalizing simple denominators: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Rationalizing simple denominators.",
      "content": "Accuracy — 8 simple rationalizing items with value-preserving explanations ≥7/8 · Explanation — why is multiplying by √2/√2 allowed? · Transfer — rationalize 3/√5.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.RAD.05",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Radical equations (one step)",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 26,
      "id": "ALG.RAD.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Radical equations (one step): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Radical equations (one step).",
      "content": "One-step radical equations can be solved by isolating the radical, then squaring both sides and checking for validity.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.RAD.05",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Radical equations (one step)",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 26,
      "id": "ALG.RAD.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Radical equations (one step): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Radical equations (one step).",
      "content": "√x = 6 gives x = 36. For √(x + 1) = 5, square both sides to get x + 1 = 25, so x = 24. Check: √25 = 5.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.RAD.05",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Radical equations (one step)",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 26,
      "id": "ALG.RAD.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Radical equations (one step): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Radical equations (one step) into personal, civic/data, and career contexts.",
      "content": "Personal — solve for a missing squared distance from a diagonal measurement. · Civic/Data — recover a variance-like value from a square-root summary. · Career — find a missing side-length expression in a design formula.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.RAD.05",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Radical equations (one step)",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 26,
      "id": "ALG.RAD.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Radical equations (one step): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Radical equations (one step).",
      "content": "Accuracy — 8 one-step radical equations with substitution checks ≥7/8 · Explanation — why is checking important after squaring? · Transfer — solve √(n − 4) = 7.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.RAD.06",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Rational expressions — when defined",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 27,
      "id": "ALG.RAD.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Rational expressions — when defined: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Rational expressions — when defined.",
      "content": "A rational expression is a fraction with variables; it is undefined when the denominator is zero.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.RAD.06",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Rational expressions — when defined",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 27,
      "id": "ALG.RAD.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Rational expressions — when defined: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Rational expressions — when defined.",
      "content": "8/(x − 3) is undefined at x = 3 because the denominator becomes 0. Every other x value is allowed.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.RAD.06",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Rational expressions — when defined",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 27,
      "id": "ALG.RAD.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Rational expressions — when defined: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Rational expressions — when defined into personal, civic/data, and career contexts.",
      "content": "Personal — understand why splitting a bill among zero people is impossible. · Civic/Data — identify when a rate formula has no meaning because the base count is zero. · Career — check a spreadsheet ratio before dividing by a missing quantity.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.RAD.06",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Rational expressions — when defined",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 27,
      "id": "ALG.RAD.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Rational expressions — when defined: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Rational expressions — when defined.",
      "content": "Accuracy — 8 domain-restriction items for rational expressions ≥7/8 · Explanation — why is division by zero not allowed? · Transfer — state excluded values for 5/(2x + 6).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.RAD.07",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Simplifying rational expressions",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 28,
      "id": "ALG.RAD.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Simplifying rational expressions: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Simplifying rational expressions.",
      "content": "Rational expressions simplify by factoring numerator and denominator, then canceling common factors while keeping excluded values in mind.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.RAD.07",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Simplifying rational expressions",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 28,
      "id": "ALG.RAD.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Simplifying rational expressions: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Simplifying rational expressions.",
      "content": "(x² + 3x)/(x) = x(x + 3)/x = x + 3, with x ≠ 0. The simplified form hides the original restriction.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.RAD.07",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Simplifying rational expressions",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 28,
      "id": "ALG.RAD.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Simplifying rational expressions: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Simplifying rational expressions into personal, civic/data, and career contexts.",
      "content": "Personal — simplify a rate formula while noting impossible inputs. · Civic/Data — reduce a per-household expression with a shared factor. · Career — simplify a materials ratio used in a quote template.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.RAD.07",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Simplifying rational expressions",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 28,
      "id": "ALG.RAD.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Simplifying rational expressions: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Simplifying rational expressions.",
      "content": "Accuracy — 8 rational-expression simplifications plus excluded values ≥7/8 · Explanation — why must x ≠ 0 still be stated after canceling x? · Transfer — simplify (2n² + 6n)/(2n).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.RAD.08",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Unit analysis with rational forms",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 29,
      "id": "ALG.RAD.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Unit analysis with rational forms: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Unit analysis with rational forms.",
      "content": "Rational expressions often represent rates; units in the numerator and denominator explain the meaning and catch setup errors.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.RAD.08",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Unit analysis with rational forms",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 29,
      "id": "ALG.RAD.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Unit analysis with rational forms: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Unit analysis with rational forms.",
      "content": "Distance/time has units kilometres/hour. If distance is 180 km and time is t hours, speed = 180/t km/h, with t > 0.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.RAD.08",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Unit analysis with rational forms",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 29,
      "id": "ALG.RAD.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Unit analysis with rational forms: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Unit analysis with rational forms into personal, civic/data, and career contexts.",
      "content": "Personal — write average pace as distance divided by time. · Civic/Data — express people per square kilometre for population density. · Career — calculate cost per unit from total cost divided by units produced.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.RAD.08",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Unit analysis with rational forms",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 29,
      "id": "ALG.RAD.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Unit analysis with rational forms: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Unit analysis with rational forms.",
      "content": "Accuracy — 8 unit-analysis items writing and interpreting rational forms ≥7/8 · Explanation — how do units reveal whether a ratio is upside down? · Transfer — write fuel efficiency as kilometres per litre and state the denominator restriction.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.RAD.09",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Inverse variation y = k/x",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 30,
      "id": "ALG.RAD.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Inverse variation y = k/x: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Inverse variation y = k/x.",
      "content": "In inverse variation, the product xy stays constant; as one variable increases, the other decreases proportionally.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.RAD.09",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Inverse variation y = k/x",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 30,
      "id": "ALG.RAD.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Inverse variation y = k/x: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Inverse variation y = k/x.",
      "content": "If y = 24/x, then x = 3 gives y = 8 and x = 6 gives y = 4. In both cases xy = 24.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.RAD.09",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Inverse variation y = k/x",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 30,
      "id": "ALG.RAD.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Inverse variation y = k/x: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Inverse variation y = k/x into personal, civic/data, and career contexts.",
      "content": "Personal — split a fixed number of chores among more people. · Civic/Data — model time to finish a cleanup as volunteer count changes. · Career — estimate days needed when more workers share the same job.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.RAD.09",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Inverse variation y = k/x",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 30,
      "id": "ALG.RAD.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Inverse variation y = k/x: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Inverse variation y = k/x.",
      "content": "Accuracy — 8 inverse-variation tables and context items ≥7/8 · Explanation — why does doubling x halve y when k is fixed? · Transfer — complete a table for y = 60/x.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.RAD.10",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Radical and rational models in formulas",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 31,
      "id": "ALG.RAD.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Radical and rational models in formulas: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Radical and rational models in formulas.",
      "content": "Radical and rational forms appear in real formulas; interpreting them requires attention to domain, units, and whether the model assumptions fit.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.RAD.10",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Radical and rational models in formulas",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 31,
      "id": "ALG.RAD.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Radical and rational models in formulas: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Radical and rational models in formulas.",
      "content": "Time = distance/speed requires speed > 0. A diagonal formula d = √(l² + w²) requires nonnegative lengths and returns a length unit.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.RAD.10",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Radical and rational models in formulas",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 31,
      "id": "ALG.RAD.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Radical and rational models in formulas: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Radical and rational models in formulas into personal, civic/data, and career contexts.",
      "content": "Personal — use a diagonal formula for screen or room measurements. · Civic/Data — interpret density and rate formulas from public reports. · Career — apply a speed, area, or design formula while checking allowed inputs.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.RAD.10",
      "clusterId": "ALG.RAD",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Radical and rational models in formulas",
      "clusterTitle": "Radicals & Rational Expressions (intro) (ALG.RAD)",
      "band": "8+",
      "hardLevel": 31,
      "id": "ALG.RAD.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Radical and rational models in formulas: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Radical and rational models in formulas.",
      "content": "Accuracy — 8 formula-interpretation items using radical or rational forms with domain/unit checks ≥7/8 · Explanation — why do formula restrictions matter before substituting numbers? · Transfer — interpret a new formula with a square root or denominator and state two restrictions.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.SYS.01",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Two conditions at once — what a system is",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 57,
      "id": "ALG.SYS.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Two conditions at once — what a system is: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Two conditions at once — what a system is.",
      "content": "A system is two equations constraining the same two unknowns; a solution is one pair that makes both true at once — satisfying one equation is not enough.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.SYS.01",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Two conditions at once — what a system is",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 57,
      "id": "ALG.SYS.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Two conditions at once — what a system is: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Two conditions at once — what a system is.",
      "content": "x + y = 10 and x − y = 4. Test (7, 3): 7 + 3 = 10 ✓ and 7 − 3 = 4 ✓ — a system solution. (6, 4) gives 6 + 4 = 10 ✓ but 6 − 4 = 2 ✗ — fits one condition, fails the system.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.SYS.01",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Two conditions at once — what a system is",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 57,
      "id": "ALG.SYS.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Two conditions at once — what a system is: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Two conditions at once — what a system is into personal, civic/data, and career contexts.",
      "content": "Personal — you trained 10 times this week and gym visits beat team practices by 4; show the two facts together pin down 7 and 3. · Civic/Data — a school-travel survey says walkers plus bus riders total 100 and walkers exceed riders by 20; explain why both reported facts are needed to fix the counts. · Career — a florist's order wants 24 stems with twice as many roses as lilies; one condition alone allows many bouquets.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.SYS.01",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Two conditions at once — what a system is",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 57,
      "id": "ALG.SYS.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Two conditions at once — what a system is: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Two conditions at once — what a system is.",
      "content": "Accuracy — 8 items testing candidate pairs against both equations (2 LIN review) ≥7/8 · Explanation — why does (6, 4) fail as a system solution even though it satisfies the first equation? · Transfer — write \"two numbers sum to 15 and differ by 3\" as a system and verify (9, 6).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.SYS.02",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Solving by graphing",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 58,
      "id": "ALG.SYS.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Solving by graphing: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Solving by graphing.",
      "content": "Each equation draws the line of all its own solutions; the intersection is the only point on both lines, so solving the system means finding the crossing.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.SYS.02",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Solving by graphing",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 58,
      "id": "ALG.SYS.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Solving by graphing: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Solving by graphing.",
      "content": "y = 2x + 1 and y = −x + 7 cross at (2, 5): 2(2) + 1 = 5 ✓ and −2 + 7 = 5 ✓. A point like (1, 3) lies on the first line only, so it solves one equation, not the system.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.SYS.02",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Solving by graphing",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 58,
      "id": "ALG.SYS.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Solving by graphing: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Solving by graphing into personal, civic/data, and career contexts.",
      "content": "Personal — you have $30 saving $5/week, your sibling has $54 spending $3/week; graph both and find the tie at week 3, $45 each. · Civic/Data — plot two neighborhoods' library-signup trends on one grid and read off when the smaller one catches up. · Career — a café owner graphs total-cost lines for two espresso machines to see at how many months the pricier, cheaper-to-run one wins.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.SYS.02",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Solving by graphing",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 58,
      "id": "ALG.SYS.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Solving by graphing: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Solving by graphing.",
      "content": "Accuracy — 8 graph-and-read items, each intersection checked by substitution (2 review) ≥7/8 · Explanation — why must the crossing point satisfy both equations at once? · Transfer — read the intersection from a supplied two-phone-plan graph and verify it in both equations.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.SYS.03",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "One solution, none, or infinitely many",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 59,
      "id": "ALG.SYS.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "One solution, none, or infinitely many: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of One solution, none, or infinitely many.",
      "content": "Different slopes cross exactly once; equal slopes with different intercepts never meet (no solution); equations describing the same line share every point (infinitely many).",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.SYS.03",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "One solution, none, or infinitely many",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 59,
      "id": "ALG.SYS.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "One solution, none, or infinitely many: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for One solution, none, or infinitely many.",
      "content": "y = 3x + 2 and y = 3x − 4 are parallel — no pair works. x + 2y = 4 and 2x + 4y = 8: doubling the first gives the second, so they are one line — infinitely many solutions. Distinct slopes guarantee exactly one.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.SYS.03",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "One solution, none, or infinitely many",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 59,
      "id": "ALG.SYS.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "One solution, none, or infinitely many: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer One solution, none, or infinitely many into personal, civic/data, and career contexts.",
      "content": "Personal — two friends each save $5/week from different starting amounts; explain why their balances never tie. · Civic/Data — two lines in a budget report turn out to be the same equation in different units; say why \"solving\" them cannot pin a unique answer. · Career — a surveyor classifies whether two boundary lines on a plan intersect, run parallel, or coincide before staking.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.SYS.03",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "One solution, none, or infinitely many",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 59,
      "id": "ALG.SYS.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "One solution, none, or infinitely many: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond One solution, none, or infinitely many.",
      "content": "Accuracy — 8 classification items from equations and graphs (2 review) ≥7/8 · Explanation — why can't two distinct straight lines cross twice? · Transfer — decide whether 2x + y = 6 and 4x + 2y = 10 share any solution and defend the answer.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.SYS.04",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Substitution method",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 60,
      "id": "ALG.SYS.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Substitution method: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Substitution method.",
      "content": "When one equation hands you a variable (y = …), substitute that expression into the other equation; one unknown disappears, leaving a familiar one-variable equation.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.SYS.04",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Substitution method",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 60,
      "id": "ALG.SYS.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Substitution method: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Substitution method.",
      "content": "y = x + 3 and 2x + y = 12: substitute to get 2x + (x + 3) = 12 → 3x = 9 → x = 3, y = 6. Check both: 6 = 3 + 3 ✓ and 2(3) + 6 = 12 ✓.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.SYS.04",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Substitution method",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 60,
      "id": "ALG.SYS.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Substitution method: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Substitution method into personal, civic/data, and career contexts.",
      "content": "Personal — your 12 weekly work hours split so café shifts are double babysitting; substitute c = 2b to find 4 and 8. · Civic/Data — a shelter posts 75 animals with cats outnumbering dogs by 15; substitute to confirm the published 45/30 split. · Career — an electrician knows the invoice total and that labor is $40/h plus a $35 call-out; substitutes to recover hours billed.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.SYS.04",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Substitution method",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 60,
      "id": "ALG.SYS.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Substitution method: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Substitution method.",
      "content": "Accuracy — 8 substitution solves, all checked in both equations (2 review) ≥7/8 · Explanation — spot the flaw: a student substitutes y = x + 3 back into its own equation and gets 3 = 3; why did the system vanish? · Transfer — solve a = 3b with a + b = 36 for a smoothie's fruit-to-yogurt split.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.SYS.05",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Elimination method",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 61,
      "id": "ALG.SYS.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Elimination method: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Elimination method.",
      "content": "Adding equals to equals preserves equality, so adding (or scaling, then adding) the two equations can cancel a variable whose coefficients are opposites.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.SYS.05",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Elimination method",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 61,
      "id": "ALG.SYS.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Elimination method: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Elimination method.",
      "content": "3x + 2y = 12 and 5x − 2y = 4: add → 8x = 16 → x = 2; then 6 + 2y = 12 → y = 3. Check: 5(2) − 2(3) = 4 ✓. For 2x + 3y = 13 with 4x − y = 5, triple the second (12x − 3y = 15) and add → 14x = 28 → x = 2, y = 3.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.SYS.05",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Elimination method",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 61,
      "id": "ALG.SYS.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Elimination method: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Elimination method into personal, civic/data, and career contexts.",
      "content": "Personal — two taco-stand receipts (2 tacos + 1 drink = $9; 2 tacos + 3 drinks = $13): subtract to get the drink at $2, taco at $3.50. · Civic/Data — combine two rows of a census table to cancel one category and recover a missing count. · Career — a feed-store clerk eliminates one grain's weight from two blend orders to price the other grain.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.SYS.05",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Elimination method",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 61,
      "id": "ALG.SYS.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Elimination method: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Elimination method.",
      "content": "Accuracy — 8 elimination solves including one scaling step (2 review) ≥7/8 · Explanation — why is adding the two equations a legal move? Name the property of equality behind it. · Transfer — find the fares from two trip combos: 2 bus + 1 train = $8 and 2 bus + 3 trains = $18 (train $5, bus $1.50).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.SYS.06",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Choosing a method",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 62,
      "id": "ALG.SYS.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Choosing a method: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Choosing a method.",
      "content": "The system's shape picks the tool: an already-isolated variable invites substitution, matched or opposite coefficients invite elimination, and rough visual questions suit graphing.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.SYS.06",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Choosing a method",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 62,
      "id": "ALG.SYS.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Choosing a method: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Choosing a method.",
      "content": "y = 4x − 1 with 3x + y = 13 begs substitution: 3x + 4x − 1 = 13 → x = 2, y = 7 (check: 3·2 + 7 = 13 ✓). 2x + 3y = 17 with 2x − y = 5 begs elimination: subtract → 4y = 12 → y = 3, x = 4 (check: 8 + 9 = 17 ✓).",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.SYS.06",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Choosing a method",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 62,
      "id": "ALG.SYS.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Choosing a method: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Choosing a method into personal, civic/data, and career contexts.",
      "content": "Personal — comparing two gym memberships where one fee is already stated as \"$20 plus…\"; justify substitution before computing. · Civic/Data — for a town-hall slide that only needs \"around what year do the trends cross?\", argue graphing is enough. · Career — a machinist picks elimination when two job quotes share an identical setup-fee term.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.SYS.06",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Choosing a method",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 62,
      "id": "ALG.SYS.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Choosing a method: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Choosing a method.",
      "content": "Accuracy — 8 systems solved with self-chosen, stated methods (2 review) ≥7/8 · Explanation — spot the flaw: substituting an expression into the equation it came from yields 0 = 0; what information was lost? · Transfer — for three given systems, name the efficient method for each, then solve one.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.SYS.07",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Systems from word problems (mixtures, tickets)",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 63,
      "id": "ALG.SYS.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Systems from word problems (mixtures, tickets): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Systems from word problems (mixtures, tickets).",
      "content": "Two-quantity stories hide two equations — one counts items, the other counts value (money, mass, points); define the variables, then translate each sentence separately.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.SYS.07",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Systems from word problems (mixtures, tickets)",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 63,
      "id": "ALG.SYS.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Systems from word problems (mixtures, tickets): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Systems from word problems (mixtures, tickets).",
      "content": "120 tickets earn $750 at $8 adult / $5 student: a + s = 120 and 8a + 5s = 750. Substitute a = 120 − s: 960 − 3s = 750 → s = 70, a = 50. Check: 8(50) + 5(70) = 400 + 350 = 750 ✓.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.SYS.07",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Systems from word problems (mixtures, tickets)",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 63,
      "id": "ALG.SYS.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Systems from word problems (mixtures, tickets): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Systems from word problems (mixtures, tickets) into personal, civic/data, and career contexts.",
      "content": "Personal — your 14 coins in dimes and quarters total $2.30; set up the pair and find 8 dimes, 6 quarters. · Civic/Data — a fundraiser page reports 90 items sold for $390 between $3 stickers and $6 totes; verify the claimed 50/40 split. · Career — a landscaper blends $9/kg and $6/kg seed into 30 kg priced at $7/kg and solves for 10 kg and 20 kg.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.SYS.07",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Systems from word problems (mixtures, tickets)",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 63,
      "id": "ALG.SYS.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Systems from word problems (mixtures, tickets): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Systems from word problems (mixtures, tickets).",
      "content": "Accuracy — 8 word-problem systems with both equations checked (2 review) ≥7/8 · Explanation — spot the flaw: a setup writes a + s = 750; what does each equation count, and why can't prices live in the count equation? · Transfer — set up (don't solve) the system for a 40-question quiz worth 100 points in 2- and 3-point questions.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.SYS.08",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Break-even problems",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 64,
      "id": "ALG.SYS.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Break-even problems: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Break-even problems.",
      "content": "Break-even is where the cost line (fixed cost + per-unit cost) meets the revenue line (price × units): below it every sale still owes the fixed cost, above it each sale is profit.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.SYS.08",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Break-even problems",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 64,
      "id": "ALG.SYS.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Break-even problems: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Break-even problems.",
      "content": "Custom hoodies: $120 setup plus $9 each, sold at $15. 15n = 120 + 9n → 6n = 120 → n = 20. Both sides hit $300: 15(20) = 300 and 120 + 9(20) = 300 ✓. Hoodie 21 brings the first $6 of profit.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.SYS.08",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Break-even problems",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 64,
      "id": "ALG.SYS.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Break-even problems: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Break-even problems into personal, civic/data, and career contexts.",
      "content": "Personal — your sticker shop pays $40 for a cutter and $0.50 per sticker sold at $1.50; show break-even at 40 sales. · Civic/Data — a community fair pays a $600 venue fee plus $2 per attendee against $5 entry; check the organizer's \"200 attendees to break even\" claim. · Career — a food-truck owner weighs a $250 festival pitch fee plus $3 per meal against an $8 sale price (50 meals to break even).",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.SYS.08",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Break-even problems",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 64,
      "id": "ALG.SYS.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Break-even problems: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Break-even problems.",
      "content": "Accuracy — 8 break-even setups and solves (2 review) ≥7/8 · Explanation — using the two lines, why does raising the sale price lower the break-even count? · Transfer — find how many $4 car-wash tickets cover $90 of supplies plus $1 of water per wash (30).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.SYS.09",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Systems with inequalities (intro)",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 65,
      "id": "ALG.SYS.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Systems with inequalities (intro): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Systems with inequalities (intro).",
      "content": "Swap the equals signs for ≤ or ≥ and each line becomes a half-plane; the solutions form a region — every point meeting all constraints at once, not one answer.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.SYS.09",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Systems with inequalities (intro)",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 65,
      "id": "ALG.SYS.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Systems with inequalities (intro): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Systems with inequalities (intro).",
      "content": "Work limits: b + c ≤ 15 hours and 12b + 10c ≥ 120 dollars. Test (5, 8): 13 ≤ 15 ✓ and 60 + 80 = 140 ≥ 120 ✓ — inside the region. Test (2, 3): 24 + 30 = 54 < 120 ✗ — outside. Shade where both hold.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.SYS.09",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Systems with inequalities (intro)",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 65,
      "id": "ALG.SYS.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Systems with inequalities (intro): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Systems with inequalities (intro) into personal, civic/data, and career contexts.",
      "content": "Personal — babysitting and lifeguarding hours must stay within 15 while earning at least $120; mark three workable weekly plans. · Civic/Data — a youth-center proposal needs at least 60 participants but at most $400 in supplies; sketch the feasible sign-up region. · Career — a caterer juggles at most 10 oven-hours and at least 80 servings; identify which menu mixes satisfy both.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.SYS.09",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Systems with inequalities (intro)",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 65,
      "id": "ALG.SYS.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Systems with inequalities (intro): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Systems with inequalities (intro).",
      "content": "Accuracy — 8 region items (write constraints, test points, shade) (2 review) ≥7/8 · Explanation — why is the solution a whole region here but a single point in ALG.SYS.02? · Transfer — given a shaded region with labeled boundary lines, write the two constraints it represents.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "ALG.SYS.10",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Interpreting solutions in context",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 66,
      "id": "ALG.SYS.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Interpreting solutions in context: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Interpreting solutions in context.",
      "content": "The algebra returns a pair; the context decides what it means — a switch point between options, a meeting moment, or a red flag when the \"answer\" is negative or fractional where it cannot be.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "ALG.SYS.10",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Interpreting solutions in context",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 66,
      "id": "ALG.SYS.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Interpreting solutions in context: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Interpreting solutions in context.",
      "content": "Data plans: 25 + 2g vs 10 + 5g. Setting 25 + 2g = 10 + 5g gives g = 5, both $35. Reading: under 5 GB the second plan is cheaper, above 5 GB the first is — the intersection is a decision boundary, not \"the answer.\"",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "ALG.SYS.10",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Interpreting solutions in context",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 66,
      "id": "ALG.SYS.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Interpreting solutions in context: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Interpreting solutions in context into personal, civic/data, and career contexts.",
      "content": "Personal — your scooter-rental comparison returns 6.5 rides as the tie point; explain what to actually do with the half ride. · Civic/Data — a transit model puts two bus lines' equal ridership at year −2; argue why that means \"before the data began,\" not a forecast. · Career — a print-shop quote tool returns 37.5 shirts as the cheaper-supplier crossover; advise a client ordering 30 and one ordering 50.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "ALG.SYS.10",
      "clusterId": "ALG.SYS",
      "domain": "ALG",
      "domainName": "Algebraic Thinking",
      "skillTitle": "Interpreting solutions in context",
      "clusterTitle": "Systems of Equations (ALG.SYS)",
      "band": "8",
      "hardLevel": 66,
      "id": "ALG.SYS.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Interpreting solutions in context: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Interpreting solutions in context.",
      "content": "Accuracy — 8 solved systems each requiring a one-sentence contextual interpretation (2 review) ≥7/8 · Explanation — spot the flaw: a report rounds the 6.5-ride crossover to 6 and claims \"same cost at 6 rides\"; what is actually true at 6? · Transfer — interpret the intersection of two salary offers (base + commission) for a friend choosing between jobs.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.DAT.01",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "From curiosity to statistical question",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 10,
      "id": "APP.DAT.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "From curiosity to statistical question: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of From curiosity to statistical question.",
      "content": "A statistical question expects variability and can be answered with data, not just a single fact.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.DAT.01",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "From curiosity to statistical question",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 10,
      "id": "APP.DAT.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "From curiosity to statistical question: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for From curiosity to statistical question.",
      "content": "\"What is my shoe size?\" is not statistical. \"What shoe sizes are most common in our year level?\" expects varied data.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.DAT.01",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "From curiosity to statistical question",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 10,
      "id": "APP.DAT.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "From curiosity to statistical question: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer From curiosity to statistical question into personal, civic/data, and career contexts.",
      "content": "Personal — turn a music-preference curiosity into a survey question. · Civic/Data — ask about park usage across days. · Career — ask about customer wait times over a week.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.DAT.01",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "From curiosity to statistical question",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 10,
      "id": "APP.DAT.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "From curiosity to statistical question: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond From curiosity to statistical question.",
      "content": "Accuracy — 8 statistical-question classification/rewrite items ≥7/8 · Explanation — where does variability appear in the question? · Transfer — rewrite a yes/no curiosity into a data-project question.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.DAT.02",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Plan the collection — who, what, how many",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 11,
      "id": "APP.DAT.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Plan the collection — who, what, how many: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Plan the collection — who, what, how many.",
      "content": "A data plan defines population, sample, variables, method, and sample size before collection starts.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.DAT.02",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Plan the collection — who, what, how many",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 11,
      "id": "APP.DAT.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Plan the collection — who, what, how many: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Plan the collection — who, what, how many.",
      "content": "To study lunch wait times, sample 40 students across different days, record wait time in minutes, and note grade level.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.DAT.02",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Plan the collection — who, what, how many",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 11,
      "id": "APP.DAT.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Plan the collection — who, what, how many: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Plan the collection — who, what, how many into personal, civic/data, and career contexts.",
      "content": "Personal — plan a survey of study habits. · Civic/Data — plan a park-count sample. · Career — plan customer wait-time observations.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.DAT.02",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Plan the collection — who, what, how many",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 11,
      "id": "APP.DAT.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Plan the collection — who, what, how many: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Plan the collection — who, what, how many.",
      "content": "Accuracy — 8 data-plan critique/build items ≥7/8 · Explanation — why does \"who was asked\" affect conclusions? · Transfer — write a collection plan for a school transport question.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.DAT.03",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Clean the data — duplicates, typos, outliers",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 12,
      "id": "APP.DAT.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Clean the data — duplicates, typos, outliers: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Clean the data — duplicates, typos, outliers.",
      "content": "Data cleaning fixes clear errors, flags unusual values, and documents choices so analysis stays honest.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.DAT.03",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Clean the data — duplicates, typos, outliers",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 12,
      "id": "APP.DAT.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Clean the data — duplicates, typos, outliers: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Clean the data — duplicates, typos, outliers.",
      "content": "If wait times include 8, 9, 10, and 900 minutes, 900 should be checked as a likely typo before summarizing.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.DAT.03",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Clean the data — duplicates, typos, outliers",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 12,
      "id": "APP.DAT.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Clean the data — duplicates, typos, outliers: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Clean the data — duplicates, typos, outliers into personal, civic/data, and career contexts.",
      "content": "Personal — clean a spending log with duplicate transactions. · Civic/Data — flag impossible survey ages. · Career — clean product measurements before reporting averages.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.DAT.03",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Clean the data — duplicates, typos, outliers",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 12,
      "id": "APP.DAT.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Clean the data — duplicates, typos, outliers: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Clean the data — duplicates, typos, outliers.",
      "content": "Accuracy — 8 data-cleaning items identifying duplicates, typos, and outliers ≥7/8 · Explanation — why should cleaning decisions be documented? · Transfer — clean a small raw table and note each change.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.DAT.04",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Choose summaries and displays that answer the question",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 13,
      "id": "APP.DAT.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Choose summaries and displays that answer the question: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Choose summaries and displays that answer the question.",
      "content": "The right summary or graph depends on the question and data type; displays should reveal the comparison or pattern needed.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.DAT.04",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Choose summaries and displays that answer the question",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 13,
      "id": "APP.DAT.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Choose summaries and displays that answer the question: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Choose summaries and displays that answer the question.",
      "content": "To compare wait times by day, side-by-side box plots or dot plots answer better than a pie chart.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.DAT.04",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Choose summaries and displays that answer the question",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 13,
      "id": "APP.DAT.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Choose summaries and displays that answer the question: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Choose summaries and displays that answer the question into personal, civic/data, and career contexts.",
      "content": "Personal — choose a display for weekly spending categories. · Civic/Data — choose a graph for park usage by hour. · Career — choose summaries for customer wait-time distributions.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.DAT.04",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Choose summaries and displays that answer the question",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 13,
      "id": "APP.DAT.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Choose summaries and displays that answer the question: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Choose summaries and displays that answer the question.",
      "content": "Accuracy — 8 choose-and-justify display items ≥7/8 · Explanation — why is a pie chart poor for showing change over time? · Transfer — pick a summary and graph for comparing two classes' commute times.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.DAT.05",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Read results against the question",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 14,
      "id": "APP.DAT.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Read results against the question: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Read results against the question.",
      "content": "Analysis should answer the original question directly, using summaries and graphs as evidence.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.DAT.05",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Read results against the question",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 14,
      "id": "APP.DAT.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Read results against the question: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Read results against the question.",
      "content": "If the question asks which day has longest waits, report the day with higher median and spread, not unrelated favorite menu items.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.DAT.05",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Read results against the question",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 14,
      "id": "APP.DAT.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Read results against the question: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Read results against the question into personal, civic/data, and career contexts.",
      "content": "Personal — answer which habit relates to better practice consistency. · Civic/Data — answer when a park is busiest. · Career — answer which shift has longest wait times.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.DAT.05",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Read results against the question",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 14,
      "id": "APP.DAT.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Read results against the question: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Read results against the question.",
      "content": "Accuracy — 8 result-interpretation items tied to questions ≥7/8 · Explanation — what evidence supports the answer? · Transfer — write a two-sentence conclusion from a small graph.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.DAT.06",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "State limitations honestly",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 15,
      "id": "APP.DAT.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "State limitations honestly: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of State limitations honestly.",
      "content": "Limitations explain what the data can and cannot claim because of sample, measurement, bias, or timing.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.DAT.06",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "State limitations honestly",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 15,
      "id": "APP.DAT.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "State limitations honestly: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for State limitations honestly.",
      "content": "A survey of 20 friends cannot represent the whole school; it can only suggest patterns among that group.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.DAT.06",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "State limitations honestly",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 15,
      "id": "APP.DAT.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "State limitations honestly: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer State limitations honestly into personal, civic/data, and career contexts.",
      "content": "Personal — limit conclusions from your own spending log. · Civic/Data — note weather effects in park-count data. · Career — state limitations from one week's customer data.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.DAT.06",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "State limitations honestly",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 15,
      "id": "APP.DAT.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "State limitations honestly: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond State limitations honestly.",
      "content": "Accuracy — 8 limitation-identification items ≥7/8 · Explanation — why does a limitation not make a study useless? · Transfer — write two limitations for a small survey.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.DAT.07",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Peer review — critique a flawed mini-study",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 16,
      "id": "APP.DAT.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Peer review — critique a flawed mini-study: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Peer review — critique a flawed mini-study.",
      "content": "Peer review checks whether the question, sample, measurement, analysis, and conclusion fit together.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.DAT.07",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Peer review — critique a flawed mini-study",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 16,
      "id": "APP.DAT.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Peer review — critique a flawed mini-study: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Peer review — critique a flawed mini-study.",
      "content": "A study claiming \"students hate homework\" from asking five friends has sample bias, vague wording, and overgeneralized conclusions.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.DAT.07",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Peer review — critique a flawed mini-study",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 16,
      "id": "APP.DAT.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Peer review — critique a flawed mini-study: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Peer review — critique a flawed mini-study into personal, civic/data, and career contexts.",
      "content": "Personal — critique a social-media poll. · Civic/Data — critique a local survey in a flyer. · Career — review a customer-satisfaction mini-study.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.DAT.07",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Peer review — critique a flawed mini-study",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 16,
      "id": "APP.DAT.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Peer review — critique a flawed mini-study: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Peer review — critique a flawed mini-study.",
      "content": "Accuracy — 8 flawed-study critiques naming issue and fix ≥7/8 · Explanation — why is \"asked my friends\" a bias risk? · Transfer — critique a provided mini-study and propose two improvements.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.DAT.08",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Write the findings report",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 17,
      "id": "APP.DAT.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Write the findings report: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Write the findings report.",
      "content": "A findings report states the question, method, summaries, answer, evidence, limitations, and next step clearly.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.DAT.08",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Write the findings report",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 17,
      "id": "APP.DAT.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Write the findings report: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Write the findings report.",
      "content": "Report walkthrough: question about lunch waits, sample of 60 observations, median wait by day, conclusion that Friday is longest, limitation that only one canteen was observed.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.DAT.08",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Write the findings report",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 17,
      "id": "APP.DAT.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Write the findings report: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Write the findings report into personal, civic/data, and career contexts.",
      "content": "Personal — write a short habit-tracking report. · Civic/Data — report park-use findings. · Career — report customer wait-time findings to a manager.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.DAT.08",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Write the findings report",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 17,
      "id": "APP.DAT.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Write the findings report: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Write the findings report.",
      "content": "Accuracy — 8 report-section identification and short-writing items ≥7/8 · Explanation — why should method appear before conclusion? · Transfer — write a compact findings paragraph from a table and graph.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.DAT.09",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Present with honest visuals",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 18,
      "id": "APP.DAT.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Present with honest visuals: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Present with honest visuals.",
      "content": "Honest visuals use clear scales, labels, baselines, and proportional encodings so the graph supports rather than distorts the conclusion.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.DAT.09",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Present with honest visuals",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 18,
      "id": "APP.DAT.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Present with honest visuals: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Present with honest visuals.",
      "content": "A bar chart comparing counts should usually start at zero; truncating the axis can exaggerate small differences.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.DAT.09",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Present with honest visuals",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 18,
      "id": "APP.DAT.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Present with honest visuals: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Present with honest visuals into personal, civic/data, and career contexts.",
      "content": "Personal — make a fair graph of weekly spending. · Civic/Data — correct a misleading public chart. · Career — present sales or wait-time data without distortion.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.DAT.09",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Present with honest visuals",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 18,
      "id": "APP.DAT.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Present with honest visuals: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Present with honest visuals.",
      "content": "Accuracy — 8 visual-integrity critique/redesign items ≥7/8 · Explanation — how can axis choice change the story? · Transfer — fix a misleading graph description.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.DAT.10",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Full data project capstone",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 19,
      "id": "APP.DAT.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Full data project capstone: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Full data project capstone.",
      "content": "A full data project asks a statistical question, plans and collects data, cleans it, analyzes it, states limitations, and presents findings honestly.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.DAT.10",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Full data project capstone",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 19,
      "id": "APP.DAT.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Full data project capstone: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Full data project capstone.",
      "content": "Project walkthrough: investigate commute times by collecting 50 responses, cleaning impossible entries, graphing distributions by transport mode, concluding with evidence and limitations.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.DAT.10",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Full data project capstone",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 19,
      "id": "APP.DAT.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Full data project capstone: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Full data project capstone into personal, civic/data, and career contexts.",
      "content": "Personal — study practice time and progress. · Civic/Data — investigate park or transport use. · Career — analyze customer wait times or product defects.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.DAT.10",
      "clusterId": "APP.DAT",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Full data project capstone",
      "clusterTitle": "Data Projects (APP.DAT)",
      "band": "7–8+",
      "hardLevel": 19,
      "id": "APP.DAT.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Full data project capstone: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Full data project capstone.",
      "content": "Accuracy — project rubric: question, collection plan, clean data, suitable summaries, honest visual, conclusion, limitations, and peer critique ≥7/8 · Explanation — why is each project stage needed? · Transfer — complete a new small data project with the same rubric.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.DES.01",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Reading a design brief and its constraints",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 10,
      "id": "APP.DES.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Reading a design brief and its constraints: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Reading a design brief and its constraints.",
      "content": "A design brief states the goal, users, constraints, and success criteria; math turns those constraints into measurable decisions.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.DES.01",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Reading a design brief and its constraints",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 10,
      "id": "APP.DES.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Reading a design brief and its constraints: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Reading a design brief and its constraints.",
      "content": "A garden brief may require 20 m² minimum area, path width at least 1 m, and cost under $500.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.DES.01",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Reading a design brief and its constraints",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 10,
      "id": "APP.DES.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Reading a design brief and its constraints: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Reading a design brief and its constraints into personal, civic/data, and career contexts.",
      "content": "Personal — read a bedroom redesign brief. · Civic/Data — interpret a community garden brief. · Career — read a packaging or layout design request.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.DES.01",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Reading a design brief and its constraints",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 10,
      "id": "APP.DES.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Reading a design brief and its constraints: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Reading a design brief and its constraints.",
      "content": "Accuracy — 8 brief-reading items identifying goal, constraints, and criteria ≥7/8 · Explanation — why should constraints be measurable? · Transfer — mark constraints in a new design brief.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.DES.02",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Sketching to scale",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 11,
      "id": "APP.DES.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Sketching to scale: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Sketching to scale.",
      "content": "Scale sketches preserve proportional relationships so real measurements can be planned on paper or screen.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.DES.02",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Sketching to scale",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 11,
      "id": "APP.DES.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Sketching to scale: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Sketching to scale.",
      "content": "At 1 cm : 2 m, a 10 m wall is drawn as 5 cm. A 3 cm sketch length represents 6 m.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.DES.02",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Sketching to scale",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 11,
      "id": "APP.DES.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Sketching to scale: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Sketching to scale into personal, civic/data, and career contexts.",
      "content": "Personal — sketch furniture placement in a room. · Civic/Data — draw a playground layout. · Career — create a scaled floor-plan draft.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.DES.02",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Sketching to scale",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 11,
      "id": "APP.DES.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Sketching to scale: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Sketching to scale.",
      "content": "Accuracy — 8 scale conversion and sketch interpretation items ≥7/8 · Explanation — why must one scale be used consistently? · Transfer — draw a scaled rectangle for a stated room.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.DES.03",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Materials math — area, volume, cost",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 12,
      "id": "APP.DES.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Materials math — area, volume, cost: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Materials math — area, volume, cost.",
      "content": "Design decisions often require area, volume, unit rates, and total cost calculations.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.DES.03",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Materials math — area, volume, cost",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 12,
      "id": "APP.DES.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Materials math — area, volume, cost: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Materials math — area, volume, cost.",
      "content": "Flooring a 4 m by 5 m room at $18/m² costs 20×18 = $360 before waste allowance.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.DES.03",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Materials math — area, volume, cost",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 12,
      "id": "APP.DES.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Materials math — area, volume, cost: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Materials math — area, volume, cost into personal, civic/data, and career contexts.",
      "content": "Personal — calculate paint or flooring for a room. · Civic/Data — estimate mulch for a community garden bed. · Career — cost packaging material from surface area.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.DES.03",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Materials math — area, volume, cost",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 12,
      "id": "APP.DES.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Materials math — area, volume, cost: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Materials math — area, volume, cost.",
      "content": "Accuracy — 8 area/volume/cost items with units ≥7/8 · Explanation — why should waste or offcuts be considered? · Transfer — estimate material cost for a rectangular project with unit price.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.DES.04",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Tolerances and fit",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 13,
      "id": "APP.DES.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Tolerances and fit: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Tolerances and fit.",
      "content": "Tolerance describes allowed measurement variation; fit requires dimensions to work even with small errors or manufacturing limits.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.DES.04",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Tolerances and fit",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 13,
      "id": "APP.DES.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Tolerances and fit: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Tolerances and fit.",
      "content": "A shelf opening 800 mm wide with tolerance ±2 mm must fit a box no wider than 798 mm if clearance is needed.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.DES.04",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Tolerances and fit",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 13,
      "id": "APP.DES.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Tolerances and fit: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Tolerances and fit into personal, civic/data, and career contexts.",
      "content": "Personal — check whether furniture fits through a doorway. · Civic/Data — plan accessible path widths with clearance. · Career — specify part dimensions with manufacturing tolerance.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.DES.04",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Tolerances and fit",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 13,
      "id": "APP.DES.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Tolerances and fit: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Tolerances and fit.",
      "content": "Accuracy — 8 tolerance/fit calculations and decisions ≥7/8 · Explanation — why is exact measurement not always enough? · Transfer — decide if a part fits given maximum/minimum dimensions.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.DES.05",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Optimizing within constraints (max area, min material)",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 14,
      "id": "APP.DES.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Optimizing within constraints (max area, min material): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Optimizing within constraints (max area, min material).",
      "content": "Design optimization searches for the best option within constraints, such as maximum area for fixed perimeter or minimum material for required volume.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.DES.05",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Optimizing within constraints (max area, min material)",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 14,
      "id": "APP.DES.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Optimizing within constraints (max area, min material): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Optimizing within constraints (max area, min material).",
      "content": "With 24 m of fencing, rectangle pairs 1×11, 2×10, 3×9, 4×8, 5×7, 6×6 show the square gives maximum area.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.DES.05",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Optimizing within constraints (max area, min material)",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 14,
      "id": "APP.DES.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Optimizing within constraints (max area, min material): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Optimizing within constraints (max area, min material) into personal, civic/data, and career contexts.",
      "content": "Personal — design the largest garden bed from fixed edging. · Civic/Data — maximize seating under room constraints. · Career — minimize packaging material for a target product size.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.DES.05",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Optimizing within constraints (max area, min material)",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 14,
      "id": "APP.DES.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Optimizing within constraints (max area, min material): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Optimizing within constraints (max area, min material).",
      "content": "Accuracy — 8 organized-trial optimization items ≥7/8 · Explanation — why must the best option still satisfy all constraints? · Transfer — compare three designs and choose the best with evidence.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.DES.06",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Nets and packaging design",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 15,
      "id": "APP.DES.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Nets and packaging design: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Nets and packaging design.",
      "content": "Nets unfold 3-D objects into 2-D patterns, letting designers calculate surface area, tabs, and material use.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.DES.06",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Nets and packaging design",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 15,
      "id": "APP.DES.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Nets and packaging design: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Nets and packaging design.",
      "content": "A rectangular prism 10×6×4 cm has surface area 2(60 + 40 + 24) = 248 cm² before tabs and waste.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.DES.06",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Nets and packaging design",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 15,
      "id": "APP.DES.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Nets and packaging design: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Nets and packaging design into personal, civic/data, and career contexts.",
      "content": "Personal — design a gift box net. · Civic/Data — plan low-waste packaging for an event kit. · Career — calculate cardboard needed for product packaging.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.DES.06",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Nets and packaging design",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 15,
      "id": "APP.DES.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Nets and packaging design: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Nets and packaging design.",
      "content": "Accuracy — 8 net/surface-area/package design items ≥7/8 · Explanation — why do tabs add material beyond surface area? · Transfer — sketch a net and estimate material for a small box.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.DES.07",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Accessibility and human measurements (ergonomics)",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 16,
      "id": "APP.DES.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Accessibility and human measurements (ergonomics): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Accessibility and human measurements (ergonomics).",
      "content": "Designs should fit real users; ergonomic and accessibility measurements turn human needs into constraints.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.DES.07",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Accessibility and human measurements (ergonomics)",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 16,
      "id": "APP.DES.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Accessibility and human measurements (ergonomics): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Accessibility and human measurements (ergonomics).",
      "content": "A ramp design must meet a maximum slope, so rise and run determine whether it is accessible.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.DES.07",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Accessibility and human measurements (ergonomics)",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 16,
      "id": "APP.DES.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Accessibility and human measurements (ergonomics): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Accessibility and human measurements (ergonomics) into personal, civic/data, and career contexts.",
      "content": "Personal — arrange a desk height for comfort. · Civic/Data — evaluate walkway width and ramp slope. · Career — check product dimensions against user reach and clearance.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.DES.07",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Accessibility and human measurements (ergonomics)",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 16,
      "id": "APP.DES.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Accessibility and human measurements (ergonomics): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Accessibility and human measurements (ergonomics).",
      "content": "Accuracy — 8 human-measurement constraint items with units and checks ≥7/8 · Explanation — why is \"average user\" not enough for accessibility? · Transfer — revise a design to meet a stated clearance requirement.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.DES.08",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Costing a build — estimate to quote",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 17,
      "id": "APP.DES.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Costing a build — estimate to quote: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Costing a build — estimate to quote.",
      "content": "A build quote combines materials, labor, waste allowance, fixed costs, and margin into a transparent total.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.DES.08",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Costing a build — estimate to quote",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 17,
      "id": "APP.DES.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Costing a build — estimate to quote: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Costing a build — estimate to quote.",
      "content": "Materials $240, 10% waste $24, labor 6 hours at $35 = $210, fixed fee $50; quote before margin is $524.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.DES.08",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Costing a build — estimate to quote",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 17,
      "id": "APP.DES.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Costing a build — estimate to quote: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Costing a build — estimate to quote into personal, civic/data, and career contexts.",
      "content": "Personal — estimate a DIY shelf build. · Civic/Data — cost a community noticeboard. · Career — prepare a small contractor quote.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.DES.08",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Costing a build — estimate to quote",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 17,
      "id": "APP.DES.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Costing a build — estimate to quote: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Costing a build — estimate to quote.",
      "content": "Accuracy — 8 estimate-to-quote items with line items and percent allowances ≥7/8 · Explanation — why should a quote show assumptions? · Transfer — build a simple quote from material and labor data.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.DES.09",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Prototype, measure, revise",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 18,
      "id": "APP.DES.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Prototype, measure, revise: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Prototype, measure, revise.",
      "content": "Prototyping tests whether a design works; measurements from the prototype guide targeted revisions.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.DES.09",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Prototype, measure, revise",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 18,
      "id": "APP.DES.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Prototype, measure, revise: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Prototype, measure, revise.",
      "content": "A cardboard package prototype is 5 mm too tight, so the net is revised by adding clearance to the relevant panels.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.DES.09",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Prototype, measure, revise",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 18,
      "id": "APP.DES.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Prototype, measure, revise: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Prototype, measure, revise into personal, civic/data, and career contexts.",
      "content": "Personal — test a paper model before cutting expensive material. · Civic/Data — prototype a seating layout with tape measurements. · Career — revise a package after fit testing.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.DES.09",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Prototype, measure, revise",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 18,
      "id": "APP.DES.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Prototype, measure, revise: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Prototype, measure, revise.",
      "content": "Accuracy — 8 prototype-measure-revise items ≥7/8 · Explanation — why should the revision target the measured failure? · Transfer — choose a revision after prototype measurements are supplied.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.DES.10",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Design project capstone — plan a real space",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 19,
      "id": "APP.DES.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Design project capstone — plan a real space: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Design project capstone — plan a real space.",
      "content": "A design capstone applies brief reading, scale, materials, fit, accessibility, cost, prototype evidence, and revision into one project.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.DES.10",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Design project capstone — plan a real space",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 19,
      "id": "APP.DES.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Design project capstone — plan a real space: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Design project capstone — plan a real space.",
      "content": "Project walkthrough: plan a study corner by reading constraints, drawing to scale, checking desk/chair clearance, costing materials, prototyping layout, and revising for access.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.DES.10",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Design project capstone — plan a real space",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 19,
      "id": "APP.DES.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Design project capstone — plan a real space: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Design project capstone — plan a real space into personal, civic/data, and career contexts.",
      "content": "Personal — redesign a study or storage space. · Civic/Data — plan a community garden plot. · Career — design a small pop-up display.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.DES.10",
      "clusterId": "APP.DES",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Design project capstone — plan a real space",
      "clusterTitle": "Design & Geometry Projects (APP.DES)",
      "band": "7–8+",
      "hardLevel": 19,
      "id": "APP.DES.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Design project capstone — plan a real space: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Design project capstone — plan a real space.",
      "content": "Accuracy — project rubric: brief, scale plan, measurements, material/cost math, accessibility check, prototype evidence, revision, and final explanation ≥7/8 · Explanation — how did measurement evidence improve the design? · Transfer — complete the same project cycle for a new space.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.FIN.01",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Earning — wages, salary, gross vs net",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 14,
      "id": "APP.FIN.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Earning — wages, salary, gross vs net: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Earning — wages, salary, gross vs net.",
      "content": "Earnings can be hourly or salaried; gross pay is before deductions, while net pay is what remains after deductions.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.FIN.01",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Earning — wages, salary, gross vs net",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 14,
      "id": "APP.FIN.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Earning — wages, salary, gross vs net: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Earning — wages, salary, gross vs net.",
      "content": "Working 12 hours at $18/hour gives gross pay $216. If 15% is deducted, net pay is 216 × 0.85 = $183.60.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.FIN.01",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Earning — wages, salary, gross vs net",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 14,
      "id": "APP.FIN.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Earning — wages, salary, gross vs net: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Earning — wages, salary, gross vs net into personal, civic/data, and career contexts.",
      "content": "Personal — estimate pay from a weekend job. · Civic/Data — read a payslip example with deductions. · Career — compare hourly and salaried pay presentations.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.FIN.01",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Earning — wages, salary, gross vs net",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 14,
      "id": "APP.FIN.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Earning — wages, salary, gross vs net: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Earning — wages, salary, gross vs net.",
      "content": "Accuracy — 8 wage/gross/net calculations ≥7/8 · Explanation — why is gross pay not the money available to spend? · Transfer — compute net pay from hourly rate, hours, and deduction percent.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.FIN.02",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Budgeting with categories and percents",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 15,
      "id": "APP.FIN.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Budgeting with categories and percents: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Budgeting with categories and percents.",
      "content": "A budget allocates income across categories; percentages help compare category sizes and keep totals within income.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.FIN.02",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Budgeting with categories and percents",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 15,
      "id": "APP.FIN.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Budgeting with categories and percents: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Budgeting with categories and percents.",
      "content": "From $400 income, 40% rent is $160, 25% food is $100, and 10% savings is $40.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.FIN.02",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Budgeting with categories and percents",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 15,
      "id": "APP.FIN.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Budgeting with categories and percents: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Budgeting with categories and percents into personal, civic/data, and career contexts.",
      "content": "Personal — plan monthly spending from allowance or part-time pay. · Civic/Data — read a household-budget infographic. · Career — allocate a small project budget by category.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.FIN.02",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Budgeting with categories and percents",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 15,
      "id": "APP.FIN.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Budgeting with categories and percents: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Budgeting with categories and percents.",
      "content": "Accuracy — 8 budget percent/category items with totals checked ≥7/8 · Explanation — why must category amounts not exceed income? · Transfer — create a balanced three-category budget from a given income.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.FIN.03",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Banking — balance, statements, fees",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 16,
      "id": "APP.FIN.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Banking — balance, statements, fees: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Banking — balance, statements, fees.",
      "content": "A bank balance changes through deposits, withdrawals, card payments, and fees; statements are records to reconcile.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.FIN.03",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Banking — balance, statements, fees",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 16,
      "id": "APP.FIN.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Banking — balance, statements, fees: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Banking — balance, statements, fees.",
      "content": "Start $120, deposit $80, spend $45, pay $3 fee: balance = 120 + 80 − 45 − 3 = $152.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.FIN.03",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Banking — balance, statements, fees",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 16,
      "id": "APP.FIN.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Banking — balance, statements, fees: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Banking — balance, statements, fees into personal, civic/data, and career contexts.",
      "content": "Personal — reconcile a simple statement after purchases. · Civic/Data — compare account fees across banks. · Career — track petty-cash movements for a small team.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.FIN.03",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Banking — balance, statements, fees",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 16,
      "id": "APP.FIN.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Banking — balance, statements, fees: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Banking — balance, statements, fees.",
      "content": "Accuracy — 8 statement-balance items including fees and negative balances ≥7/8 · Explanation — why do fees need to be included in reconciliation? · Transfer — find the missing transaction from a beginning and ending balance.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.FIN.04",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Simple interest in savings and loans",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 17,
      "id": "APP.FIN.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Simple interest in savings and loans: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Simple interest in savings and loans.",
      "content": "Simple interest is calculated on the original principal each period: I = P × r × t.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.FIN.04",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Simple interest in savings and loans",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 17,
      "id": "APP.FIN.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Simple interest in savings and loans: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Simple interest in savings and loans.",
      "content": "$600 at 5% simple interest for 2 years earns 600 × 0.05 × 2 = $60.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.FIN.04",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Simple interest in savings and loans",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 17,
      "id": "APP.FIN.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Simple interest in savings and loans: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Simple interest in savings and loans into personal, civic/data, and career contexts.",
      "content": "Personal — estimate interest on a small savings account. · Civic/Data — compare simple-interest examples in consumer information. · Career — calculate simple finance charges for a short loan.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.FIN.04",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Simple interest in savings and loans",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 17,
      "id": "APP.FIN.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Simple interest in savings and loans: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Simple interest in savings and loans.",
      "content": "Accuracy — 8 simple-interest calculations and interpretations ≥7/8 · Explanation — why does simple interest add the same dollar amount each year? · Transfer — calculate interest on $900 at 4% for 18 months.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.FIN.05",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Compound interest — the snowball",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 18,
      "id": "APP.FIN.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Compound interest — the snowball: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Compound interest — the snowball.",
      "content": "Compound interest adds interest to the balance, so later interest is earned on earlier interest.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.FIN.05",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Compound interest — the snowball",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 18,
      "id": "APP.FIN.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Compound interest — the snowball: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Compound interest — the snowball.",
      "content": "$1,000 at 6% compounded annually for 3 years is 1000 × 1.06³ ≈ $1,191.02.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.FIN.05",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Compound interest — the snowball",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 18,
      "id": "APP.FIN.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Compound interest — the snowball: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Compound interest — the snowball into personal, civic/data, and career contexts.",
      "content": "Personal — compare starting savings early vs waiting. · Civic/Data — read a compound-growth savings chart. · Career — project investment balance for a business reserve.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.FIN.05",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Compound interest — the snowball",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 18,
      "id": "APP.FIN.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Compound interest — the snowball: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Compound interest — the snowball.",
      "content": "Accuracy — 8 compound-interest tables/calculations ≥7/8 · Explanation — why does compound interest grow faster than simple interest? · Transfer — compare two-year simple and compound growth at the same rate.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.FIN.06",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Credit and borrowing costs (APR, minimum payments)",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 19,
      "id": "APP.FIN.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Credit and borrowing costs (APR, minimum payments): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Credit and borrowing costs (APR, minimum payments).",
      "content": "Borrowing has costs beyond the purchase price; APR, fees, and slow repayment can greatly increase total paid.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.FIN.06",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Credit and borrowing costs (APR, minimum payments)",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 19,
      "id": "APP.FIN.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Credit and borrowing costs (APR, minimum payments): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Credit and borrowing costs (APR, minimum payments).",
      "content": "A $500 balance with 20% annual interest costs about $100 in one year if unpaid, before fees and compounding details.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.FIN.06",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Credit and borrowing costs (APR, minimum payments)",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 19,
      "id": "APP.FIN.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Credit and borrowing costs (APR, minimum payments): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Credit and borrowing costs (APR, minimum payments) into personal, civic/data, and career contexts.",
      "content": "Personal — compare paying now vs carrying a balance. · Civic/Data — interpret consumer-credit warnings. · Career — estimate financing cost for equipment.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.FIN.06",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Credit and borrowing costs (APR, minimum payments)",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 19,
      "id": "APP.FIN.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Credit and borrowing costs (APR, minimum payments): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Credit and borrowing costs (APR, minimum payments).",
      "content": "Accuracy — 8 borrowing-cost items with APR and payment interpretation ≥7/8 · Explanation — why can minimum payments keep debt around longer? · Transfer — estimate yearly interest on a stated balance and APR.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.FIN.07",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Comparing offers — phone plans, subscriptions",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 20,
      "id": "APP.FIN.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Comparing offers — phone plans, subscriptions: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Comparing offers — phone plans, subscriptions.",
      "content": "Offers can be compared by modeling fixed fees, usage costs, contract length, and hidden charges.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.FIN.07",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Comparing offers — phone plans, subscriptions",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 20,
      "id": "APP.FIN.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Comparing offers — phone plans, subscriptions: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Comparing offers — phone plans, subscriptions.",
      "content": "Plan A is $20 + $5/GB; Plan B is $40 + $2/GB. At 10 GB, A costs $70 and B costs $60, so B is cheaper at that usage.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.FIN.07",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Comparing offers — phone plans, subscriptions",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 20,
      "id": "APP.FIN.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Comparing offers — phone plans, subscriptions: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Comparing offers — phone plans, subscriptions into personal, civic/data, and career contexts.",
      "content": "Personal — compare phone or streaming plans. · Civic/Data — compare public-transport fare passes. · Career — compare software subscription tiers for a team.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.FIN.07",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Comparing offers — phone plans, subscriptions",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 20,
      "id": "APP.FIN.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Comparing offers — phone plans, subscriptions: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Comparing offers — phone plans, subscriptions.",
      "content": "Accuracy — 8 offer-comparison items with equations and break-even checks ≥7/8 · Explanation — why does usage level change the better offer? · Transfer — compare two fixed-plus-rate plans for low and high use.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.FIN.08",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Inflation — money's shrinking ruler",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 21,
      "id": "APP.FIN.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Inflation — money's shrinking ruler: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Inflation — money's shrinking ruler.",
      "content": "Inflation means prices rise on average, so the same amount of money buys less over time.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.FIN.08",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Inflation — money's shrinking ruler",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 21,
      "id": "APP.FIN.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Inflation — money's shrinking ruler: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Inflation — money's shrinking ruler.",
      "content": "With 4% inflation, a $50 basket costs 50 × 1.04 = $52 after one year if it follows the average rate.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.FIN.08",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Inflation — money's shrinking ruler",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 21,
      "id": "APP.FIN.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Inflation — money's shrinking ruler: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Inflation — money's shrinking ruler into personal, civic/data, and career contexts.",
      "content": "Personal — estimate next year's cost of a regular purchase. · Civic/Data — read inflation in a news report using percent change. · Career — adjust a project budget for rising costs.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.FIN.08",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Inflation — money's shrinking ruler",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 21,
      "id": "APP.FIN.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Inflation — money's shrinking ruler: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Inflation — money's shrinking ruler.",
      "content": "Accuracy — 8 inflation percent-change items ≥7/8 · Explanation — why is inflation a change in purchasing power, not just a number? · Transfer — calculate a two-year price estimate with repeated inflation.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.FIN.09",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Saving goals and timelines",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 62,
      "id": "APP.FIN.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Saving goals and timelines: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Saving goals and timelines.",
      "content": "Saving plans connect target amount, starting balance, regular deposits, time, and growth assumptions.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.FIN.09",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Saving goals and timelines",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 62,
      "id": "APP.FIN.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Saving goals and timelines: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Saving goals and timelines.",
      "content": "To save $600 starting from $150 with $45/month deposits: 150 + 45m = 600, so m = 10 months.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.FIN.09",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Saving goals and timelines",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 62,
      "id": "APP.FIN.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Saving goals and timelines: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Saving goals and timelines into personal, civic/data, and career contexts.",
      "content": "Personal — plan for a bike, laptop, or trip. · Civic/Data — model a club fundraising target. · Career — plan cash reserves for a small project.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.FIN.09",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Saving goals and timelines",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 62,
      "id": "APP.FIN.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Saving goals and timelines: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Saving goals and timelines.",
      "content": "Accuracy — 8 savings-goal equations and timeline interpretations ≥7/8 · Explanation — why should irregular income be treated as an assumption? · Transfer — solve for monthly deposit needed for a target by a deadline.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.FIN.10",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "The financial one-pager — plan a real month",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 63,
      "id": "APP.FIN.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "The financial one-pager — plan a real month: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of The financial one-pager — plan a real month.",
      "content": "A financial one-pager combines income, fixed costs, variable costs, savings goal, risks, and a short explanation of assumptions.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.FIN.10",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "The financial one-pager — plan a real month",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 63,
      "id": "APP.FIN.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "The financial one-pager — plan a real month: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for The financial one-pager — plan a real month.",
      "content": "Project walkthrough: estimate $520 income, list $210 fixed costs, cap variable spending at $220, save $90, and state assumptions about hours worked and no emergency expense.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.FIN.10",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "The financial one-pager — plan a real month",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 63,
      "id": "APP.FIN.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "The financial one-pager — plan a real month: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer The financial one-pager — plan a real month into personal, civic/data, and career contexts.",
      "content": "Personal — build a month plan for student income. · Civic/Data — create a club event budget one-pager. · Career — summarize a small-team operating budget.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.FIN.10",
      "clusterId": "APP.FIN",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "The financial one-pager — plan a real month",
      "clusterTitle": "Personal Finance (APP.FIN)",
      "band": "7–8+",
      "hardLevel": 63,
      "id": "APP.FIN.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "The financial one-pager — plan a real month: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond The financial one-pager — plan a real month.",
      "content": "Accuracy — project rubric: balanced totals, percent checks, assumptions, risk buffer, and clear one-paragraph interpretation ≥7/8 · Explanation — why should a real budget include a buffer? · Transfer — produce a one-page plan for a different income and goal.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.LOG.01",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Scheduling with constraints (timetables)",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 11,
      "id": "APP.LOG.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Scheduling with constraints (timetables): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Scheduling with constraints (timetables).",
      "content": "Scheduling uses time constraints, durations, dependencies, and availability to build a workable timetable.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.LOG.01",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Scheduling with constraints (timetables)",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 11,
      "id": "APP.LOG.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Scheduling with constraints (timetables): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Scheduling with constraints (timetables).",
      "content": "If setup takes 30 min, activity takes 45 min, and cleanup takes 15 min, a 2:00 start finishes at 3:30 with no buffer.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.LOG.01",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Scheduling with constraints (timetables)",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 11,
      "id": "APP.LOG.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Scheduling with constraints (timetables): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Scheduling with constraints (timetables) into personal, civic/data, and career contexts.",
      "content": "Personal — plan homework, travel, and practice times. · Civic/Data — schedule volunteers for an event. · Career — create a shift handover timetable.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.LOG.01",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Scheduling with constraints (timetables)",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 11,
      "id": "APP.LOG.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Scheduling with constraints (timetables): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Scheduling with constraints (timetables).",
      "content": "Accuracy — 8 scheduling items with durations and constraints ≥7/8 · Explanation — why is a buffer useful? · Transfer — build a timetable from four tasks and two constraints.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.LOG.02",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Shortest route thinking (graph intuition)",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 12,
      "id": "APP.LOG.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Shortest route thinking (graph intuition): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Shortest route thinking (graph intuition).",
      "content": "Routes can be modeled as networks of nodes and edges; shortest route thinking compares path totals.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.LOG.02",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Shortest route thinking (graph intuition)",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 12,
      "id": "APP.LOG.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Shortest route thinking (graph intuition): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Shortest route thinking (graph intuition).",
      "content": "Paths A-B-D = 4 + 6 = 10 km and A-C-D = 5 + 3 = 8 km, so A-C-D is shorter.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.LOG.02",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Shortest route thinking (graph intuition)",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 12,
      "id": "APP.LOG.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Shortest route thinking (graph intuition): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Shortest route thinking (graph intuition) into personal, civic/data, and career contexts.",
      "content": "Personal — choose a walking route between stops. · Civic/Data — compare delivery routes for a food bank. · Career — plan service calls across several locations.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.LOG.02",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Shortest route thinking (graph intuition)",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 12,
      "id": "APP.LOG.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Shortest route thinking (graph intuition): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Shortest route thinking (graph intuition).",
      "content": "Accuracy — 8 route-network items calculating and comparing path totals ≥7/8 · Explanation — why is the route with fewer stops not always shorter? · Transfer — find the shortest path in a small network.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.LOG.03",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Loading and packing problems",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 13,
      "id": "APP.LOG.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Loading and packing problems: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Loading and packing problems.",
      "content": "Loading problems balance capacity, dimensions, weight, and item counts to fit as much as possible safely.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.LOG.03",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Loading and packing problems",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 13,
      "id": "APP.LOG.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Loading and packing problems: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Loading and packing problems.",
      "content": "A van holds 600 kg. If boxes weigh 18 kg each, at most floor(600/18) = 33 boxes by weight before checking volume.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.LOG.03",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Loading and packing problems",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 13,
      "id": "APP.LOG.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Loading and packing problems: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Loading and packing problems into personal, civic/data, and career contexts.",
      "content": "Personal — pack boxes into a car with weight and space limits. · Civic/Data — load supplies for an event. · Career — plan warehouse pallet loads.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.LOG.03",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Loading and packing problems",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 13,
      "id": "APP.LOG.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Loading and packing problems: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Loading and packing problems.",
      "content": "Accuracy — 8 capacity/packing items with rounding down and constraints ≥7/8 · Explanation — why must both weight and volume be checked? · Transfer — choose feasible load counts from two constraints.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.LOG.04",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Queues and throughput (rates in service)",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 14,
      "id": "APP.LOG.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Queues and throughput (rates in service): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Queues and throughput (rates in service).",
      "content": "Throughput measures how many people or items can be served per time; queues form when arrivals exceed service capacity.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.LOG.04",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Queues and throughput (rates in service)",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 14,
      "id": "APP.LOG.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Queues and throughput (rates in service): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Queues and throughput (rates in service).",
      "content": "If one station serves 12 people/hour and 30 people arrive each hour, three stations can serve 36/hour and prevent the queue growing.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.LOG.04",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Queues and throughput (rates in service)",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 14,
      "id": "APP.LOG.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Queues and throughput (rates in service): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Queues and throughput (rates in service) into personal, civic/data, and career contexts.",
      "content": "Personal — estimate wait time at a school canteen. · Civic/Data — plan entry gates for an event. · Career — compare checkout staffing to customer arrival rate.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.LOG.04",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Queues and throughput (rates in service)",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 14,
      "id": "APP.LOG.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Queues and throughput (rates in service): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Queues and throughput (rates in service).",
      "content": "Accuracy — 8 throughput/rate items ≥7/8 · Explanation — why does average arrival rate above capacity create a growing queue? · Transfer — calculate stations needed for a stated arrival rate.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.LOG.05",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Inventory — reorder points and buffers",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 15,
      "id": "APP.LOG.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Inventory — reorder points and buffers: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Inventory — reorder points and buffers.",
      "content": "Inventory planning uses demand rate, delivery time, and buffer stock to decide when to reorder.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.LOG.05",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Inventory — reorder points and buffers",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 15,
      "id": "APP.LOG.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Inventory — reorder points and buffers: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Inventory — reorder points and buffers.",
      "content": "If a cafe uses 8 bags/week and delivery takes 2 weeks, reorder before stock falls below 16 bags plus any safety buffer.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.LOG.05",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Inventory — reorder points and buffers",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 15,
      "id": "APP.LOG.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Inventory — reorder points and buffers: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Inventory — reorder points and buffers into personal, civic/data, and career contexts.",
      "content": "Personal — plan pantry stock before a camp. · Civic/Data — manage event supplies for signups. · Career — set reorder points for retail inventory.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.LOG.05",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Inventory — reorder points and buffers",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 15,
      "id": "APP.LOG.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Inventory — reorder points and buffers: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Inventory — reorder points and buffers.",
      "content": "Accuracy — 8 reorder-point calculations with lead time and buffer ≥7/8 · Explanation — why does longer lead time increase reorder point? · Transfer — compute reorder point from demand, lead time, and buffer.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.LOG.06",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Critical path — what delays the project?",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 16,
      "id": "APP.LOG.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Critical path — what delays the project?: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Critical path — what delays the project?.",
      "content": "The critical path is the chain of dependent tasks that determines the shortest possible project time.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.LOG.06",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Critical path — what delays the project?",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 16,
      "id": "APP.LOG.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Critical path — what delays the project?: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Critical path — what delays the project?.",
      "content": "If design takes 2 days before printing 3 days, and catering separately takes 4 days, the project duration is max(2+3, 4) = 5 days.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.LOG.06",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Critical path — what delays the project?",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 16,
      "id": "APP.LOG.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Critical path — what delays the project?: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Critical path — what delays the project? into personal, civic/data, and career contexts.",
      "content": "Personal — plan tasks before an assignment deadline. · Civic/Data — schedule event preparation tasks. · Career — map dependencies in a small project.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.LOG.06",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Critical path — what delays the project?",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 16,
      "id": "APP.LOG.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Critical path — what delays the project?: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Critical path — what delays the project?.",
      "content": "Accuracy — 8 dependency/critical-path items ≥7/8 · Explanation — why does delaying a non-critical task sometimes not delay the finish? · Transfer — identify critical path in a small task network.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.LOG.07",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Assignment problems (who does what)",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 17,
      "id": "APP.LOG.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Assignment problems (who does what): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Assignment problems (who does what).",
      "content": "Assignment problems match people or resources to tasks while respecting skills, time, cost, and fairness constraints.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.LOG.07",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Assignment problems (who does what)",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 17,
      "id": "APP.LOG.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Assignment problems (who does what): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Assignment problems (who does what).",
      "content": "If Alex can do posters in 2 h and Sam in 4 h, while Sam can do tickets faster, assign tasks to minimize total time under availability.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.LOG.07",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Assignment problems (who does what)",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 17,
      "id": "APP.LOG.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Assignment problems (who does what): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Assignment problems (who does what) into personal, civic/data, and career contexts.",
      "content": "Personal — divide group-project jobs fairly. · Civic/Data — assign volunteers to event stations. · Career — allocate staff to tasks by skill and availability.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.LOG.07",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Assignment problems (who does what)",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 17,
      "id": "APP.LOG.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Assignment problems (who does what): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Assignment problems (who does what).",
      "content": "Accuracy — 8 assignment-table items comparing feasible allocations ≥7/8 · Explanation — why is fastest-person-does-everything often not feasible? · Transfer — choose an assignment plan from a small cost/time table.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.LOG.08",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Trade-offs — speed vs cost vs quality",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 18,
      "id": "APP.LOG.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Trade-offs — speed vs cost vs quality: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Trade-offs — speed vs cost vs quality.",
      "content": "Logistics choices often trade off speed, cost, quality, reliability, and risk; the best option depends on the decision criteria.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.LOG.08",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Trade-offs — speed vs cost vs quality",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 18,
      "id": "APP.LOG.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Trade-offs — speed vs cost vs quality: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Trade-offs — speed vs cost vs quality.",
      "content": "Express shipping costs $40 and takes 1 day; standard costs $12 and takes 5 days. The best choice depends on deadline value and budget.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.LOG.08",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Trade-offs — speed vs cost vs quality",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 18,
      "id": "APP.LOG.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Trade-offs — speed vs cost vs quality: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Trade-offs — speed vs cost vs quality into personal, civic/data, and career contexts.",
      "content": "Personal — choose delivery speed for a needed item. · Civic/Data — compare event suppliers by cost and reliability. · Career — choose a production method under time and quality constraints.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.LOG.08",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Trade-offs — speed vs cost vs quality",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 18,
      "id": "APP.LOG.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Trade-offs — speed vs cost vs quality: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Trade-offs — speed vs cost vs quality.",
      "content": "Accuracy — 8 trade-off matrix items with recommendation and caveat ≥7/8 · Explanation — why can the cheapest option be the wrong choice? · Transfer — rank three options using stated criteria.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.LOG.09",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Capacity planning with peak demand",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 19,
      "id": "APP.LOG.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Capacity planning with peak demand: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Capacity planning with peak demand.",
      "content": "Capacity planning must handle peak demand, not just average demand, when waiting or failure at peaks matters.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.LOG.09",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Capacity planning with peak demand",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 19,
      "id": "APP.LOG.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Capacity planning with peak demand: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Capacity planning with peak demand.",
      "content": "Average arrivals are 20/hour, but lunch peak is 55/hour. Staffing for 20/hour fails during the peak.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.LOG.09",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Capacity planning with peak demand",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 19,
      "id": "APP.LOG.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Capacity planning with peak demand: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Capacity planning with peak demand into personal, civic/data, and career contexts.",
      "content": "Personal — plan enough food for busiest attendance estimate. · Civic/Data — staff entry gates for peak arrival windows. · Career — plan server or checkout capacity for peak load.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.LOG.09",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Capacity planning with peak demand",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 19,
      "id": "APP.LOG.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Capacity planning with peak demand: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Capacity planning with peak demand.",
      "content": "Accuracy — 8 peak-vs-average capacity items ≥7/8 · Explanation — why can averages hide bottlenecks? · Transfer — choose capacity from a demand table with a visible peak.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.LOG.10",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Logistics capstone — plan an event end-to-end",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 20,
      "id": "APP.LOG.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Logistics capstone — plan an event end-to-end: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Logistics capstone — plan an event end-to-end.",
      "content": "A logistics capstone combines schedule, route, loading, throughput, inventory, assignments, trade-offs, peak capacity, and risk planning.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.LOG.10",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Logistics capstone — plan an event end-to-end",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 20,
      "id": "APP.LOG.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Logistics capstone — plan an event end-to-end: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Logistics capstone — plan an event end-to-end.",
      "content": "Project walkthrough: plan a school fair by scheduling setup, mapping supply routes, assigning volunteers, checking entry throughput, stocking inventory, and planning for peak arrivals.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.LOG.10",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Logistics capstone — plan an event end-to-end",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 20,
      "id": "APP.LOG.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Logistics capstone — plan an event end-to-end: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Logistics capstone — plan an event end-to-end into personal, civic/data, and career contexts.",
      "content": "Personal — plan a group trip or celebration. · Civic/Data — plan a community event. · Career — plan a small service launch.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.LOG.10",
      "clusterId": "APP.LOG",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Logistics capstone — plan an event end-to-end",
      "clusterTitle": "Logistics & Optimization (APP.LOG)",
      "band": "7–8+",
      "hardLevel": 20,
      "id": "APP.LOG.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Logistics capstone — plan an event end-to-end: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Logistics capstone — plan an event end-to-end.",
      "content": "Accuracy — project rubric: timetable, route/load plan, throughput check, inventory, assignments, trade-off rationale, peak plan, and risk note ≥7/8 · Explanation — what would most likely delay or break the plan? · Transfer — produce an end-to-end logistics plan for a new event brief.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.MOD.01",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "What is a model? Maps, formulas, simulations",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 30,
      "id": "APP.MOD.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "What is a model? Maps, formulas, simulations: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of What is a model? Maps, formulas, simulations.",
      "content": "A model is a simplified representation used to answer a question; maps, formulas, tables, diagrams, and simulations are all models.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.MOD.01",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "What is a model? Maps, formulas, simulations",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 30,
      "id": "APP.MOD.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "What is a model? Maps, formulas, simulations: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for What is a model? Maps, formulas, simulations.",
      "content": "A subway map is not geographically exact, but it models connections clearly enough to plan travel.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.MOD.01",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "What is a model? Maps, formulas, simulations",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 30,
      "id": "APP.MOD.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "What is a model? Maps, formulas, simulations: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer What is a model? Maps, formulas, simulations into personal, civic/data, and career contexts.",
      "content": "Personal — use a budget table as a model of spending. · Civic/Data — compare a weather map and forecast equation. · Career — use a prototype or spreadsheet to model a product decision.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.MOD.01",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "What is a model? Maps, formulas, simulations",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 30,
      "id": "APP.MOD.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "What is a model? Maps, formulas, simulations: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond What is a model? Maps, formulas, simulations.",
      "content": "Accuracy — 8 items identifying models, purposes, and simplifications ≥7/8 · Explanation — why is a useful model not the same as reality? · Transfer — name two models for planning a school event.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.MOD.02",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Define the question precisely",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 31,
      "id": "APP.MOD.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Define the question precisely: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Define the question precisely.",
      "content": "A precise modeling question names the decision, quantity, timeframe, and criteria for a useful answer.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.MOD.02",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Define the question precisely",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 31,
      "id": "APP.MOD.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Define the question precisely: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Define the question precisely.",
      "content": "\"Is the fair expensive?\" becomes \"How many attendees are needed for ticket revenue to cover the $600 venue fee and $2 per attendee cost?\"",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.MOD.02",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Define the question precisely",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 31,
      "id": "APP.MOD.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Define the question precisely: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Define the question precisely into personal, civic/data, and career contexts.",
      "content": "Personal — turn \"Can I afford it?\" into a target-date savings question. · Civic/Data — refine a council planning question. · Career — define a staffing or inventory question.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.MOD.02",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Define the question precisely",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 31,
      "id": "APP.MOD.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Define the question precisely: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Define the question precisely.",
      "content": "Accuracy — 8 vague-to-precise question rewrites ≥7/8 · Explanation — what changes when the timeframe is specified? · Transfer — rewrite a vague transport-cost question precisely.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.MOD.03",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Identify quantities and relationships",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 32,
      "id": "APP.MOD.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Identify quantities and relationships: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Identify quantities and relationships.",
      "content": "Modeling requires naming measurable quantities and how they relate: totals, rates, differences, constraints, or proportional links.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.MOD.03",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Identify quantities and relationships",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 32,
      "id": "APP.MOD.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Identify quantities and relationships: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Identify quantities and relationships.",
      "content": "For event cost, quantities include venue fee, attendees, material cost per attendee, and total cost; relationship: total = fixed fee + per-attendee cost.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.MOD.03",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Identify quantities and relationships",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 32,
      "id": "APP.MOD.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Identify quantities and relationships: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Identify quantities and relationships into personal, civic/data, and career contexts.",
      "content": "Personal — identify quantities in a savings plan. · Civic/Data — list quantities in a recycling-rate question. · Career — map inputs for a staffing cost model.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.MOD.03",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Identify quantities and relationships",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 32,
      "id": "APP.MOD.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Identify quantities and relationships: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Identify quantities and relationships.",
      "content": "Accuracy — 8 quantity/relationship identification items ≥7/8 · Explanation — why are units part of identifying quantities? · Transfer — identify quantities and relationships in a delivery-fee problem.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.MOD.04",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Make and state assumptions",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 33,
      "id": "APP.MOD.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Make and state assumptions: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Make and state assumptions.",
      "content": "Assumptions fill gaps and simplify reality; stating them lets others judge whether the model is fair to use.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.MOD.04",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Make and state assumptions",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 33,
      "id": "APP.MOD.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Make and state assumptions: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Make and state assumptions.",
      "content": "A lunch-cost model may assume every student buys one meal, prices do not change, and tax is included.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.MOD.04",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Make and state assumptions",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 33,
      "id": "APP.MOD.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Make and state assumptions: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Make and state assumptions into personal, civic/data, and career contexts.",
      "content": "Personal — state assumptions in a travel-time estimate. · Civic/Data — state assumptions in an event attendance forecast. · Career — state assumptions in a quote or inventory model.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.MOD.04",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Make and state assumptions",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 33,
      "id": "APP.MOD.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Make and state assumptions: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Make and state assumptions.",
      "content": "Accuracy — 8 assumption-identification and critique items ≥7/8 · Explanation — how can a hidden assumption change the answer? · Transfer — list three assumptions for a fundraising model.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.MOD.05",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Build — diagram, table, formula",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 34,
      "id": "APP.MOD.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Build — diagram, table, formula: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Build — diagram, table, formula.",
      "content": "Build the model in a useful form: a diagram for structure, a table for patterns, or a formula for calculation.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.MOD.05",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Build — diagram, table, formula",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 34,
      "id": "APP.MOD.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Build — diagram, table, formula: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Build — diagram, table, formula.",
      "content": "For pizza party cost, use a table of guests and pizzas, then a formula C = 12p + 25 for pizza cost plus room fee.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.MOD.05",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Build — diagram, table, formula",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 34,
      "id": "APP.MOD.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Build — diagram, table, formula: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Build — diagram, table, formula into personal, civic/data, and career contexts.",
      "content": "Personal — build a savings table and formula. · Civic/Data — draw a layout diagram for event capacity. · Career — create a staffing table from shifts and hourly rates.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.MOD.05",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Build — diagram, table, formula",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 34,
      "id": "APP.MOD.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Build — diagram, table, formula: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Build — diagram, table, formula.",
      "content": "Accuracy — 8 prompts choosing and building a suitable representation ≥7/8 · Explanation — why might a table be clearer than a formula early on? · Transfer — build a model representation for a snack-stand plan.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.MOD.06",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Compute and interpret",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 35,
      "id": "APP.MOD.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Compute and interpret: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Compute and interpret.",
      "content": "Computation produces numbers; interpretation turns them into an answer to the original question with units and context.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.MOD.06",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Compute and interpret",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 35,
      "id": "APP.MOD.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Compute and interpret: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Compute and interpret.",
      "content": "If C = 25 + 12p and p = 8, then C = $121. Interpretation: eight pizzas plus room fee cost $121.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.MOD.06",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Compute and interpret",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 35,
      "id": "APP.MOD.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Compute and interpret: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Compute and interpret into personal, civic/data, and career contexts.",
      "content": "Personal — compute and interpret savings at month 6. · Civic/Data — compute event cost at 80 attendees. · Career — compute labor cost for a shift plan.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.MOD.06",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Compute and interpret",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 35,
      "id": "APP.MOD.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Compute and interpret: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Compute and interpret.",
      "content": "Accuracy — 8 compute-and-interpret items with units ≥7/8 · Explanation — why is a number without units incomplete? · Transfer — calculate and write a one-sentence answer for a model output.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.MOD.07",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Validate against known cases",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 36,
      "id": "APP.MOD.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Validate against known cases: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Validate against known cases.",
      "content": "Validation checks whether a model gives sensible answers for cases you already understand.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.MOD.07",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Validate against known cases",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 36,
      "id": "APP.MOD.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Validate against known cases: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Validate against known cases.",
      "content": "A cost model with 0 guests should still include the fixed room fee if the fee is paid regardless; if it gives $0, something is wrong.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.MOD.07",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Validate against known cases",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 36,
      "id": "APP.MOD.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Validate against known cases: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Validate against known cases into personal, civic/data, and career contexts.",
      "content": "Personal — test a savings model at month 0. · Civic/Data — check a capacity model against a known small event. · Career — test an invoice formula with a simple one-hour job.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.MOD.07",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Validate against known cases",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 36,
      "id": "APP.MOD.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Validate against known cases: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Validate against known cases.",
      "content": "Accuracy — 8 validation items using known or edge cases ≥7/8 · Explanation — why is testing zero often useful? · Transfer — validate a fixed-plus-rate model at two easy inputs.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.MOD.08",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Refine — one assumption at a time",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 37,
      "id": "APP.MOD.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Refine — one assumption at a time: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Refine — one assumption at a time.",
      "content": "Refinement improves a model by changing one assumption or structure at a time, then checking whether the result improves.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.MOD.08",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Refine — one assumption at a time",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 37,
      "id": "APP.MOD.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Refine — one assumption at a time: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Refine — one assumption at a time.",
      "content": "If a party model ignores dietary restrictions, refine by adding a vegetarian-pizza count while keeping the guest estimate fixed.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.MOD.08",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Refine — one assumption at a time",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 37,
      "id": "APP.MOD.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Refine — one assumption at a time: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Refine — one assumption at a time into personal, civic/data, and career contexts.",
      "content": "Personal — update a budget after a new fixed cost. · Civic/Data — revise attendance forecast after rain is predicted. · Career — adjust staffing model after actual demand data arrives.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.MOD.08",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Refine — one assumption at a time",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 37,
      "id": "APP.MOD.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Refine — one assumption at a time: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Refine — one assumption at a time.",
      "content": "Accuracy — 8 refinement items naming old assumption, new assumption, and effect ≥7/8 · Explanation — why change one assumption at a time? · Transfer — refine a travel-time model after learning traffic is heavy.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.MOD.09",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Sensitivity — which inputs matter most?",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 38,
      "id": "APP.MOD.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Sensitivity — which inputs matter most?: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Sensitivity — which inputs matter most?.",
      "content": "Sensitivity asks which input changes have the largest effect on the output, helping focus measurement and decisions.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.MOD.09",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Sensitivity — which inputs matter most?",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 38,
      "id": "APP.MOD.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Sensitivity — which inputs matter most?: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Sensitivity — which inputs matter most?.",
      "content": "In C = 600 + 2a, attendee count changes cost by $2 each, but venue fee changes cost dollar-for-dollar; a $100 venue change matters as much as 50 attendees.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.MOD.09",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Sensitivity — which inputs matter most?",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 38,
      "id": "APP.MOD.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Sensitivity — which inputs matter most?: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Sensitivity — which inputs matter most? into personal, civic/data, and career contexts.",
      "content": "Personal — see whether income or rent changes affect a budget more. · Civic/Data — test which event cost input drives total cost. · Career — identify whether labor rate or material cost matters most.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.MOD.09",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Sensitivity — which inputs matter most?",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 38,
      "id": "APP.MOD.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Sensitivity — which inputs matter most?: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Sensitivity — which inputs matter most?.",
      "content": "Accuracy — 8 sensitivity items changing one input and comparing output effect ≥7/8 · Explanation — how does sensitivity help decide what to measure carefully? · Transfer — test two inputs in a cost model and rank impact.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.MOD.10",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Full cycle capstone — pizza party to city planning",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 39,
      "id": "APP.MOD.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Full cycle capstone — pizza party to city planning: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Full cycle capstone — pizza party to city planning.",
      "content": "A full modeling cycle defines a question, builds a model, computes, validates, refines, and communicates the answer with limitations.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.MOD.10",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Full cycle capstone — pizza party to city planning",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 39,
      "id": "APP.MOD.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Full cycle capstone — pizza party to city planning: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Full cycle capstone — pizza party to city planning.",
      "content": "Project walkthrough: plan a pizza party by defining budget question, estimating guests, modeling pizzas and drinks, checking against known prices, refining for dietary needs, and writing the final recommendation.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.MOD.10",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Full cycle capstone — pizza party to city planning",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 39,
      "id": "APP.MOD.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Full cycle capstone — pizza party to city planning: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Full cycle capstone — pizza party to city planning into personal, civic/data, and career contexts.",
      "content": "Personal — plan a group event. · Civic/Data — model a park cleanup supply plan. · Career — model staffing for a small weekend service.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.MOD.10",
      "clusterId": "APP.MOD",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Full cycle capstone — pizza party to city planning",
      "clusterTitle": "The Modeling Cycle (APP.MOD)",
      "band": "7–8+",
      "hardLevel": 39,
      "id": "APP.MOD.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Full cycle capstone — pizza party to city planning: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Full cycle capstone — pizza party to city planning.",
      "content": "Accuracy — project rubric: precise question, quantities, assumptions, model, computation, validation, refinement, and communication ≥7/8 · Explanation — why is the cycle iterative rather than one pass? · Transfer — complete the full cycle for a new school or community planning problem.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.SCI.01",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Quantities and units in science (SI fluency)",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 7,
      "id": "APP.SCI.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Quantities and units in science (SI fluency): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Quantities and units in science (SI fluency).",
      "content": "Science calculations depend on quantities with units; SI units and prefixes keep measurements comparable.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.SCI.01",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Quantities and units in science (SI fluency)",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 7,
      "id": "APP.SCI.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Quantities and units in science (SI fluency): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Quantities and units in science (SI fluency).",
      "content": "2.5 km = 2,500 m; 300 mL = 0.3 L. Unit conversion must match the quantity being measured.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.SCI.01",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Quantities and units in science (SI fluency)",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 7,
      "id": "APP.SCI.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Quantities and units in science (SI fluency): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Quantities and units in science (SI fluency) into personal, civic/data, and career contexts.",
      "content": "Personal — convert nutrition or exercise measurements. · Civic/Data — read water-use data in litres and kilolitres. · Career — convert lab measurements before calculation.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.SCI.01",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Quantities and units in science (SI fluency)",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 7,
      "id": "APP.SCI.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Quantities and units in science (SI fluency): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Quantities and units in science (SI fluency).",
      "content": "Accuracy — 8 SI conversion and unit interpretation items ≥7/8 · Explanation — why cannot metres and square metres be converted the same way? · Transfer — convert mixed metric measurements in a science table.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.SCI.02",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Rates of change in experiments (speed, flow, growth)",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 11,
      "id": "APP.SCI.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Rates of change in experiments (speed, flow, growth): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Rates of change in experiments (speed, flow, growth).",
      "content": "Rates describe how one quantity changes per unit of another, such as metres per second, litres per minute, or cells per hour.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.SCI.02",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Rates of change in experiments (speed, flow, growth)",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 11,
      "id": "APP.SCI.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Rates of change in experiments (speed, flow, growth): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Rates of change in experiments (speed, flow, growth).",
      "content": "If 600 mL drains in 4 minutes, flow rate = 600/4 = 150 mL/min.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.SCI.02",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Rates of change in experiments (speed, flow, growth)",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 11,
      "id": "APP.SCI.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Rates of change in experiments (speed, flow, growth): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Rates of change in experiments (speed, flow, growth) into personal, civic/data, and career contexts.",
      "content": "Personal — calculate walking speed. · Civic/Data — interpret water-flow readings. · Career — compute growth rate in a lab culture.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.SCI.02",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Rates of change in experiments (speed, flow, growth)",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 11,
      "id": "APP.SCI.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Rates of change in experiments (speed, flow, growth): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Rates of change in experiments (speed, flow, growth).",
      "content": "Accuracy — 8 experimental-rate calculations with units ≥7/8 · Explanation — what does \"per\" mean in the rate unit? · Transfer — compute speed from distance and time data.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.SCI.03",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Reading and building science graphs",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 12,
      "id": "APP.SCI.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Reading and building science graphs: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Reading and building science graphs.",
      "content": "Science graphs show relationships between variables; axes, units, scale, trend, and anomalies must be read carefully.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.SCI.03",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Reading and building science graphs",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 12,
      "id": "APP.SCI.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Reading and building science graphs: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Reading and building science graphs.",
      "content": "A temperature-time graph rising steeply then flattening suggests fast heating followed by approaching a maximum or steady state.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.SCI.03",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Reading and building science graphs",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 12,
      "id": "APP.SCI.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Reading and building science graphs: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Reading and building science graphs into personal, civic/data, and career contexts.",
      "content": "Personal — graph heart rate after exercise. · Civic/Data — read temperature data from a public weather station. · Career — graph reaction rate or machine temperature over time.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.SCI.03",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Reading and building science graphs",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 12,
      "id": "APP.SCI.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Reading and building science graphs: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Reading and building science graphs.",
      "content": "Accuracy — 8 science-graph reading/building items ≥7/8 · Explanation — why should the independent variable usually go on the x-axis? · Transfer — build a graph from a small experiment table.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.SCI.04",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Density and other derived quantities",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 13,
      "id": "APP.SCI.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Density and other derived quantities: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Density and other derived quantities.",
      "content": "Derived quantities combine measurements, such as density = mass/volume, and their units reveal the relationship.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.SCI.04",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Density and other derived quantities",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 13,
      "id": "APP.SCI.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Density and other derived quantities: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Density and other derived quantities.",
      "content": "A 240 g object with volume 80 cm³ has density 240/80 = 3 g/cm³.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.SCI.04",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Density and other derived quantities",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 13,
      "id": "APP.SCI.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Density and other derived quantities: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Density and other derived quantities into personal, civic/data, and career contexts.",
      "content": "Personal — compare density of objects that sink or float. · Civic/Data — interpret population density as people per area. · Career — calculate material density in a workshop or lab.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.SCI.04",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Density and other derived quantities",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 13,
      "id": "APP.SCI.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Density and other derived quantities: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Density and other derived quantities.",
      "content": "Accuracy — 8 derived-quantity calculations with units ≥7/8 · Explanation — how does the unit g/cm³ show the calculation? · Transfer — compute density and rearrange for mass or volume.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.SCI.05",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Proportional laws (Hooke, Ohm — math side)",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 14,
      "id": "APP.SCI.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Proportional laws (Hooke, Ohm — math side): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Proportional laws (Hooke, Ohm — math side).",
      "content": "Some science laws are proportional relationships where one quantity equals a constant times another within a valid range.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.SCI.05",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Proportional laws (Hooke, Ohm — math side)",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 14,
      "id": "APP.SCI.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Proportional laws (Hooke, Ohm — math side): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Proportional laws (Hooke, Ohm — math side).",
      "content": "Ohm's law V = IR means voltage is proportional to current if resistance is constant. With R = 4 ohms and I = 3 A, V = 12 V.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.SCI.05",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Proportional laws (Hooke, Ohm — math side)",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 14,
      "id": "APP.SCI.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Proportional laws (Hooke, Ohm — math side): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Proportional laws (Hooke, Ohm — math side) into personal, civic/data, and career contexts.",
      "content": "Personal — read a simple spring-extension table. · Civic/Data — interpret proportional energy-use data. · Career — use a proportional formula in electronics or materials testing.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.SCI.05",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Proportional laws (Hooke, Ohm — math side)",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 14,
      "id": "APP.SCI.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Proportional laws (Hooke, Ohm — math side): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Proportional laws (Hooke, Ohm — math side).",
      "content": "Accuracy — 8 proportional-law items with constants and units ≥7/8 · Explanation — what does \"within a valid range\" mean for a law? · Transfer — find the constant from a table and use it to predict another value.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.SCI.06",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Scaling laws — why ants lift and elephants don't",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 15,
      "id": "APP.SCI.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Scaling laws — why ants lift and elephants don't: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Scaling laws — why ants lift and elephants don't.",
      "content": "Scaling changes length, area, and volume at different rates; doubling length multiplies area by 4 and volume by 8.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.SCI.06",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Scaling laws — why ants lift and elephants don't",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 15,
      "id": "APP.SCI.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Scaling laws — why ants lift and elephants don't: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Scaling laws — why ants lift and elephants don't.",
      "content": "A cube scaled by factor 3 has surface area 9 times larger and volume 27 times larger.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.SCI.06",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Scaling laws — why ants lift and elephants don't",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 15,
      "id": "APP.SCI.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Scaling laws — why ants lift and elephants don't: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Scaling laws — why ants lift and elephants don't into personal, civic/data, and career contexts.",
      "content": "Personal — compare model size to real object size. · Civic/Data — understand why infrastructure models need scale factors. · Career — estimate material and weight changes when a design is scaled.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.SCI.06",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Scaling laws — why ants lift and elephants don't",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 15,
      "id": "APP.SCI.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Scaling laws — why ants lift and elephants don't: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Scaling laws — why ants lift and elephants don't.",
      "content": "Accuracy — 8 scale-factor area/volume items ≥7/8 · Explanation — why does volume grow faster than length? · Transfer — calculate area and volume factors for scale factor 5.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.SCI.07",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Estimation in science (Fermi in the lab)",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 16,
      "id": "APP.SCI.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Estimation in science (Fermi in the lab): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Estimation in science (Fermi in the lab).",
      "content": "Scientific estimation uses reasonable assumptions, units, and order-of-magnitude checks when exact data is unavailable.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.SCI.07",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Estimation in science (Fermi in the lab)",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 16,
      "id": "APP.SCI.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Estimation in science (Fermi in the lab): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Estimation in science (Fermi in the lab).",
      "content": "Estimate drops in a litre: if one drop is about 0.05 mL, then 1,000 mL / 0.05 mL ≈ 20,000 drops.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.SCI.07",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Estimation in science (Fermi in the lab)",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 16,
      "id": "APP.SCI.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Estimation in science (Fermi in the lab): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Estimation in science (Fermi in the lab) into personal, civic/data, and career contexts.",
      "content": "Personal — estimate daily water use. · Civic/Data — estimate waste from a school event. · Career — estimate lab material needed before exact ordering.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.SCI.07",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Estimation in science (Fermi in the lab)",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 16,
      "id": "APP.SCI.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Estimation in science (Fermi in the lab): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Estimation in science (Fermi in the lab).",
      "content": "Accuracy — 8 estimation items requiring assumptions and reasonableness checks ≥7/8 · Explanation — why is an order-of-magnitude answer still useful? · Transfer — estimate a science quantity from given rough assumptions.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.SCI.08",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Error and uncertainty in experiments",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 17,
      "id": "APP.SCI.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Error and uncertainty in experiments: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Error and uncertainty in experiments.",
      "content": "Measurements have uncertainty from instruments, methods, and variation; results should be reported with appropriate precision.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.SCI.08",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Error and uncertainty in experiments",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 17,
      "id": "APP.SCI.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Error and uncertainty in experiments: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Error and uncertainty in experiments.",
      "content": "A ruler marked in millimetres might measure length as 12.4 cm ± 0.05 cm, not as an exact value.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.SCI.08",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Error and uncertainty in experiments",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 17,
      "id": "APP.SCI.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Error and uncertainty in experiments: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Error and uncertainty in experiments into personal, civic/data, and career contexts.",
      "content": "Personal — compare repeated timing measurements. · Civic/Data — read uncertainty in environmental measurements. · Career — report lab measurements with sensible precision.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.SCI.08",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Error and uncertainty in experiments",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 17,
      "id": "APP.SCI.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Error and uncertainty in experiments: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Error and uncertainty in experiments.",
      "content": "Accuracy — 8 uncertainty/precision items ≥7/8 · Explanation — why is more decimal places not always more accurate? · Transfer — report repeated measurements with a sensible range.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.SCI.09",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Simple simulations — step-by-step models",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 18,
      "id": "APP.SCI.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Simple simulations — step-by-step models: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Simple simulations — step-by-step models.",
      "content": "A simulation updates a system step by step using rules, allowing learners to explore change over time.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.SCI.09",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Simple simulations — step-by-step models",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 18,
      "id": "APP.SCI.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Simple simulations — step-by-step models: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Simple simulations — step-by-step models.",
      "content": "A cooling model subtracts 10% of the difference from room temperature each minute; a table updates temperature step by step.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.SCI.09",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Simple simulations — step-by-step models",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 18,
      "id": "APP.SCI.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Simple simulations — step-by-step models: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Simple simulations — step-by-step models into personal, civic/data, and career contexts.",
      "content": "Personal — simulate phone battery drain by percent per hour. · Civic/Data — simulate water storage after daily inflow/outflow. · Career — simulate stock level under demand and reorder rules.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.SCI.09",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Simple simulations — step-by-step models",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 18,
      "id": "APP.SCI.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Simple simulations — step-by-step models: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Simple simulations — step-by-step models.",
      "content": "Accuracy — 8 step-by-step simulation table items ≥7/8 · Explanation — why does each step depend on the previous result? · Transfer — complete five steps of a simple growth or decay simulation.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "APP.SCI.10",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Model vs experiment — closing the loop",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 19,
      "id": "APP.SCI.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Model vs experiment — closing the loop: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Model vs experiment — closing the loop.",
      "content": "Scientific modeling compares predictions with experiment, explains differences, and refines the model or method.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "APP.SCI.10",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Model vs experiment — closing the loop",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 19,
      "id": "APP.SCI.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Model vs experiment — closing the loop: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Model vs experiment — closing the loop.",
      "content": "Project walkthrough: predict cooling with a simple percent model, collect temperature data, graph prediction and experiment, identify mismatch, and refine the cooling rate.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "APP.SCI.10",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Model vs experiment — closing the loop",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 19,
      "id": "APP.SCI.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Model vs experiment — closing the loop: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Model vs experiment — closing the loop into personal, civic/data, and career contexts.",
      "content": "Personal — compare predicted and actual battery drain. · Civic/Data — compare rainfall-runoff model with measured water levels. · Career — compare lab reaction model with observed data.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "APP.SCI.10",
      "clusterId": "APP.SCI",
      "domain": "APP",
      "domainName": "Applied Modeling",
      "skillTitle": "Model vs experiment — closing the loop",
      "clusterTitle": "Science & Simulation Math (APP.SCI)",
      "band": "7–8+",
      "hardLevel": 19,
      "id": "APP.SCI.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Model vs experiment — closing the loop: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Model vs experiment — closing the loop.",
      "content": "Accuracy — project rubric: model rule, prediction table, experiment data, graph comparison, error discussion, refinement, and final claim ≥7/8 · Explanation — why is mismatch useful rather than just failure? · Transfer — complete a model-vs-experiment writeup for a new simple system.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.CMP.01",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Comparing two groups with medians and IQR",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 0,
      "id": "DAT.CMP.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Comparing two groups with medians and IQR: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Comparing two groups with medians and IQR.",
      "content": "Compare groups the way you'd describe one: center against center (medians), spread against spread (IQRs). \"B centers higher and varies less\" is a complete comparison; \"B's best beat A's best\" is not.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.CMP.01",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Comparing two groups with medians and IQR",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 0,
      "id": "DAT.CMP.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Comparing two groups with medians and IQR: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Comparing two groups with medians and IQR.",
      "content": "Times (min) — Group A: 10, 12, 13, 14, 16, 18, 20 → median 14, Q1 12, Q3 18, IQR 6. Group B: 15, 16, 17, 18, 19, 20, 22 → median 18, Q1 16, Q3 20, IQR 4. B centers 4 higher and is tighter (IQR 4 vs 6).",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.CMP.01",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Comparing two groups with medians and IQR",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 0,
      "id": "DAT.CMP.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Comparing two groups with medians and IQR: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Comparing two groups with medians and IQR into personal, civic/data, and career contexts.",
      "content": "Personal — Compare your sprint times in old vs new shoes with medians and IQRs before crediting the shoes. · Civic/Data — Compare broadband speeds reported by two neighborhoods for the council's coverage review. · Career — A farm intern compares tomato yields under two fertilizers using medians and IQRs across plots.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.CMP.01",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Comparing two groups with medians and IQR",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 0,
      "id": "DAT.CMP.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Comparing two groups with medians and IQR: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Comparing two groups with medians and IQR.",
      "content": "Accuracy — 5 items: compute both summaries and compare (3), read the comparison off paired box plots (2); pass ≥4/5 · Explanation — \"'B is better — its maximum is higher!' Find the flaw using medians and IQRs.\" · Transfer — compare two airlines' delay data from their five-number summaries.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.CMP.02",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Comparing with means and MAD",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 1,
      "id": "DAT.CMP.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Comparing with means and MAD: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Comparing with means and MAD.",
      "content": "With means, the question is \"how many MADs apart are the centers?\" A gap of several MADs separates the groups cleanly; a gap smaller than one MAD drowns in ordinary variation.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.CMP.02",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Comparing with means and MAD",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 1,
      "id": "DAT.CMP.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Comparing with means and MAD: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Comparing with means and MAD.",
      "content": "X: 10, 12, 12, 14 → mean 12, MAD = (2+0+0+2)÷4 = 1. Y: 17, 19, 19, 21 → mean 19, MAD 1. Gap = 19 − 12 = 7 → seven MADs apart: the groups barely overlap, so the difference is visibly real.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.CMP.02",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Comparing with means and MAD",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 1,
      "id": "DAT.CMP.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Comparing with means and MAD: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Comparing with means and MAD into personal, civic/data, and career contexts.",
      "content": "Personal — Compare your bowling scores at two different alleys with means and MADs before blaming the lanes. · Civic/Data — Compare river pH readings before and after the cleanup: did the mean move by more than the usual wobble? · Career — A lab tech compares two thermometers on the same water bath — equal means, different MADs.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.CMP.02",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Comparing with means and MAD",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 1,
      "id": "DAT.CMP.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Comparing with means and MAD: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Comparing with means and MAD.",
      "content": "Accuracy — 5 items: compute means + MADs and express the gap in MADs (3), pick the cleaner separation from two pairs (2); pass ≥4/5 · Explanation — \"Both thermometers average correctly but one has triple the MAD — why is it less trustworthy even though the means agree?\" · Transfer — compare two popcorn brands by mean and MAD of unpopped kernels per bag.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.CMP.03",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Overlap — when is a difference meaningful?",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 2,
      "id": "DAT.CMP.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Overlap — when is a difference meaningful?: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Overlap — when is a difference meaningful?.",
      "content": "A difference in centers only means something when it's large compared to the spread. Heavily overlapping distributions make \"Group B wins\" a coin-flip claim — the gap-to-spread ratio is the honesty check.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.CMP.03",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Overlap — when is a difference meaningful?",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 2,
      "id": "DAT.CMP.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Overlap — when is a difference meaningful?: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Overlap — when is a difference meaningful?.",
      "content": "Plant heights: Method A mean 20 cm, Method B mean 22 cm, both MAD 4 → gap 2 = 0.5 MAD; the dot plots overlap almost completely — \"B grows taller\" is shaky. Same gap with MAD 0.5 → 4 MADs apart — now it's convincing.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.CMP.03",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Overlap — when is a difference meaningful?",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 2,
      "id": "DAT.CMP.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Overlap — when is a difference meaningful?: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Overlap — when is a difference meaningful? into personal, civic/data, and career contexts.",
      "content": "Personal — Your average score with the \"lucky\" controller is 1 point higher across wildly varying games — meaningful or noise? · Civic/Data — One park measures 1 dB quieter with huge overlap between readings — does the \"quietest park in town\" headline hold? · Career — A product intern judges whether +0.3 minutes of average session time, with big spread, justifies shipping the redesign.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.CMP.03",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Overlap — when is a difference meaningful?",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 2,
      "id": "DAT.CMP.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Overlap — when is a difference meaningful?: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Overlap — when is a difference meaningful?.",
      "content": "Accuracy — 5 items: compute gap-to-MAD ratios and judge (3), rank three comparisons by strength of evidence (2); pass ≥4/5 · Explanation — \"Why does a large MAD make a small gap unconvincing? Argue from the overlapping dot plots, not the formula.\" · Transfer — decide whether pen vs pencil handwriting-speed data shows a meaningful difference.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.CMP.04",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Double bar and side-by-side displays",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 3,
      "id": "DAT.CMP.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Double bar and side-by-side displays: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Double bar and side-by-side displays.",
      "content": "Paired displays — double bars, side-by-side box plots or dot plots — put two groups on one set of axes so every comparison is a glance. One shared scale is the non-negotiable ingredient.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.CMP.04",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Double bar and side-by-side displays",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 3,
      "id": "DAT.CMP.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Double bar and side-by-side displays: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Double bar and side-by-side displays.",
      "content": "Double bar of club signups — Grade 6: art 12, sports 18, coding 10; Grade 7: art 9, sports 17, coding 16. Biggest gap: coding, 16 − 10 = 6 in favor of Grade 7; sports nearly tied (18 vs 17). The pairing makes both findings instant.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.CMP.04",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Double bar and side-by-side displays",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 3,
      "id": "DAT.CMP.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Double bar and side-by-side displays: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Double bar and side-by-side displays into personal, civic/data, and career contexts.",
      "content": "Personal — Double-bar the chores you and your sibling actually completed each week before the allowance debate. · Civic/Data — Show side-by-side box plots of bus vs bike commute times at the safe-routes meeting. · Career — A store analyst pairs this year's and last year's monthly sales bars for the owner's review.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.CMP.04",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Double bar and side-by-side displays",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 3,
      "id": "DAT.CMP.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Double bar and side-by-side displays: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Double bar and side-by-side displays.",
      "content": "Accuracy — 6 items: read paired bars (2), build a double bar from a two-way table (2), compare side-by-side box plots (2); pass ≥5/6 · Explanation — \"A chart plots the two series on different y-scales, one per side — why can it fake a crossover that never happened?\" · Transfer — compare two classes' paper-airplane flight distances on side-by-side dot plots.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.CMP.05",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Comparing proportions between groups",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 4,
      "id": "DAT.CMP.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Comparing proportions between groups: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Comparing proportions between groups.",
      "content": "When groups differ in size, raw counts lie; fair comparison divides first. \"More walkers\" and \"a higher share of walkers\" are different claims, and headlines love to swap them.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.CMP.05",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Comparing proportions between groups",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 4,
      "id": "DAT.CMP.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Comparing proportions between groups: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Comparing proportions between groups.",
      "content": "Club A: 12 of 30 members walk → 12/30 = 40%. Club B: 15 of 50 walk → 15/50 = 30%. B has *more* walkers (15 > 12), but A is *more walk-y* (40% > 30%). Both sentences are true; they answer different questions.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.CMP.05",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Comparing proportions between groups",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 4,
      "id": "DAT.CMP.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Comparing proportions between groups: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Comparing proportions between groups into personal, civic/data, and career contexts.",
      "content": "Personal — \"More of my friends than yours like this show\" — but you have three times as many friends; compare shares instead. · Civic/Data — \"City A has more burglaries than City B\" — A is five times larger; compute the per-1,000 rates before repeating the claim. · Career — A market-research junior compares ad click-through rates between two versions shown to different-sized audiences.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.CMP.05",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Comparing proportions between groups",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 4,
      "id": "DAT.CMP.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Comparing proportions between groups: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Comparing proportions between groups.",
      "content": "Accuracy — 6 items: compute and compare proportions (3), decide count vs share for a question (2), spot the swapped claim (1); pass ≥5/6 · Explanation — \"School A logged 40 flu absences, School B 28 — why can't those counts alone say where flu hit harder? (A has 800 students, B has 350.)\" · Transfer — compare on-time rates of two ferry lines that run different numbers of trips.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.CMP.06",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Scatter plots — two variables",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 5,
      "id": "DAT.CMP.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Scatter plots — two variables: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Scatter plots — two variables.",
      "content": "A scatter plot pairs two measurements per individual into one point — (hours practiced, quiz score). The cloud of points shows how two variables travel together; each dot stays one whole case.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.CMP.06",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Scatter plots — two variables",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 5,
      "id": "DAT.CMP.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Scatter plots — two variables: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Scatter plots — two variables.",
      "content": "Five students, (hours practiced, quiz score): (1, 60), (2, 70), (3, 75), (4, 85), (5, 88). Plot all five: the cloud climbs left to right; the point (4, 85) is one student — 4 hours, score 85 — never two separate facts.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.CMP.06",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Scatter plots — two variables",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 5,
      "id": "DAT.CMP.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Scatter plots — two variables: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Scatter plots — two variables into personal, civic/data, and career contexts.",
      "content": "Personal — Plot outdoor temperature against your household's daily hot-chocolate count for a month. · Civic/Data — Plot neighborhood tree cover against summer afternoon temperature from the city's open-data portal. · Career — A sports analyst plots player height against rebounds per game across the league.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.CMP.06",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Scatter plots — two variables",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 5,
      "id": "DAT.CMP.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Scatter plots — two variables: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Scatter plots — two variables.",
      "content": "Accuracy — 6 items: plot pairs (2), read a point as one case (2), answer \"which individual…\" questions from the cloud (2); pass ≥5/6 · Explanation — \"A classmate connected the scatter dots like a line graph — why does that wreck what the plot claims?\" · Transfer — plot car age against asking price from eight used-car listings.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.CMP.07",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Association and trend (positive, negative, none)",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 6,
      "id": "DAT.CMP.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Association and trend (positive, negative, none): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Association and trend (positive, negative, none).",
      "content": "Read the cloud's drift: rises together → positive association; one up, other down → negative; shapeless → none. Association describes a tendency of the cloud, never a law about each point.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.CMP.07",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Association and trend (positive, negative, none)",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 6,
      "id": "DAT.CMP.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Association and trend (positive, negative, none): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Association and trend (positive, negative, none).",
      "content": "Classify three scatters: daily temperature vs fan sales — cloud climbs → positive. TV minutes vs pages read — cloud falls → negative. Shoe size vs spelling score — round, flat cloud → no association. Each verdict cites the drift, plus the exceptions that don't break it.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.CMP.07",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Association and trend (positive, negative, none)",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 6,
      "id": "DAT.CMP.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Association and trend (positive, negative, none): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Association and trend (positive, negative, none) into personal, civic/data, and career contexts.",
      "content": "Personal — Plot open browser tabs against homework finish time and name the trend you'd rather not see. · Civic/Data — Across districts, arts funding and attendance rise together — name the association precisely without claiming a cause yet. · Career — An energy auditor plots insulation thickness against heating bills and reads the negative trend to clients.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.CMP.07",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Association and trend (positive, negative, none)",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 6,
      "id": "DAT.CMP.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Association and trend (positive, negative, none): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Association and trend (positive, negative, none).",
      "content": "Accuracy — 6 items: classify association from plots (4), sketch a cloud matching a description (2); pass ≥5/6 · Explanation — \"The cloud is round and flat — why is 'no association' a real finding, not a failed experiment?\" · Transfer — classify the association between altitude and air pressure in a science-log scatter.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.CMP.08",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Lines of fit (informal)",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 7,
      "id": "DAT.CMP.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Lines of fit (informal): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Lines of fit (informal).",
      "content": "When a cloud trends, a straight line drawn through its middle summarizes it: the slope says \"each extra unit of x tends to add this much y,\" and the line predicts — cautiously, and only near the data.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.CMP.08",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Lines of fit (informal)",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 7,
      "id": "DAT.CMP.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Lines of fit (informal): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Lines of fit (informal).",
      "content": "Fertilizer (ml) vs growth (cm), cloud near (0, 2), (1, 4), (2, 7), (3, 8). Eyeball line through (0, 2) and (3, 8): slope = 6/3 = 2 → y = 2x + 2, \"each ml adds about 2 cm.\" Predict x = 5 → about 12 cm — flagged as beyond the data.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.CMP.08",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Lines of fit (informal)",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 7,
      "id": "DAT.CMP.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Lines of fit (informal): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Lines of fit (informal) into personal, civic/data, and career contexts.",
      "content": "Personal — Fit a line to your game-rank points by week and predict when you reach Gold — then say why the prediction is fragile. · Civic/Data — Fit a line to the town's recycling tonnage by year and project next year for the budget hearing. · Career — A delivery startup fits package count vs fuel cost to quote per-package costs.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.CMP.08",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Lines of fit (informal)",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 7,
      "id": "DAT.CMP.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Lines of fit (informal): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Lines of fit (informal).",
      "content": "Accuracy — 5 items: draw a reasonable line (2), read slope as a rate in context (2), predict within the data range (1); pass ≥4/5 · Explanation — \"Your line predicts a 95 cm plant from 20 ml of fertilizer — why is extrapolating far past the data risky?\" · Transfer — fit practice-tests-taken vs score for a tutoring flyer, predict for 6 tests, then critique the flyer's claim.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.CMP.09",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Two-way tables and relative frequency",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 8,
      "id": "DAT.CMP.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Two-way tables and relative frequency: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Two-way tables and relative frequency.",
      "content": "A two-way table becomes evidence of association when you convert counts to relative frequencies *within* each row or column. If the row percentages differ across groups, the variables travel together.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.CMP.09",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Two-way tables and relative frequency",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 8,
      "id": "DAT.CMP.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Two-way tables and relative frequency: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Two-way tables and relative frequency.",
      "content": "Longer-lunch poll: students — 45 yes of 60 → 45/60 = 75%; teachers — 10 yes of 40 → 10/40 = 25%; 100 people total. The 50-point gap in row percentages shows support is strongly associated with role.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.CMP.09",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Two-way tables and relative frequency",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 8,
      "id": "DAT.CMP.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Two-way tables and relative frequency: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Two-way tables and relative frequency into personal, civic/data, and career contexts.",
      "content": "Personal — Crosstab your playlists (pop/lo-fi) against activity (homework/gym) and let row percentages expose your study habits. · Civic/Data — A skate-park poll crosstabbed by age group: compare percent support within each group, not raw counts. · Career — A clinic crosstabs reminder type (text/call) against show-up rates and lets row percents pick the winner.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.CMP.09",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Two-way tables and relative frequency",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 8,
      "id": "DAT.CMP.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Two-way tables and relative frequency: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Two-way tables and relative frequency.",
      "content": "Accuracy — 6 items: compute row/column relative frequencies (3), judge association from them (2), fix a count-vs-percent confusion (1); pass ≥5/6 · Explanation — \"45 student yeses vs 10 teacher yeses — why are the raw counts useless here, and the row percents decisive? (Groups of 60 and 40.)\" · Transfer — judge association in a helmet-use × injury crosstab from bike-safety data.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.CMP.10",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Correlation is not causation",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 9,
      "id": "DAT.CMP.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Correlation is not causation: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Correlation is not causation.",
      "content": "Association says two things move together; causation says one drives the other. A lurking third variable, or causation running backwards, can fake the link — so association alone never licenses \"X causes Y.\"",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.CMP.10",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Correlation is not causation",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 9,
      "id": "DAT.CMP.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Correlation is not causation: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Correlation is not causation.",
      "content": "City data: monthly ice-cream sales and swim-rescue counts rise and fall together all year — strong positive association. The cause of both: summer heat sends people swimming *and* buying cones. Banning ice cream saves nobody; the scatter was real, the causal story was not.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.CMP.10",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Correlation is not causation",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 9,
      "id": "DAT.CMP.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Correlation is not causation: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Correlation is not causation into personal, civic/data, and career contexts.",
      "content": "Personal — Your \"lucky socks correlate with wins\" record — list what else changes on game days before crediting the socks. · Civic/Data — Headline: \"Kids with phones score lower — phones cause failing!\" Propose two confounders and the comparison that would actually test it. · Career — A data journalist holds a story: towns with more coffee shops have higher rents — which causes which, or does neither?",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.CMP.10",
      "clusterId": "DAT.CMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Correlation is not causation",
      "clusterTitle": "Comparing Data Sets (DAT.CMP)",
      "band": "6–8",
      "hardLevel": 9,
      "id": "DAT.CMP.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Correlation is not causation: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Correlation is not causation.",
      "content": "Accuracy — 5 items: label claims as association vs causation (3), pick the plausible lurking variable (2); pass ≥4/5 · Explanation — for a given real correlation, articulate two rival explanations (reverse causation, third variable) and what evidence would separate them. · Transfer — critique \"students who eat breakfast score higher, so breakfast raises grades\" and design the fairer comparison.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.COL.01",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Sorting and classifying objects",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 0,
      "id": "DAT.COL.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Sorting and classifying objects: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Sorting and classifying objects.",
      "content": "Before anything can be counted, it has to be grouped. A sorting rule says what belongs together, and every object lands in exactly one group — no leftovers, no doubles.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.COL.01",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Sorting and classifying objects",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 0,
      "id": "DAT.COL.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Sorting and classifying objects: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Sorting and classifying objects.",
      "content": "Sort 9 buttons by shape: 4 round, 3 square, 2 star. Check the sort: 4 + 3 + 2 = 9, and every button was placed exactly once — the rule worked.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.COL.01",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Sorting and classifying objects",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 0,
      "id": "DAT.COL.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Sorting and classifying objects: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Sorting and classifying objects into personal, civic/data, and career contexts.",
      "content": "Personal — Sort your crayon tub by color before tidy-up and say which pile is biggest. · Civic/Data — At the class recycling station, decide whether each item belongs in paper, plastic, or compost. · Career — A grocery helper sorts a delivery crate onto the fruit shelf and the vegetable shelf.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.COL.01",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Sorting and classifying objects",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 0,
      "id": "DAT.COL.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Sorting and classifying objects: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Sorting and classifying objects.",
      "content": "Accuracy — 6 items: sort by a given rule (3), name the rule someone used (2), find the misplaced object (1); pass ≥5/6 · Explanation — \"Why can't the red square go in both the 'red' pile and the 'square' pile when our rule is color?\" · Transfer — sort the art-cupboard supplies by type and defend the rule chosen.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.COL.02",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Tally charts",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 1,
      "id": "DAT.COL.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Tally charts: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Tally charts.",
      "content": "A tally mark records one observation the moment it happens; bundling marks into gates of five makes the totals quick to count later.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.COL.02",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Tally charts",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 1,
      "id": "DAT.COL.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Tally charts: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Tally charts.",
      "content": "Pets survey: dogs = one closed gate of five + 3 singles = 8; cats = one gate = 5; fish = 2 singles. Total: 8 + 5 + 2 = 15 classmates, matching the 15 asked.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.COL.02",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Tally charts",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 1,
      "id": "DAT.COL.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Tally charts: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Tally charts into personal, civic/data, and career contexts.",
      "content": "Personal — Tally how many times your family says your name during one dinner. · Civic/Data — Tally cars vs bikes passing the school gate for ten minutes for a road-safety poster. · Career — A school bus monitor tallies riders boarding at each stop.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.COL.02",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Tally charts",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 1,
      "id": "DAT.COL.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Tally charts: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Tally charts.",
      "content": "Accuracy — 6 items: read tally totals (2), make tallies from a picture list (2), find combined totals (2); pass ≥5/6 · Explanation — \"Why do we draw the fifth tally across the gate instead of as a fifth stick in the row?\" · Transfer — keep a tally of birds landing on the window feeder during one recess.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.COL.03",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Frequency tables",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 2,
      "id": "DAT.COL.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Frequency tables: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Frequency tables.",
      "content": "A frequency table swaps piles and tally marks for numbers: each row is a category and its count, and the counts must add up to the total collected.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.COL.03",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Frequency tables",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 2,
      "id": "DAT.COL.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Frequency tables: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Frequency tables.",
      "content": "Turn snack tallies into a table: apple 7, banana 4, grapes 6. Check: 7 + 4 + 6 = 17, and 17 students were surveyed — the table is complete.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.COL.03",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Frequency tables",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 2,
      "id": "DAT.COL.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Frequency tables: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Frequency tables into personal, civic/data, and career contexts.",
      "content": "Personal — Turn your sticker-collection tallies into a table to see which animal you have most of. · Civic/Data — The office makes a table of lost-and-found items (gloves, bottles, hats) to report at assembly. · Career — An ice-cream cart owner tables today's sales by flavor to plan tomorrow's stock.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.COL.03",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Frequency tables",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 2,
      "id": "DAT.COL.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Frequency tables: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Frequency tables.",
      "content": "Accuracy — 6 items: complete missing counts from tallies (2), find the total (2), answer \"how many more\" from the table (2); pass ≥5/6 · Explanation — \"A table's counts add to 19 but 20 kids answered — what went wrong, and where would you look first?\" · Transfer — turn a basket of returned PE equipment into a table by sport.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.COL.04",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Survey questions — asking countable questions",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 3,
      "id": "DAT.COL.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Survey questions — asking countable questions: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Survey questions — asking countable questions.",
      "content": "A good survey question produces answers you can count: the choices don't overlap, cover everyone, and there's one answer per person — \"What do you like?\" becomes \"Which one of these?\"",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.COL.04",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Survey questions — asking countable questions",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 3,
      "id": "DAT.COL.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Survey questions — asking countable questions: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Survey questions — asking countable questions.",
      "content": "Fix \"Do you like fruit?\" for a snack vote → \"Which Friday snack do you want: apple, banana, or crackers?\" Pilot with 5 friends: 2 + 2 + 1 = 5 answers, each fitting exactly one choice — countable.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.COL.04",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Survey questions — asking countable questions",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 3,
      "id": "DAT.COL.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Survey questions — asking countable questions: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Survey questions — asking countable questions into personal, civic/data, and career contexts.",
      "content": "Personal — Write the question that settles which movie your sleepover group watches. · Civic/Data — The student council words a playground-game question so every student can pick exactly one option. · Career — A bakery owner asks customers to choose the next muffin: blueberry, lemon, or chocolate.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.COL.04",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Survey questions — asking countable questions",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 3,
      "id": "DAT.COL.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Survey questions — asking countable questions: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Survey questions — asking countable questions.",
      "content": "Accuracy — 5 items: pick the countable version (2), spot overlapping options (2), match a question to what it can find out (1); pass ≥4/5 · Explanation — \"What goes wrong if the choices are 'sports' and 'soccer'? Where does a soccer fan's answer land?\" · Transfer — write one countable question for choosing a class pet.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.COL.05",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Recording data accurately",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 4,
      "id": "DAT.COL.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Recording data accurately: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Recording data accurately.",
      "content": "Data is only as good as its recording: one mark per response, made right away, nothing skipped or double-counted — and the total checked against the number of people asked.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.COL.05",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Recording data accurately",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 4,
      "id": "DAT.COL.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Recording data accurately: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Recording data accurately.",
      "content": "23 students vote; the recorded counts are 9 + 8 + 5 = 22 — one vote missing. Re-checking the slips finds an uncounted \"yes\": 10 + 8 + 5 = 23. Now the record matches reality.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.COL.05",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Recording data accurately",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 4,
      "id": "DAT.COL.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Recording data accurately: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Recording data accurately into personal, civic/data, and career contexts.",
      "content": "Personal — Keep the running score for family game night so nobody disputes the winner. · Civic/Data — Two counters tally the same assembly vote and compare totals before the result is announced. · Career — A pet-shop assistant counts the fish in each tank twice before filling in the order sheet.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.COL.05",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Recording data accurately",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 4,
      "id": "DAT.COL.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Recording data accurately: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Recording data accurately.",
      "content": "Accuracy — 5 items: find the recording error given the source and the record (3), check totals against respondents (2); pass ≥4/5 · Explanation — \"Why do we check that the table's total equals the number of people asked, every single time?\" · Transfer — record sunny/cloudy/rainy each day for a week and verify there are exactly 7 marks.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.COL.06",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Carroll and Venn diagrams",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 5,
      "id": "DAT.COL.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Carroll and Venn diagrams: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Carroll and Venn diagrams.",
      "content": "Carroll and Venn diagrams sort by two attributes at once. The overlap (or its Carroll cell) holds things that are both — and things that are neither need a home too.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.COL.06",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Carroll and Venn diagrams",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 5,
      "id": "DAT.COL.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Carroll and Venn diagrams: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Carroll and Venn diagrams.",
      "content": "Sort 12 shapes by \"red?\" and \"triangle?\": red-only 4, triangle-only 3, both 2, neither 3. Check: 4 + 3 + 2 + 3 = 12 — every shape has exactly one region.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.COL.06",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Carroll and Venn diagrams",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 5,
      "id": "DAT.COL.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Carroll and Venn diagrams: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Carroll and Venn diagrams into personal, civic/data, and career contexts.",
      "content": "Personal — Sort your toy vehicles into \"has wheels\" and \"can fly\" and notice the toy plane sits in the overlap. · Civic/Data — The class garden team sorts plants by \"needs full sun\" and \"needs daily water\" before planting. · Career — A librarian sorts new arrivals with a Carroll diagram: fiction/non-fiction × picture book/chapter book.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.COL.06",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Carroll and Venn diagrams",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 5,
      "id": "DAT.COL.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Carroll and Venn diagrams: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Carroll and Venn diagrams.",
      "content": "Accuracy — 6 items: place items in the correct region (3), read counts from regions (2), complete a Carroll cell from totals (1); pass ≥5/6 · Explanation — \"A classmate put the red triangle in both outer parts of the circles. Why must it go in the overlap instead?\" · Transfer — build a Carroll diagram of school lunches: hot/cold × vegetarian/not.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.COL.07",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Two-way tables (intro)",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 6,
      "id": "DAT.COL.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Two-way tables (intro): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Two-way tables (intro).",
      "content": "A two-way table counts every combination of two questions at once. Row totals and column totals must each add to the same grand total — that's the built-in error alarm.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.COL.07",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Two-way tables (intro)",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 6,
      "id": "DAT.COL.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Two-way tables (intro): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Two-way tables (intro).",
      "content": "20 students, grade × travel: Grade 3 — walk 6, ride 4 (total 10); Grade 4 — walk 7, ride 3 (total 10). Columns: walk 13, ride 7; grand total 20 ✓. Missing-cell move: Grade 3 total 10 with walk 6 → ride = 10 − 6 = 4.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.COL.07",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Two-way tables (intro)",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 6,
      "id": "DAT.COL.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Two-way tables (intro): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Two-way tables (intro) into personal, civic/data, and career contexts.",
      "content": "Personal — At your birthday party, record each guest's pizza (cheese/pepperoni) and drink (water/juice) to plan the reorder. · Civic/Data — Field-day signups by grade × event show whether each race has enough runners. · Career — The school cook tables hot vs packed lunch by year group to prep the right trays.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.COL.07",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Two-way tables (intro)",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 6,
      "id": "DAT.COL.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Two-way tables (intro): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Two-way tables (intro).",
      "content": "Accuracy — 6 items: fill missing cells from totals (3), read \"how many are both\" (2), verify the grand total (1); pass ≥5/6 · Explanation — \"Row totals add to 24 but column totals to 23 — why is that impossible, and where do you hunt for the error?\" · Transfer — build a two-way table of weather (rainy/dry) × recess (indoor/outdoor) for one month.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.COL.08",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Data types — categories vs counts vs measures",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 7,
      "id": "DAT.COL.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Data types — categories vs counts vs measures: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Data types — categories vs counts vs measures.",
      "content": "Some data names a group (favorite season), some counts how many (4 teeth lost), some measures on a scale (16 cm hand span). The type decides which displays and summaries will ever make sense.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.COL.08",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Data types — categories vs counts vs measures",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 7,
      "id": "DAT.COL.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Data types — categories vs counts vs measures: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Data types — categories vs counts vs measures.",
      "content": "Classify three class facts: \"favorite season = spring\" → category; \"teeth lost = 4\" → count; \"hand span = 16 cm\" → measure. Which could you sensibly average? Hand spans and teeth — never seasons.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.COL.08",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Data types — categories vs counts vs measures",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 7,
      "id": "DAT.COL.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Data types — categories vs counts vs measures: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Data types — categories vs counts vs measures into personal, civic/data, and career contexts.",
      "content": "Personal — Label everything you track about your soccer season (team name, goals, sprint time) by type. · Civic/Data — The school newsletter survey mixes types — bus route, minutes to school — sort them before anyone charts them. · Career — A vet's assistant records species (category), vaccine doses (count), and weight in kg (measure) on each chart.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.COL.08",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Data types — categories vs counts vs measures",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 7,
      "id": "DAT.COL.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Data types — categories vs counts vs measures: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Data types — categories vs counts vs measures.",
      "content": "Accuracy — 6 items: classify given data (4), pick which question would produce a measure (2); pass ≥5/6 · Explanation — \"Why is 'the average favorite color' nonsense while 'the average hand span' is fine?\" · Transfer — classify the fields on a cereal-box panel: brand name, grams of sugar, servings per box.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.COL.09",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Designing a simple data collection plan",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 8,
      "id": "DAT.COL.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Designing a simple data collection plan: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Designing a simple data collection plan.",
      "content": "A plan settles four things before you start: what question, who you'll ask, how you'll record, and how many answers you expect. Deciding these first is what prevents unusable data.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.COL.09",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Designing a simple data collection plan",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 8,
      "id": "DAT.COL.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Designing a simple data collection plan: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Designing a simple data collection plan.",
      "content": "Question: \"Which wet-break game?\" Who: all 26 in class. Record: frequency table, 4 options + \"other\". Pilot with 5 students: 2 + 1 + 1 + 1 + 0 recorded = 5/5, nobody needed \"other\" — plan approved, expect 26 rows.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.COL.09",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Designing a simple data collection plan",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 8,
      "id": "DAT.COL.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Designing a simple data collection plan: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Designing a simple data collection plan into personal, civic/data, and career contexts.",
      "content": "Personal — Plan how to find your family's most-wanted weekend breakfast before the shopping trip. · Civic/Data — Plan the book-fair pre-order survey for two classes so the fair stocks what kids will buy. · Career — A youth sports coach plans how to collect jersey sizes from all 18 players before the order deadline.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.COL.09",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Designing a simple data collection plan",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 8,
      "id": "DAT.COL.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Designing a simple data collection plan: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Designing a simple data collection plan.",
      "content": "Accuracy — 4 items: order the plan steps (1), pick the recording sheet that matches a plan (2), spot the missing plan piece (1); pass 4/4 · Explanation — \"A plan says 'ask some friends at recess' to learn the whole school's favorite lunch — who gets missed, and why does that wreck the answer?\" · Transfer — plan a survey of the favorite field-trip option across two classes.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.COL.10",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "From question to dataset",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 9,
      "id": "DAT.COL.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "From question to dataset: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of From question to dataset.",
      "content": "Run the whole pipeline — pose a countable question, collect, record, organize into a checked table — and end with a dataset someone else could read and trust without you in the room.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.COL.10",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "From question to dataset",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 9,
      "id": "DAT.COL.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "From question to dataset: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for From question to dataset.",
      "content": "\"How do classmates get to school?\" Ask all 24 → tallies: walk 10, car 8, bike 4, bus 2 → frequency table. Check: 10 + 8 + 4 + 2 = 24 ✓ — dataset ready for graphing.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.COL.10",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "From question to dataset",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 9,
      "id": "DAT.COL.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "From question to dataset: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer From question to dataset into personal, civic/data, and career contexts.",
      "content": "Personal — Turn \"which chore does everyone hate most?\" into a recorded family dataset before the chore chart is redrawn. · Civic/Data — Produce the bake-sale order dataset by flavor for the PTA's shopping list. · Career — A market-stall helper builds the day's sales-by-item dataset for the owner's evening review.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.COL.10",
      "clusterId": "DAT.COL",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "From question to dataset",
      "clusterTitle": "Collecting & Organizing Data (DAT.COL)",
      "band": "K–4",
      "hardLevel": 9,
      "id": "DAT.COL.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "From question to dataset: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond From question to dataset.",
      "content": "Accuracy — 5 items tracing one mini-project: match question to options (1), correct the record sheet (2), assemble the final table (2); pass ≥4/5 · Explanation — \"Your table shows 25 answers but only 24 students were asked. Why can't you just delete one at random?\" · Transfer — run the full cycle on a fresh question (favorite school event) from another class's raw slips.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.CTR.01",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Mode and range",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 0,
      "id": "DAT.CTR.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Mode and range: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Mode and range.",
      "content": "Mode is the most frequent value (what's typical by popularity); range is max minus min (how far the data stretches). They're the first one-number summaries — quick, and quickly fooled.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.CTR.01",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Mode and range",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 0,
      "id": "DAT.CTR.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Mode and range: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Mode and range.",
      "content": "Quiz scores 6, 7, 7, 9, 10 → mode = 7 (appears twice); range = 10 − 6 = 4. From a dot plot, mode is the tallest stack and range is the distance between the end dots.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.CTR.01",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Mode and range",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 0,
      "id": "DAT.CTR.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Mode and range: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Mode and range into personal, civic/data, and career contexts.",
      "content": "Personal — Find the mode shoe size in your family and the range of heights for the \"who's grown most\" debate. · Civic/Data — Student council reports the mode and range of leftover milk cartons per day for the waste report. · Career — A T-shirt vendor stocks mostly the modal size from last season's sales sheet.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.CTR.01",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Mode and range",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 0,
      "id": "DAT.CTR.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Mode and range: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Mode and range.",
      "content": "Accuracy — 6 items: find the mode incl. one bimodal set (2), compute range (2), read both straight off a dot plot (2); pass ≥5/6 · Explanation — \"A dataset has two modes but the report names just one — why is that misleading, and what should the report say?\" · Transfer — find mode and range of goals-per-game from your team's season stats page.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.CTR.02",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Median — the middle value",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 1,
      "id": "DAT.CTR.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Median — the middle value: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Median — the middle value.",
      "content": "The median is the middle of the *sorted* data — half the values at or below, half at or above. With an even count, it's the mean of the two middle values. Sorting first is the whole game.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.CTR.02",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Median — the middle value",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 1,
      "id": "DAT.CTR.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Median — the middle value: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Median — the middle value.",
      "content": "Odd: 3, 5, 6, 8, 9, 11, 14 → seven values, median = 4th = 8. Even: 4, 6, 10, 12 → middle pair 6 and 10 → median = (6 + 10) ÷ 2 = 8.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.CTR.02",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Median — the middle value",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 1,
      "id": "DAT.CTR.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Median — the middle value: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Median — the middle value into personal, civic/data, and career contexts.",
      "content": "Personal — Find the median of the nine prices you found for the same headphones before pitching the buy to your parents. · Civic/Data — Compute the median class size across the school's 11 classrooms for the parents' newsletter. · Career — A junior real-estate analyst reports the median of nine recent sale prices for the neighborhood page.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.CTR.02",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Median — the middle value",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 1,
      "id": "DAT.CTR.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Median — the middle value: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Median — the middle value.",
      "content": "Accuracy — 6 items: odd-count medians (2), even-count medians (2), median from a dot plot (2); pass ≥5/6 · Explanation — \"A classmate took the middle of the *unsorted* list and got 11 — find the flaw and explain what sorting guarantees.\" · Transfer — find the median page count of the seven books on your shelf.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.CTR.03",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Mean as fair share",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 2,
      "id": "DAT.CTR.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Mean as fair share: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Mean as fair share.",
      "content": "The mean answers \"if we pooled everything and shared it equally, how much would each get?\" — total ÷ count. It's a fair-share number, which is why one giant value can drag it.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.CTR.03",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Mean as fair share",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 2,
      "id": "DAT.CTR.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Mean as fair share: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Mean as fair share.",
      "content": "Four friends raised $12, $18, $9, $21. Pool: 12 + 18 + 9 + 21 = $60. Share: 60 ÷ 4 = $15 — the mean is the equal-share amount each would hold.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.CTR.03",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Mean as fair share",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 2,
      "id": "DAT.CTR.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Mean as fair share: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Mean as fair share into personal, civic/data, and career contexts.",
      "content": "Personal — Pool arcade tickets with three friends and work out the fair share each. · Civic/Data — The class-party fund came in unevenly by table; report what equal amount per table the total represents. · Career — A paper-route manager averages papers per route to balance the carriers' loads.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.CTR.03",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Mean as fair share",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 2,
      "id": "DAT.CTR.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Mean as fair share: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Mean as fair share.",
      "content": "Accuracy — 6 items: compute means (3), find the total from a mean and count (2), find a missing value given the mean (1); pass ≥5/6 · Explanation — \"Moving 3 tickets from the biggest haul to the smallest changes nothing about the mean — why not?\" · Transfer — find the fair share when six coolers hold different numbers of team water bottles.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.CTR.04",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Mean as balance point",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 3,
      "id": "DAT.CTR.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Mean as balance point: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Mean as balance point.",
      "content": "On a dot plot, the mean is where the data balances: the distances of values below the mean exactly cancel the distances above. Deviations always sum to zero — that's the see-saw fact.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.CTR.04",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Mean as balance point",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 3,
      "id": "DAT.CTR.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Mean as balance point: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Mean as balance point.",
      "content": "Data 2, 3, 7 → mean = 12 ÷ 3 = 4. Deviations: 2 − 4 = −2, 3 − 4 = −1, 7 − 4 = +3. Sum: −2 − 1 + 3 = 0 — the plot balances at 4 even though no data point sits there.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.CTR.04",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Mean as balance point",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 3,
      "id": "DAT.CTR.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Mean as balance point: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Mean as balance point into personal, civic/data, and career contexts.",
      "content": "Personal — Find where your week of daily keepy-uppy counts balances, then check the leftover deviations cancel. · Civic/Data — The pool's daily attendance dots balance at the mean even though no single day was \"average.\" · Career — A baker checks that loaf weights balance around the 400 g target — deviations should cancel out.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.CTR.04",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Mean as balance point",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 3,
      "id": "DAT.CTR.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Mean as balance point: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Mean as balance point.",
      "content": "Accuracy — 5 items: locate the balance point on small dot plots (3), verify deviations sum to zero (2); pass ≥4/5 · Explanation — \"The mean of 1, 2, 9 is 4 — why isn't the mean 'the middle' here, and what do the deviations −3, −2, +5 tell you?\" · Transfer — find the balance point of six watermelon weights at the market stall.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.CTR.05",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Choosing mean vs median (outliers)",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 4,
      "id": "DAT.CTR.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Choosing mean vs median (outliers): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Choosing mean vs median (outliers).",
      "content": "The mean chases extreme values; the median ignores them. When data is skewed or has outliers, the median says \"typical\" more honestly — choosing the summary is part of the math.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.CTR.05",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Choosing mean vs median (outliers)",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 4,
      "id": "DAT.CTR.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Choosing mean vs median (outliers): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Choosing mean vs median (outliers).",
      "content": "Weekly allowances ($): 5, 5, 6, 7, 8, 8, 10, 51. Mean = 100 ÷ 8 = $12.50 — higher than 7 of the 8 kids. Median = (7 + 8) ÷ 2 = $7.50. The one $51 allowance drags the mean; the median stays typical.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.CTR.05",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Choosing mean vs median (outliers)",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 4,
      "id": "DAT.CTR.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Choosing mean vs median (outliers): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Choosing mean vs median (outliers) into personal, civic/data, and career contexts.",
      "content": "Personal — Decide which summary describes your typical daily screen time after one sick-day binge blew up the mean. · Civic/Data — A fundraiser headline says \"average donation: $58!\" — one $1,000 gift hides a $12 median; pick the honest number for the newsletter. · Career — A junior sports statistician reports the median sprint time because one false start wrecked the mean.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.CTR.05",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Choosing mean vs median (outliers)",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 4,
      "id": "DAT.CTR.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Choosing mean vs median (outliers): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Choosing mean vs median (outliers).",
      "content": "Accuracy — 6 items: compute both and choose with reason (4), predict which summary moves when an outlier is added (2); pass ≥5/6 · Explanation — \"A report says 'typical salary $74,000' using the mean of a list that includes the CEO — find the flaw and fix the claim.\" · Transfer — choose and defend the summary for clinic wait times that include one 3-hour emergency.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.CTR.06",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Effects of an added or removed value",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 5,
      "id": "DAT.CTR.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Effects of an added or removed value: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Effects of an added or removed value.",
      "content": "Adding or removing one value re-divides the total, so the mean always moves (unless the value equals it) — while the median can shrug. Predicting which summary moves, and how far, is the skill.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.CTR.06",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Effects of an added or removed value",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 5,
      "id": "DAT.CTR.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Effects of an added or removed value: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Effects of an added or removed value.",
      "content": "Scores 80, 90, 100 → mean 90, median 90. Add a 50: mean = (270 + 50) ÷ 4 = 80 (down 10); sorted 50, 80, 90, 100 → median = (80 + 90) ÷ 2 = 85 (down 5). Same new value, double the damage to the mean.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.CTR.06",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Effects of an added or removed value",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 5,
      "id": "DAT.CTR.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Effects of an added or removed value: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Effects of an added or removed value into personal, civic/data, and career contexts.",
      "content": "Personal — Work out what score you need on the next quiz to pull your average up to 85. · Civic/Data — Should the festival day be included in the park's \"mean daily visitors\" stat? Compute it both ways and argue. · Career — A restaurant owner computes what one 1-star review does to a 4.8 mean across 20 reviews.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.CTR.06",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Effects of an added or removed value",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 5,
      "id": "DAT.CTR.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Effects of an added or removed value: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Effects of an added or removed value.",
      "content": "Accuracy — 6 items: recompute mean/median after an add or remove (4), find the value needed to hit a target mean (2); pass ≥5/6 · Explanation — \"Why does removing the lowest value always raise the mean, but sometimes not move the median at all?\" · Transfer — a weather station deletes one faulty −99° reading; predict the effect on mean vs median before recomputing.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.CTR.07",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Range and interquartile range (intro)",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 6,
      "id": "DAT.CTR.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Range and interquartile range (intro): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Range and interquartile range (intro).",
      "content": "Range measures the full stretch; IQR measures the spread of the middle half — Q3 minus Q1, found by taking medians of the lower and upper halves (median excluded). IQR ignores wild endpoints; range worships them.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.CTR.07",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Range and interquartile range (intro)",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 6,
      "id": "DAT.CTR.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Range and interquartile range (intro): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Range and interquartile range (intro).",
      "content": "Data 2, 4, 5, 7, 8, 10, 12 → median 7; lower half 2, 4, 5 → Q1 = 4; upper half 8, 10, 12 → Q3 = 10. IQR = 10 − 4 = 6; range = 12 − 2 = 10.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.CTR.07",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Range and interquartile range (intro)",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 6,
      "id": "DAT.CTR.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Range and interquartile range (intro): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Range and interquartile range (intro) into personal, civic/data, and career contexts.",
      "content": "Personal — Compare the range and IQR of your last seven bike-ride times to see if your \"wild day\" hides steady riding. · Civic/Data — \"Temperatures swung 40° this month!\" — true range, but the IQR of 9° shows the middle half of days barely moved. · Career — A delivery dispatcher quotes the IQR of delivery times to customers instead of the scary worst case.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.CTR.07",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Range and interquartile range (intro)",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 6,
      "id": "DAT.CTR.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Range and interquartile range (intro): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Range and interquartile range (intro).",
      "content": "Accuracy — 6 items: find Q1/Q3/IQR on 7- and 11-value sets (4), compute range (1), say which value changed when IQR ≠ range story (1); pass ≥5/6 · Explanation — \"One absurd value doubles the range but barely touches the IQR — why is the middle half protected?\" · Transfer — compute range and IQR for the heights of seven sunflowers at the fair.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.CTR.08",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Mean absolute deviation (intro)",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 7,
      "id": "DAT.CTR.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Mean absolute deviation (intro): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Mean absolute deviation (intro).",
      "content": "MAD asks \"on average, how far is a value from the mean?\" — average the absolute deviations. It's the consistency meter: small MAD means tightly packed data.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.CTR.08",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Mean absolute deviation (intro)",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 7,
      "id": "DAT.CTR.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Mean absolute deviation (intro): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Mean absolute deviation (intro).",
      "content": "Data 4, 6, 6, 8 → mean = 24 ÷ 4 = 6. Distances from 6: 2, 0, 0, 2. MAD = (2 + 0 + 0 + 2) ÷ 4 = 1 — values sit about 1 unit from the mean on average.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.CTR.08",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Mean absolute deviation (intro)",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 7,
      "id": "DAT.CTR.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Mean absolute deviation (intro): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Mean absolute deviation (intro) into personal, civic/data, and career contexts.",
      "content": "Personal — Compute the MAD of your wake-up times this week to settle whether you're \"consistent.\" · Civic/Data — The transit poster claims \"buses every 10 minutes, MAD 1 minute\" — say what that promises a rider that the mean alone doesn't. · Career — A factory QA intern reports the MAD of cookie masses to show the line's consistency.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.CTR.08",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Mean absolute deviation (intro)",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 7,
      "id": "DAT.CTR.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Mean absolute deviation (intro): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Mean absolute deviation (intro).",
      "content": "Accuracy — 5 items: compute MAD on 4–6 value sets (3), pick the more consistent dataset from two MADs (2); pass ≥4/5 · Explanation — \"Why take absolute values before averaging the deviations — what would the answer always be otherwise?\" (Hint: the balance point.) · Transfer — judge a phone battery's consistency from five days of screen-on hours.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.CTR.09",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Summarizing a dataset in one sentence",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 8,
      "id": "DAT.CTR.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Summarizing a dataset in one sentence: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Summarizing a dataset in one sentence.",
      "content": "A good data sentence names the group, a center, and a spread or caveat — \"Most days I practiced about 20 minutes, ranging from 10 to 25.\" One number is a guess; center + spread is a summary.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.CTR.09",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Summarizing a dataset in one sentence",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 8,
      "id": "DAT.CTR.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Summarizing a dataset in one sentence: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Summarizing a dataset in one sentence.",
      "content": "Practice minutes 10, 15, 20, 20, 25 → median 20, range 15. Sentence: \"I typically practiced about 20 minutes a day, with days ranging from 10 to 25.\" Center named, spread named, no overclaim.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.CTR.09",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Summarizing a dataset in one sentence",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 8,
      "id": "DAT.CTR.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Summarizing a dataset in one sentence: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Summarizing a dataset in one sentence into personal, civic/data, and career contexts.",
      "content": "Personal — Text your coach one honest sentence summarizing your training week. · Civic/Data — Write the one-sentence summary of the school-survey results for the principal's newsletter. · Career — A weather-app intern writes the station's daily one-line summary from the raw readings.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.CTR.09",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Summarizing a dataset in one sentence",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 8,
      "id": "DAT.CTR.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Summarizing a dataset in one sentence: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Summarizing a dataset in one sentence.",
      "content": "Accuracy — 4 items: pick the sentence that matches a dataset (2), fix a sentence with the wrong center or missing spread (2); pass ≥3/4 · Explanation — \"'The average student loves the new schedule (mean 3.2/5)' — what does this sentence hide when ratings ran from 1 to 5 in two big clumps?\" · Transfer — summarize a week of classroom noise-meter readings in one sentence for the science teacher.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.CTR.10",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Center and spread together — describing distributions",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 9,
      "id": "DAT.CTR.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Center and spread together — describing distributions: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Center and spread together — describing distributions.",
      "content": "Center says where the data lives; spread says how much it wanders. Paired — \"median 7, middle half within 3 points\" — they make a claim one number alone can't. This pairing is the doorway to distributions.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.CTR.10",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Center and spread together — describing distributions",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 9,
      "id": "DAT.CTR.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Center and spread together — describing distributions: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Center and spread together — describing distributions.",
      "content": "Data 4, 6, 7, 7, 8, 9, 11 → median 7; Q1 = 6, Q3 = 9 → IQR 3; range 7. Description: \"Centered near 7; the middle half spans 6–9 (IQR 3), full stretch 4–11.\" Center + spread, both in context.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.CTR.10",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Center and spread together — describing distributions",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 9,
      "id": "DAT.CTR.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Center and spread together — describing distributions: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Center and spread together — describing distributions into personal, civic/data, and career contexts.",
      "content": "Personal — Describe your daily phone-pickup counts for two weeks with a center and a spread, not just a brag. · Civic/Data — Describe the waiting times at the new traffic light for the council with center and spread. · Career — A junior meteorologist describes the month's rainfall on air: where it centered, how much it varied, one caveat.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.CTR.10",
      "clusterId": "DAT.CTR",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Center and spread together — describing distributions",
      "clusterTitle": "Center & Spread (DAT.CTR)",
      "band": "5–7",
      "hardLevel": 9,
      "id": "DAT.CTR.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Center and spread together — describing distributions: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Center and spread together — describing distributions.",
      "content": "Accuracy — 5 items: compute center + spread pairs (3), match descriptions to dot plots (2); pass ≥4/5 · Explanation — \"Two classes both have mean 50, but MADs of 2 and 15 — why is reporting only the mean misleading, and for whom?\" · Transfer — describe the distribution of times from a typing-test app in two sentences: center, spread, caveat.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.DST.01",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Histograms — binning data",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 0,
      "id": "DAT.DST.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Histograms — binning data: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Histograms — binning data.",
      "content": "A histogram pours numeric data into equal-width interval bins and draws a bar per bin. Individual values vanish; the shape of the whole dataset appears. Bin counts must sum to the data count.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.DST.01",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Histograms — binning data",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 0,
      "id": "DAT.DST.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Histograms — binning data: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Histograms — binning data.",
      "content": "Travel-to-school minutes for 12 students: 4, 6, 7, 9, 11, 12, 13, 14, 17, 18, 22, 26. Bins: [0–10) → 4 values; [10–20) → 6; [20–30) → 2. Check: 4 + 6 + 2 = 12 ✓. Tallest bar: 10–20 minutes.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.DST.01",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Histograms — binning data",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 0,
      "id": "DAT.DST.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Histograms — binning data: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Histograms — binning data into personal, civic/data, and career contexts.",
      "content": "Personal — Bin the song lengths in your playlist to see where your taste clusters. · Civic/Data — Build the histogram of fun-run finish times for the school newsletter. · Career — A game developer bins level-completion times to find the difficulty spike.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.DST.01",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Histograms — binning data",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 0,
      "id": "DAT.DST.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Histograms — binning data: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Histograms — binning data.",
      "content": "Accuracy — 6 items: assign values to bins (2), build a histogram from a list (2), read counts and totals back off one (2); pass ≥5/6 · Explanation — \"Why must bins be equal width — what happens to the story if one bin is twice as wide as the others?\" · Transfer — bin 20 reaction-time measurements from a science-class experiment.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.DST.02",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Histograms vs bar graphs",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 1,
      "id": "DAT.DST.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Histograms vs bar graphs: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Histograms vs bar graphs.",
      "content": "Bar graphs show separate, reorderable categories (gaps between bars); histograms show intervals of a number line (bars touch, order fixed). Confusing them garbles what the picture claims.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.DST.02",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Histograms vs bar graphs",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 1,
      "id": "DAT.DST.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Histograms vs bar graphs: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Histograms vs bar graphs.",
      "content": "\"Favorite app\" (8 categories) → bar graph; you could alphabetize the bars and lose nothing. \"Minutes on apps yesterday\" (numeric) → histogram; reordering its bins would scramble the number line itself. The reorder test settles every case.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.DST.02",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Histograms vs bar graphs",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 1,
      "id": "DAT.DST.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Histograms vs bar graphs: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Histograms vs bar graphs into personal, civic/data, and career contexts.",
      "content": "Personal — Decide which display fits \"pets owned by each friend\" vs \"weights of those pets.\" · Civic/Data — Write to the newsletter editor who left gaps between the age-histogram bars from the town fair. · Career — A data-desk intern fixes a chart that treated survey age groups as shuffle-able categories.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.DST.02",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Histograms vs bar graphs",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 1,
      "id": "DAT.DST.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Histograms vs bar graphs: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Histograms vs bar graphs.",
      "content": "Accuracy — 6 items: choose histogram vs bar for given data (4), spot the wrongly-drawn display (2); pass ≥5/6 · Explanation — \"Why can you alphabetize the bars of favorite apps but never the bins of a histogram?\" · Transfer — classify four fresh datasets (shoe brands, shoe sizes, eye colors, arm spans) into bar vs histogram.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.DST.03",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Box plots — five-number summary",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 2,
      "id": "DAT.DST.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Box plots — five-number summary: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Box plots — five-number summary.",
      "content": "Min, Q1, median, Q3, max — five numbers compress a dataset into a box (the middle half) and whiskers (the stretch). Built entirely from medians, so it shrugs at outliers.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.DST.03",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Box plots — five-number summary",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 2,
      "id": "DAT.DST.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Box plots — five-number summary: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Box plots — five-number summary.",
      "content": "Data 5, 7, 8, 10, 12, 15, 19 → min 5, Q1 = 7, median = 10, Q3 = 15, max 19. Box from 7 to 15 with the line at 10; whiskers to 5 and 19; IQR = 15 − 7 = 8.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.DST.03",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Box plots — five-number summary",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 2,
      "id": "DAT.DST.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Box plots — five-number summary: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Box plots — five-number summary into personal, civic/data, and career contexts.",
      "content": "Personal — Box-plot your last seven long-jump distances for the team tryout sheet. · Civic/Data — Box-plot the ages of volunteers at the food-bank shift to show the coordinator who's actually coming. · Career — An app developer box-plots screen load times the night before a release decision.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.DST.03",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Box plots — five-number summary",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 2,
      "id": "DAT.DST.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Box plots — five-number summary: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Box plots — five-number summary.",
      "content": "Accuracy — 6 items: compute five-number summaries (3), draw the plot (2), find IQR from the plot (1); pass ≥5/6 · Explanation — \"A classmate drew the box's middle line at the mean — why is that wrong here, and what does the box-plot recipe guarantee instead?\" · Transfer — build the five-number summary of daily temperatures from a hiking-trip log.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.DST.04",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Reading box plots",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 3,
      "id": "DAT.DST.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Reading box plots: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Reading box plots.",
      "content": "Each region of a box plot — whisker, box-half, whisker — holds about a quarter of the data. A short section means values packed densely, not fewer values. Width is spread, never count.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.DST.04",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Reading box plots",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 3,
      "id": "DAT.DST.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Reading box plots: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Reading box plots.",
      "content": "Plot shows min 12, Q1 18, median 24, Q3 30, max 50. IQR = 30 − 18 = 12; range = 50 − 12 = 38. About 25% of values sit above 30; the short 12–18 whisker holds just as many values as the long 30–50 one — they're simply crowded.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.DST.04",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Reading box plots",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 3,
      "id": "DAT.DST.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Reading box plots: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Reading box plots into personal, civic/data, and career contexts.",
      "content": "Personal — Read the wait-time box plot for your favorite ride in the theme-park app and pick your queue moment. · Civic/Data — The district's class-size box plot undercuts the \"the average class is fine\" claim — read what the top quarter endures. · Career — A transit planner reads route 7's lateness box plot before promising a schedule.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.DST.04",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Reading box plots",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 3,
      "id": "DAT.DST.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Reading box plots: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Reading box plots.",
      "content": "Accuracy — 6 items: read the five numbers and IQR (3), answer \"what fraction lies above/below X\" (2), compare whisker meanings (1); pass ≥5/6 · Explanation — \"A friend says the longer left whisker means more riders there — find the flaw, using what each quarter holds.\" · Transfer — read a box plot of fish lengths from a conservation survey and report the middle half.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.DST.05",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Shape of distributions (skew, clusters, gaps)",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 4,
      "id": "DAT.DST.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Shape of distributions (skew, clusters, gaps): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Shape of distributions (skew, clusters, gaps).",
      "content": "Before any numbers, a distribution has a look: symmetric or skewed (the tail names the skew), one cluster or several, gaps where data should be. Shape decides which summaries you can trust.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.DST.05",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Shape of distributions (skew, clusters, gaps)",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 4,
      "id": "DAT.DST.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Shape of distributions (skew, clusters, gaps): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Shape of distributions (skew, clusters, gaps).",
      "content": "Dot plot of 15 quiz scores: tall stack at 8–10 (peak: five dots at 9), nothing at 5–6, a thin tail down to 3. Description: clustered at 8–10, gap at 5–6, tail stretching left → skewed left.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.DST.05",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Shape of distributions (skew, clusters, gaps)",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 4,
      "id": "DAT.DST.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Shape of distributions (skew, clusters, gaps): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Shape of distributions (skew, clusters, gaps) into personal, civic/data, and career contexts.",
      "content": "Personal — Describe the shape of your text-reply times: a pile of quick replies, a long tail from overnight. · Civic/Data — A news chart of household incomes is right-skewed — explain why \"typical\" and \"mean\" part ways. · Career — A customer-support manager sees call lengths skew right: many quick fixes, a few marathons that set the staffing plan.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.DST.05",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Shape of distributions (skew, clusters, gaps)",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 4,
      "id": "DAT.DST.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Shape of distributions (skew, clusters, gaps): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Shape of distributions (skew, clusters, gaps).",
      "content": "Accuracy — 6 items: name the shape from plots (3), locate clusters/gaps (2), match a description to its plot (1); pass ≥5/6 · Explanation — \"Why does a right-skewed tail drag the mean above the median, while the median stays put?\" · Transfer — interpret the two clusters in ages at a weekday-morning gym (retirees and shift workers) — what question would confirm it?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.DST.06",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Outliers — spotting and interpreting",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 5,
      "id": "DAT.DST.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Outliers — spotting and interpreting: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Outliers — spotting and interpreting.",
      "content": "An outlier sits implausibly far from the rest — flag it with the informal fence (1.5 × IQR beyond the quartiles), then *interpret* it: typo, fluke, or the most important point in the dataset. Never silently delete.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.DST.06",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Outliers — spotting and interpreting",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 5,
      "id": "DAT.DST.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Outliers — spotting and interpreting: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Outliers — spotting and interpreting.",
      "content": "Data 12, 14, 15, 15, 16, 18, 35 → median 15, Q1 14, Q3 18, IQR 4. Fences: 14 − 6 = 8 and 18 + 6 = 24. The 35 lies beyond 24 → flagged. Next question: error or real? Decide before computing anything else.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.DST.06",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Outliers — spotting and interpreting",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 5,
      "id": "DAT.DST.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Outliers — spotting and interpreting: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Outliers — spotting and interpreting into personal, civic/data, and career contexts.",
      "content": "Personal — One 3-hour homework night sits among thirty-minute nights — it was real (project due), so explain it rather than erase it. · Civic/Data — The river-level gauge spikes during a maintenance hour; flag it before the flood headline runs. · Career — A junior fraud analyst flags a $4,000 charge in a stream of $20 lunches for review, not deletion.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.DST.06",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Outliers — spotting and interpreting",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 5,
      "id": "DAT.DST.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Outliers — spotting and interpreting: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Outliers — spotting and interpreting.",
      "content": "Accuracy — 5 items: flag outliers with the fence rule (3), state the effect on mean vs median (2); pass ≥4/5 · Explanation — \"When is deleting an outlier honest, and when is it cheating? State the rule you'd use and apply it to the 35.\" · Transfer — flag and interpret the odd value in plant-growth data where one pot sat by the radiator.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.DST.07",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Stem-and-leaf plots",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 6,
      "id": "DAT.DST.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Stem-and-leaf plots: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Stem-and-leaf plots.",
      "content": "A stem-and-leaf splits each value into stem (leading digits) and leaf (last digit), sorting data into a histogram shape that still shows every exact value. The key makes it readable.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.DST.07",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Stem-and-leaf plots",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 6,
      "id": "DAT.DST.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Stem-and-leaf plots: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Stem-and-leaf plots.",
      "content": "Data 23, 27, 31, 31, 38, 42, 45 → stems 2 | 3 7 · 3 | 1 1 8 · 4 | 2 5, key 3|1 = 31. Median = 4th of 7 values, read straight down the leaves = 31.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.DST.07",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Stem-and-leaf plots",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 6,
      "id": "DAT.DST.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Stem-and-leaf plots: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Stem-and-leaf plots into personal, civic/data, and career contexts.",
      "content": "Personal — Stem-and-leaf your twelve mini-golf scores to see your scoring zone without losing a single round. · Civic/Data — Plot the ages of one morning's museum visitors to show the education team who actually visits. · Career — A track coach keeps 200 m times in a stem-and-leaf taped to the clipboard — shape and exact times at a glance.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.DST.07",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Stem-and-leaf plots",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 6,
      "id": "DAT.DST.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Stem-and-leaf plots: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Stem-and-leaf plots.",
      "content": "Accuracy — 6 items: build a plot with key (2), read values and counts (2), find median/range from the plot (2); pass ≥5/6 · Explanation — \"Compared with a histogram of the same data, what does the stem-and-leaf preserve that bins destroy — and when is that worth the clutter?\" · Transfer — stem-and-leaf ten daily UV-index readings and report the typical value.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.DST.08",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Cumulative frequency (intro)",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 7,
      "id": "DAT.DST.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Cumulative frequency (intro): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Cumulative frequency (intro).",
      "content": "Cumulative frequency answers \"how many at or below this value?\" by running a growing total across the bins. It turns a distribution into thresholds — perfect for \"what fraction finished under…?\"",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.DST.08",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Cumulative frequency (intro)",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 7,
      "id": "DAT.DST.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Cumulative frequency (intro): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Cumulative frequency (intro).",
      "content": "Test-score bins: [50–60) 3, [60–70) 5, [70–80) 8, [80–90) 4. Cumulative: below 60 → 3; below 70 → 3 + 5 = 8; below 80 → 8 + 8 = 16; below 90 → 20. \"How many under 80?\" 16 of 20 = 80%.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.DST.08",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Cumulative frequency (intro)",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 7,
      "id": "DAT.DST.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Cumulative frequency (intro): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Cumulative frequency (intro) into personal, civic/data, and career contexts.",
      "content": "Personal — From your reading log, count how many of your 20 books ran under 200 pages. · Civic/Data — The water department reports how many tested homes fell below the lead-safety line — read the cumulative table the way the council must. · Career — A logistics intern reports the percent of packages delivered by day 1, 2, and 3 for the service dashboard.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.DST.08",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Cumulative frequency (intro)",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 7,
      "id": "DAT.DST.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Cumulative frequency (intro): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Cumulative frequency (intro).",
      "content": "Accuracy — 6 items: build cumulative totals (2), answer threshold questions (2), convert to percent of total (2); pass ≥5/6 · Explanation — \"Why can a cumulative count never decrease as you move up the bins — and what would a dip prove?\" · Transfer — chart how many seedlings had sprouted by each day of the week.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.DST.09",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Choosing displays for distribution questions",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 8,
      "id": "DAT.DST.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Choosing displays for distribution questions: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Choosing displays for distribution questions.",
      "content": "Match the question to the display: exact values → stem-and-leaf or dot plot; overall shape → histogram; quartile summaries → box plot; \"how many below X?\" → cumulative table. The question picks the picture.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.DST.09",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Choosing displays for distribution questions",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 8,
      "id": "DAT.DST.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Choosing displays for distribution questions: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Choosing displays for distribution questions.",
      "content": "40 race times, three questions: \"typical time and spread?\" → box plot; \"shape — clusters or gaps?\" → histogram; \"how many under 25 min?\" → cumulative, e.g. bins give 12 + 9 = 21 of 40. Three questions, three different right answers.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.DST.09",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Choosing displays for distribution questions",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 8,
      "id": "DAT.DST.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Choosing displays for distribution questions: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Choosing displays for distribution questions into personal, civic/data, and career contexts.",
      "content": "Personal — Pick the display that best convinces your parents your homework times are reasonable — and say which claim each display could prove. · Civic/Data — For the town speeding meeting, choose between a histogram of speeds and a cumulative \"% over the limit\" — per question asked. · Career — A UX researcher picks displays for page-load complaints: shape for engineers, thresholds for the support team.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.DST.09",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Choosing displays for distribution questions",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 8,
      "id": "DAT.DST.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Choosing displays for distribution questions: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Choosing displays for distribution questions.",
      "content": "Accuracy — 6 items: choose the display for a question (4), justify rejecting a display (2); pass ≥5/6 · Explanation — \"A reporter needs 'what fraction waited over 2 hours' but built a histogram whose bin runs 1.5–2.5 — why does the display fail the question?\" · Transfer — match displays to three questions about bridge-traffic counts.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.DST.10",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Describing a distribution fully (shape, center, spread)",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 9,
      "id": "DAT.DST.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Describing a distribution fully (shape, center, spread): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Describing a distribution fully (shape, center, spread).",
      "content": "A full description reads like a checklist in context: shape (skew, clusters, gaps), center (median or mean — justified), spread (IQR or range), unusual values interpreted. Nothing extra, nothing missing.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.DST.10",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Describing a distribution fully (shape, center, spread)",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 9,
      "id": "DAT.DST.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Describing a distribution fully (shape, center, spread): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Describing a distribution fully (shape, center, spread).",
      "content": "Minutes to fall asleep: 8, 10, 12, 13, 15, 18, 40 → median 13, Q1 10, Q3 18, IQR 8; fence 18 + 12 = 30, so 40 is an outlier; shape right-skewed. Description: \"Typically about 13 minutes (middle half 10–18); right-skewed with one unusual 40-minute night.\"",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.DST.10",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Describing a distribution fully (shape, center, spread)",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 9,
      "id": "DAT.DST.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Describing a distribution fully (shape, center, spread): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Describing a distribution fully (shape, center, spread) into personal, civic/data, and career contexts.",
      "content": "Personal — Fully describe two weeks of your 5k training times for your coach — shape, center, spread, and the one weird run. · Civic/Data — Describe the volunteer fire department's response-time distribution for the grant application. · Career — A junior data journalist describes the rent distribution for a housing story: center, spread, skew, and the outliers that are the story.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.DST.10",
      "clusterId": "DAT.DST",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Describing a distribution fully (shape, center, spread)",
      "clusterTitle": "Distributions & Displays II (DAT.DST)",
      "band": "6–8",
      "hardLevel": 9,
      "id": "DAT.DST.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Describing a distribution fully (shape, center, spread): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Describing a distribution fully (shape, center, spread).",
      "content": "Accuracy — 4 items: full descriptions of given plots scored against the checklist (4); pass ≥3/4 · Explanation — \"A description gives only mean and range for skewed data with an outlier — what does it mislead about, and what's missing?\" · Transfer — fully describe wind-speed data collected at a kite festival.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.GRF.01",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Pictographs (1:1 symbols)",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 0,
      "id": "DAT.GRF.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Pictographs (1:1 symbols): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Pictographs (1:1 symbols).",
      "content": "A pictograph turns a frequency table into a picture: one identical symbol per observation, lined up so the length of a row shows its count fairly.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.GRF.01",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Pictographs (1:1 symbols)",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 0,
      "id": "DAT.GRF.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Pictographs (1:1 symbols): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Pictographs (1:1 symbols).",
      "content": "Books-read chart, one circle = 1 book: Mia's row has 7 circles, Sam's has 4. Mia read 7, Sam read 4, together 7 + 4 = 11 books.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.GRF.01",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Pictographs (1:1 symbols)",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 0,
      "id": "DAT.GRF.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Pictographs (1:1 symbols): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Pictographs (1:1 symbols) into personal, civic/data, and career contexts.",
      "content": "Personal — One star on the door chart for every book you finish this month. · Civic/Data — The class kindness board adds one heart per kind act noticed this week. · Career — The school gardener puts one ladybug sticker per sprouted pot on the shed chart.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.GRF.01",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Pictographs (1:1 symbols)",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 0,
      "id": "DAT.GRF.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Pictographs (1:1 symbols): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Pictographs (1:1 symbols).",
      "content": "Accuracy — 6 items: read row counts (2), compare two rows (2), draw rows from a small table (2); pass ≥5/6 · Explanation — \"Why must every symbol be the same size and lined up — what could a reader wrongly conclude if Mia's circles were drawn bigger?\" · Transfer — build a symbol chart of instruments chosen in music class.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.GRF.02",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Pictographs with scaled symbols",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 1,
      "id": "DAT.GRF.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Pictographs with scaled symbols: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Pictographs with scaled symbols.",
      "content": "When counts get big, one symbol stands for many — the key (1 symbol = 10) is now part of the data, and half a symbol means half the key's value.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.GRF.02",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Pictographs with scaled symbols",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 1,
      "id": "DAT.GRF.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Pictographs with scaled symbols: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Pictographs with scaled symbols.",
      "content": "Key: each cart icon = 10 cars. Monday's row shows 3 carts + half a cart → 3 × 10 + 5 = 35 cars. Counting icons as 1 each would give 3½ — off by a factor of ten.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.GRF.02",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Pictographs with scaled symbols",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 1,
      "id": "DAT.GRF.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Pictographs with scaled symbols: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Pictographs with scaled symbols into personal, civic/data, and career contexts.",
      "content": "Personal — Your practice chart uses one star = 5 minutes; read how long you really played this week. · Civic/Data — The school recycling display shows one bottle icon = 10 bottles collected per class. · Career — A farm-stand chart uses one basket icon = 5 kg of strawberries picked per day.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.GRF.02",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Pictographs with scaled symbols",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 1,
      "id": "DAT.GRF.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Pictographs with scaled symbols: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Pictographs with scaled symbols.",
      "content": "Accuracy — 6 items: read scaled rows incl. half symbols (3), draw rows to match a count (2), pick the sensible key for big data (1); pass ≥5/6 · Explanation — \"A friend read 4 icons as 4 cars even though the key says 10 — what answer did they get, and why is the key not optional?\" · Transfer — read a charity-walk chart where one shoe icon = 20 laps.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.GRF.03",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Bar graphs — reading",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 2,
      "id": "DAT.GRF.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Bar graphs — reading: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Bar graphs — reading.",
      "content": "A bar's height against the scale is its count; reading means using the axis gridlines — including values that land between labeled lines — not guessing from looks.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.GRF.03",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Bar graphs — reading",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 2,
      "id": "DAT.GRF.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Bar graphs — reading: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Bar graphs — reading.",
      "content": "Clubs graph, axis labeled in 2s: art bar reaches the 12 gridline, soccer stops halfway between 8 and 10 → 9, chess stops halfway between 4 and 6 → 5. \"How many more in art than chess?\" 12 − 5 = 7.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.GRF.03",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Bar graphs — reading",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 2,
      "id": "DAT.GRF.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Bar graphs — reading: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Bar graphs — reading into personal, civic/data, and career contexts.",
      "content": "Personal — Read your minutes-read-per-weekday bars to find your weakest reading day. · Civic/Data — Read the town library's summer-reading bar graph to see which grade leads. · Career — A shoe-store clerk reads the sizes-sold graph to decide which sizes to restock.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.GRF.03",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Bar graphs — reading",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 2,
      "id": "DAT.GRF.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Bar graphs — reading: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Bar graphs — reading.",
      "content": "Accuracy — 6 items: read bar values incl. between-gridline bars (3), compare bars (2), find a total from two bars (1); pass ≥5/6 · Explanation — \"A friend counted gridlines as 1s on an axis labeled in 2s and read soccer as 4½ — find the flaw and fix the reading.\" · Transfer — read a rainfall-by-month bar graph from a weather poster.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.GRF.04",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Bar graphs — constructing",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 3,
      "id": "DAT.GRF.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Bar graphs — constructing: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Bar graphs — constructing.",
      "content": "Building a bar graph means choosing a scale that fits the data, then drawing equal-width bars with even gaps, labeled axes, and a title — every choice serves a fair reading.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.GRF.04",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Bar graphs — constructing",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 3,
      "id": "DAT.GRF.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Bar graphs — constructing: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Bar graphs — constructing.",
      "content": "Lunch table: pasta 8, salad 3, tacos 11. Largest value 11 → axis 0–12 counting by 2s. Tacos bar lands one gridline-half above 10 at 11; bars equal width; categories labeled. The tallest bar now honestly shows tacos winning.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.GRF.04",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Bar graphs — constructing",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 3,
      "id": "DAT.GRF.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Bar graphs — constructing: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Bar graphs — constructing into personal, civic/data, and career contexts.",
      "content": "Personal — Graph your Halloween candy by type to negotiate trades from evidence. · Civic/Data — Make the poster graph of can-drive totals by grade for the assembly reveal. · Career — A camp counselor graphs activity signups to argue for one more kayak coach.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.GRF.04",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Bar graphs — constructing",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 3,
      "id": "DAT.GRF.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Bar graphs — constructing: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Bar graphs — constructing.",
      "content": "Accuracy — 5 items: pick the right scale (1), build the graph from a table (2), label/title fixes (2); pass ≥4/5 · Explanation — \"A classmate's axis reads 0, 1, 2, 5, 10 with equal spacing — why does the graph now lie even though every bar is 'correct'?\" · Transfer — graph zoo-trip animal sightings from a tally sheet.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.GRF.05",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Line plots / dot plots",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 4,
      "id": "DAT.GRF.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Line plots / dot plots: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Line plots / dot plots.",
      "content": "A dot plot puts one dot per data value above a number line, so every individual value stays visible — it's the display where the shape of numeric data first appears.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.GRF.05",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Line plots / dot plots",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 4,
      "id": "DAT.GRF.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Line plots / dot plots: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Line plots / dot plots.",
      "content": "Pencil lengths (cm): 10, 11, 11, 12, 12, 12, 13, 14 → dots stack 1, 2, 3, 1, 1 over 10–14. Eight dots for eight pencils ✓; the tallest stack (3 dots) sits at 12 cm.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.GRF.05",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Line plots / dot plots",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 4,
      "id": "DAT.GRF.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Line plots / dot plots: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Line plots / dot plots into personal, civic/data, and career contexts.",
      "content": "Personal — Dot-plot your daily push-up counts for two weeks and find your usual stack. · Civic/Data — Dot-plot the ages of kids at the community swim class to show the range to parents. · Career — A youth-league equipment manager dot-plots glove sizes before ordering replacements.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.GRF.05",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Line plots / dot plots",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 4,
      "id": "DAT.GRF.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Line plots / dot plots: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Line plots / dot plots.",
      "content": "Accuracy — 6 items: build a plot from a list (2), read counts at a value (2), find total dots and the most common value (2); pass ≥5/6 · Explanation — \"A plot's number line jumps from 5 to 7 because nobody scored 6 — why does skipping the empty value distort the shape?\" · Transfer — dot-plot seed-packet sprout counts from a science journal.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.GRF.06",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Line graphs over time",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 5,
      "id": "DAT.GRF.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Line graphs over time: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Line graphs over time.",
      "content": "A line graph connects measurements of one thing taken over time; the slope between points shows how fast it changed. Connecting only makes sense when in-between values exist.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.GRF.06",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Line graphs over time",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 5,
      "id": "DAT.GRF.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Line graphs over time: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Line graphs over time.",
      "content": "Playground temperature: 9 am 14 °C, noon 20 °C, 3 pm 17 °C. Morning change: 20 − 14 = +6°; afternoon: 17 − 20 = −3°. The steeper morning segment shows the faster change.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.GRF.06",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Line graphs over time",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 5,
      "id": "DAT.GRF.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Line graphs over time: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Line graphs over time into personal, civic/data, and career contexts.",
      "content": "Personal — Graph your bean plant's height each Monday and spot the growth-spurt week. · Civic/Data — The council website graphs the reservoir level by month — read when the dry spell began. · Career — The school nurse charts a feverish student's temperature each hour for the parents.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.GRF.06",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Line graphs over time",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 5,
      "id": "DAT.GRF.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Line graphs over time: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Line graphs over time.",
      "content": "Accuracy — 6 items: read values at times (2), find rises/falls between points (2), pick the steepest segment (2); pass ≥5/6 · Explanation — \"A classmate drew a line graph of favorite colors, connecting red to blue — why is the line between categories meaningless?\" · Transfer — read a tide-height line graph to choose the best beach hour.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.GRF.07",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Reading between the data (comparisons from graphs)",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 6,
      "id": "DAT.GRF.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Reading between the data (comparisons from graphs): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Reading between the data (comparisons from graphs).",
      "content": "Graphs answer more than lookups: differences, totals, and \"is A bigger than B and C together?\" all come from combining bars — two-step questions, one display.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.GRF.07",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Reading between the data (comparisons from graphs)",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 6,
      "id": "DAT.GRF.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Reading between the data (comparisons from graphs): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Reading between the data (comparisons from graphs).",
      "content": "Recess graph: football 14, tag 9, wall-ball 6. \"How many more chose football than wall-ball?\" 14 − 6 = 8. \"Do tag and wall-ball together beat football?\" 9 + 6 = 15 > 14 — yes, by 1.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.GRF.07",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Reading between the data (comparisons from graphs)",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 6,
      "id": "DAT.GRF.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Reading between the data (comparisons from graphs): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Reading between the data (comparisons from graphs) into personal, civic/data, and career contexts.",
      "content": "Personal — Compare your weekday vs weekend reading bars to argue you've earned a later Friday bedtime. · Civic/Data — Compare two months of attendance bars to judge whether the walking-bus scheme helped. · Career — A pool lifeguard compares hourly swimmer-count bars to schedule the safety break.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.GRF.07",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Reading between the data (comparisons from graphs)",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 6,
      "id": "DAT.GRF.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Reading between the data (comparisons from graphs): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Reading between the data (comparisons from graphs).",
      "content": "Accuracy — 6 items: difference questions (2), combined-total questions (2), two-step mixed (2); pass ≥5/6 · Explanation — \"Class A read 40 books, Class B 20 — why isn't 'Class A kids each read more' proven yet? (Hint: Class A has twice the students.)\" · Transfer — answer two-step questions from a bake-sale earnings graph.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.GRF.08",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Choosing the right display",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 7,
      "id": "DAT.GRF.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Choosing the right display: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Choosing the right display.",
      "content": "The data type and the question choose the graph: categories → bars or pictographs; one numeric measure → dot plot; change over time → line graph. The display is an argument, not a decoration.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.GRF.08",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Choosing the right display",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 7,
      "id": "DAT.GRF.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Choosing the right display: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Choosing the right display.",
      "content": "Match three datasets: favorite sport (categories → bar graph); daily temperature for a month (time series → line graph); 25 quiz scores out of 30 (numeric values → dot plot, which reveals the pile-up at 27–29 that a bar-of-averages would hide).",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.GRF.08",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Choosing the right display",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 7,
      "id": "DAT.GRF.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Choosing the right display: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Choosing the right display into personal, civic/data, and career contexts.",
      "content": "Personal — Choose how to show grandparents a year of your swim times so improvement is visible. · Civic/Data — Advise the parks newsletter whether rainfall-by-week should be bars or a line, and why. · Career — A junior sports journalist picks displays for the team page: goals over the season vs positions on the roster.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.GRF.08",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Choosing the right display",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 7,
      "id": "DAT.GRF.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Choosing the right display: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Choosing the right display.",
      "content": "Accuracy — 6 items: match dataset + question to display (4), reject an unsuitable display with reason (2); pass ≥5/6 · Explanation — \"Someone graphed one runner's time at each kilometer as separate bars — why does a line tell that story better?\" · Transfer — choose displays for a school garden's data: harvest by vegetable, and tomato weight week by week.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.GRF.09",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Misleading graphs — axes and scale tricks",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 8,
      "id": "DAT.GRF.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Misleading graphs — axes and scale tricks: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Misleading graphs — axes and scale tricks.",
      "content": "The same true numbers can be drawn to exaggerate or bury a story — truncated axes, uneven scales, stretched proportions, cherry-picked windows. Check the axis before trusting the shape.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.GRF.09",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Misleading graphs — axes and scale tricks",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 8,
      "id": "DAT.GRF.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Misleading graphs — axes and scale tricks: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Misleading graphs — axes and scale tricks.",
      "content": "Poll bars 52% vs 48% drawn on an axis from 47 to 53: drawn heights are 52 − 47 = 5 vs 48 − 47 = 1, so one bar looks 5× taller. The real ratio is 52/48 ≈ 1.08 — redrawn from 0, the bars are nearly twins.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.GRF.09",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Misleading graphs — axes and scale tricks",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 8,
      "id": "DAT.GRF.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Misleading graphs — axes and scale tricks: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Misleading graphs — axes and scale tricks into personal, civic/data, and career contexts.",
      "content": "Personal — Your fitness app plots weekly steps on an axis starting at 9,000, so a 200-step rise looks like a mountain — check the scale before bragging. · Civic/Data — A news segment's \"CRIME SOARS\" chart is cropped to 50–58 incidents; recompute the real change (53 → 56 is about a 6% rise) and write the honest headline. · Career — A junior marketing analyst is told to \"make growth pop\" by starting the axis at 90 — they propose a zero-based chart with a labeled zoom inset instead.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.GRF.09",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Misleading graphs — axes and scale tricks",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 8,
      "id": "DAT.GRF.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Misleading graphs — axes and scale tricks: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Misleading graphs — axes and scale tricks.",
      "content": "Accuracy — 6 items: name the trick (truncated axis, uneven intervals, missing labels, cherry-picked window) (4), and judge two graphs of which one is actually fair (2); pass ≥5/6 · Explanation — given the cropped chart and its zero-based redraw, explain which impression changed and why the data didn't. · Transfer — audit a juice ad's \"50% more vitamin C!\" bar chart and report whether the picture matches the numbers.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.GRF.10",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Reading real-world dashboards",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 9,
      "id": "DAT.GRF.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Reading real-world dashboards: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Reading real-world dashboards.",
      "content": "A dashboard packs several small displays around one question. Reading it means finding the right panel, checking each panel's own scale, and noticing what isn't shown.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.GRF.10",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Reading real-world dashboards",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 9,
      "id": "DAT.GRF.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Reading real-world dashboards: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Reading real-world dashboards.",
      "content": "School energy dashboard — line panel (kWh/day: 120, 118, 140, 122, 119), by-room bar panel, and an \"82% of target\" gauge. Wednesday spikes 20 kWh above Monday (140 vs 120); the bar panel explains it: the gym ran +18. One question, two panels, one answer.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.GRF.10",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Reading real-world dashboards",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 9,
      "id": "DAT.GRF.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Reading real-world dashboards: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Reading real-world dashboards into personal, civic/data, and career contexts.",
      "content": "Personal — In your music app's year-recap dashboard, work out whether one binge week crowned your \"top artist.\" · Civic/Data — On the city air-quality dashboard, decide whether today's reading is unusual against the monthly trend panel. · Career — A QA tester reads the morning bug dashboard: new vs closed bugs and the build-health gauge.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.GRF.10",
      "clusterId": "DAT.GRF",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Reading real-world dashboards",
      "clusterTitle": "Graphs & Displays (DAT.GRF)",
      "band": "1–6",
      "hardLevel": 9,
      "id": "DAT.GRF.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Reading real-world dashboards: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Reading real-world dashboards.",
      "content": "Accuracy — 5 items: locate the panel that answers a question (2), read values across panels (2), state one thing the dashboard can't answer (1); pass ≥4/5 · Explanation — \"The two line panels use different y-scales — why can't you compare their slopes by eye?\" · Transfer — use a weather dashboard to decide whether this was the wettest week of the month, citing the panels used.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.SMP.01",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Population vs sample",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 0,
      "id": "DAT.SMP.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Population vs sample: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Population vs sample.",
      "content": "The population is the whole group your question is about; the sample is the part you actually measure. Every statistic describes the sample — whether it stretches to the population depends entirely on how the sample was chosen.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.SMP.01",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Population vs sample",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 0,
      "id": "DAT.SMP.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Population vs sample: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Population vs sample.",
      "content": "Claim: \"Students at our school average 38 minutes of homework.\" Population: all 900 students. Sample: the 45 surveyed in one homeroom → 45/900 = 5% measured. The 38 minutes is a fact about the 45; about the 900, it is so far only a guess.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.SMP.01",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Population vs sample",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 0,
      "id": "DAT.SMP.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Population vs sample: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Population vs sample into personal, civic/data, and career contexts.",
      "content": "Personal — One spoonful (sample) tells you about the whole pot of soup (population) — if the pot was stirred. · Civic/Data — A \"city backs the stadium\" poll: name the population the headline implies and the people actually asked. · Career — A QA engineer can't test every phone in the lot, so she defines the lot and pulls a sample from it.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.SMP.01",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Population vs sample",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 0,
      "id": "DAT.SMP.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Population vs sample: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Population vs sample.",
      "content": "Accuracy — 6 items: identify population and sample in described studies (4), say what group a statistic actually describes (2); pass ≥5/6 · Explanation — \"What changes about the 38-minute claim when 45 students stand in for 900 — and what single word should the headline add?\" · Transfer — identify population and sample when a teacher spot-checks 6 of 30 gradebook entries.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.SMP.02",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Random vs convenience samples",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 1,
      "id": "DAT.SMP.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Random vs convenience samples: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Random vs convenience samples.",
      "content": "A convenience sample takes whoever is easy to reach; a random sample gives every member of the population an equal chance. Randomness is the only method that doesn't bake the sampler's habits into the data.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.SMP.02",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Random vs convenience samples",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 1,
      "id": "DAT.SMP.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Random vs convenience samples: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Random vs convenience samples.",
      "content": "Estimate the school's mean books-read. Sample A: first 30 students entering the library → 9.1 books. Sample B: 30 names drawn from the full roster with random numbers → 5.6 books. A's method overcounts readers by design; B's result is the one worth reporting.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.SMP.02",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Random vs convenience samples",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 1,
      "id": "DAT.SMP.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Random vs convenience samples: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Random vs convenience samples into personal, civic/data, and career contexts.",
      "content": "Personal — Concluding \"everyone loves spicy food\" from your chili-club group chat. · Civic/Data — A TV call-in poll vs a randomized phone poll on the bike-lane plan — which deserves the headline? · Career — A market researcher swaps Tuesday-morning mall intercepts for a random draw from the customer list.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.SMP.02",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Random vs convenience samples",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 1,
      "id": "DAT.SMP.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Random vs convenience samples: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Random vs convenience samples.",
      "content": "Accuracy — 6 items: classify sampling methods (3), predict the direction a convenience sample distorts (2), pick the random fix (1); pass ≥5/6 · Explanation — \"Why does 'every member equally likely' protect against the sampler's own habits — what was the library-door method secretly selecting for?\" · Transfer — compare nearest-to-the-path vs grid-random tree sampling in a forest plot.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.SMP.03",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Bias in sampling — leading questions, who's missing",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 2,
      "id": "DAT.SMP.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Bias in sampling — leading questions, who's missing: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Bias in sampling — leading questions, who's missing.",
      "content": "Bias is a built-in lean, and it has two big doors: question wording that pushes an answer, and coverage that silently excludes people. A biased design gives a wrong answer *consistently* — no sample size can rescue it.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.SMP.03",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Bias in sampling — leading questions, who's missing",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 2,
      "id": "DAT.SMP.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Bias in sampling — leading questions, who's missing: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Bias in sampling — leading questions, who's missing.",
      "content": "Same population, two wordings: \"Do you support *wasting tax money* on a parking garage?\" → 22% yes. \"Do you support building a parking garage *to ease downtown parking*?\" → 61% yes. A 39-point swing from wording alone — and if the survey ran online-only, offline seniors never got a vote at all.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.SMP.03",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Bias in sampling — leading questions, who's missing",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 2,
      "id": "DAT.SMP.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Bias in sampling — leading questions, who's missing: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Bias in sampling — leading questions, who's missing into personal, civic/data, and career contexts.",
      "content": "Personal — Your family poll, \"Don't you agree the dog should sleep in my room?\" — rewrite it before trusting the yes. · Civic/Data — A later-school-start survey distributed only to teachers claims \"the community objects\" — name who's missing. · Career — A polling-firm junior flags a push-poll question before the survey fields.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.SMP.03",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Bias in sampling — leading questions, who's missing",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 2,
      "id": "DAT.SMP.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Bias in sampling — leading questions, who's missing: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Bias in sampling — leading questions, who's missing.",
      "content": "Accuracy — 6 items: spot leading wording (2), spot undercoverage/volunteer bias (2), rewrite one question neutrally (2); pass ≥5/6 · Explanation — \"Why can't a bigger sample fix a leading question — what's the difference between noise and lean?\" · Transfer — audit a snack-bar ad's \"9 out of 10 kids prefer it\" survey design: wording, who was asked, who answered.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.SMP.04",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Sample size intuitions",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 3,
      "id": "DAT.SMP.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Sample size intuitions: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Sample size intuitions.",
      "content": "Bigger unbiased samples wobble less: estimates from small samples swing wildly, large ones settle down — with diminishing returns. Size buys steadiness; it never buys fairness.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.SMP.04",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Sample size intuitions",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 3,
      "id": "DAT.SMP.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Sample size intuitions: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Sample size intuitions.",
      "content": "True left-hander rate 10%. Repeated samples of 10 swing from 0% to 30%; repeated samples of 100 stay roughly 6%–14%. Ten times the sample, about a third the swing — steadier, but a biased frame at n = 1,000 would still miss.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.SMP.04",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Sample size intuitions",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 3,
      "id": "DAT.SMP.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Sample size intuitions: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Sample size intuitions into personal, civic/data, and career contexts.",
      "content": "Personal — Judging camp food from your sibling's three meals vs the whole-summer dining log. · Civic/Data — A 50-person street poll and a 1,200-person random poll disagree — whose swing was expected? · Career — An app team picks how many beta testers they need before trusting a crash-rate estimate.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.SMP.04",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Sample size intuitions",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 3,
      "id": "DAT.SMP.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Sample size intuitions: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Sample size intuitions.",
      "content": "Accuracy — 5 items: rank estimates by expected steadiness (2), pick the trustworthy disagreement (2), spot where size can't help (1); pass ≥4/5 · Explanation — \"A friend says 'survey 10 more people and the answer becomes true.' What does more data actually buy — and what can it never buy?\" · Transfer — decide how many yearbook pages to spot-check to estimate the typo rate, and defend the number.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.SMP.05",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Estimating a population value from a sample",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 4,
      "id": "DAT.SMP.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Estimating a population value from a sample: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Estimating a population value from a sample.",
      "content": "Scale the sample up: if a fair sample shows a proportion, apply it to the population size — and report the result as an estimate with wiggle room, never as a counted fact.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.SMP.05",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Estimating a population value from a sample",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 4,
      "id": "DAT.SMP.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Estimating a population value from a sample: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Estimating a population value from a sample.",
      "content": "Random sample: 60 of 200 students bike to school → 60/200 = 30%. School population 1,400 → estimate 0.30 × 1,400 = about 420 bikers. \"About\" is part of the answer: a different fair sample would give a slightly different 420.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.SMP.05",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Estimating a population value from a sample",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 4,
      "id": "DAT.SMP.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Estimating a population value from a sample: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Estimating a population value from a sample into personal, civic/data, and career contexts.",
      "content": "Personal — Estimate the red candies in the big jar from one well-shaken handful. · Civic/Data — The city estimates total potholes from a random sample of street segments before setting the repair budget. · Career — A wildlife technician estimates the lake's fish population by tagging, releasing, and resampling.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.SMP.05",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Estimating a population value from a sample",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 4,
      "id": "DAT.SMP.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Estimating a population value from a sample: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Estimating a population value from a sample.",
      "content": "Accuracy — 5 items: scale sample proportions to populations (3), reverse: infer the sample needed for a claim (1), flag the unfair-sample trap (1); pass ≥4/5 · Explanation — \"Why must you report 'about 420' rather than 'exactly 420' — and what about the sampling would make you trust even the 'about' less?\" · Transfer — estimate how many of the library's 8,000 books are checked out from a random sample of 50 shelves.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.SMP.06",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Variability between samples",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 5,
      "id": "DAT.SMP.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Variability between samples: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Variability between samples.",
      "content": "Honest random samples from the same population still disagree — that sample-to-sample wobble is natural, predictable in size, and the single most important idea for reading polls.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.SMP.06",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Variability between samples",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 5,
      "id": "DAT.SMP.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Variability between samples: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Variability between samples.",
      "content": "A bag holds 100 chips, 40 red. Ten random samples of 20 give red counts 6, 7, 7, 8, 8, 8, 9, 9, 10, 11 → estimates from 30% to 55%, clustering near the true 40%. No single sample is \"the truth\"; the cluster is the message.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.SMP.06",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Variability between samples",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 5,
      "id": "DAT.SMP.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Variability between samples: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Variability between samples into personal, civic/data, and career contexts.",
      "content": "Personal — Five friends each poll ten classmates about the class trip and get five different answers — nobody lied. · Civic/Data — Two reputable polls a week apart read 49% and 52% — expected wobble, or a real shift? · Career — An analytics intern watches daily conversion rates bounce around a steady monthly average and learns not to panic.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.SMP.06",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Variability between samples",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 5,
      "id": "DAT.SMP.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Variability between samples: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Variability between samples.",
      "content": "Accuracy — 5 items: predict whether repeated samples will match (2), read a dot plot of many sample results (2), locate the population value inside the cluster (1); pass ≥4/5 · Explanation — \"Why do two honest samples disagree — and why does the *pile* of many sample results still point at the truth?\" · Transfer — interpret differing turtle-nest counts from random transects of the same beach.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.SMP.07",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Simulations with random digits",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 6,
      "id": "DAT.SMP.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Simulations with random digits: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Simulations with random digits.",
      "content": "When the real experiment is slow or impossible, model it: assign digits to outcomes in the true proportions, read off random digits, and repeat many trials. The fraction of simulated successes estimates the real chance.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.SMP.07",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Simulations with random digits",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 6,
      "id": "DAT.SMP.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Simulations with random digits: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Simulations with random digits.",
      "content": "Chance of passing a 5-question true/false quiz (≥4 right) by pure guessing: let even digits = correct (5 of 10 digits = 50%). Take 20 groups of 5 random digits; suppose 3 groups contain ≥4 evens → estimate 3/20 = 15%. (Theory: 6/32 ≈ 19% — the simulation landed close, and more trials would close the gap.)",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.SMP.07",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Simulations with random digits",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 6,
      "id": "DAT.SMP.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Simulations with random digits: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Simulations with random digits into personal, civic/data, and career contexts.",
      "content": "Personal — Simulate how many cereal boxes it takes to collect all four prizes (digits 1–4) before begging for more boxes. · Civic/Data — Three raffle wins landed in one class — simulate the school raffle to test whether that's actually suspicious. · Career — An operations planner simulates restaurant no-shows (digit 0 = no-show, 10%) to set an overbooking policy.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.SMP.07",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Simulations with random digits",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 6,
      "id": "DAT.SMP.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Simulations with random digits: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Simulations with random digits.",
      "content": "Accuracy — 5 items: design a digit assignment for a given probability (2), run and tally provided digit strings (2), read the estimate off the trials (1); pass ≥4/5 · Explanation — \"Why must the digit assignment match the real probability — exactly 3 of 10 digits for a 30% event — and what breaks if it doesn't?\" · Transfer — simulate streaks for a 70% free-throw shooter to test whether a 'hot hand' run of 8 makes is surprising.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.SMP.08",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Margin-of-error intuition (informal)",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 7,
      "id": "DAT.SMP.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Margin-of-error intuition (informal): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Margin-of-error intuition (informal).",
      "content": "Every sample estimate carries a wobble band — roughly, bigger samples mean tighter bands. If two results' bands overlap, the data hasn't picked a winner, no matter what the headline says.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.SMP.08",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Margin-of-error intuition (informal)",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 7,
      "id": "DAT.SMP.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Margin-of-error intuition (informal): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Margin-of-error intuition (informal).",
      "content": "Poll: 52% of 400 voters favor candidate A. Sample-to-sample wobble for n = 400 is about ±5 points (informally, 1/√400 = 1/20 = 5%) → plausible true support 47%–57%. Since 50% sits inside the band, \"A leads\" is not yet a finding.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.SMP.08",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Margin-of-error intuition (informal)",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 7,
      "id": "DAT.SMP.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Margin-of-error intuition (informal): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Margin-of-error intuition (informal) into personal, civic/data, and career contexts.",
      "content": "Personal — Your 4.6 stars from 9 reviews vs a rival's 4.4 from 900 — whose star rating is squishier, and by how much? · Civic/Data — \"Candidate surges 2 points!\" with a ±4 margin — write the honest version: the race didn't move. · Career — A games studio reads beta-survey satisfaction of 71% ± 6 before promising players any changes.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.SMP.08",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Margin-of-error intuition (informal)",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 7,
      "id": "DAT.SMP.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Margin-of-error intuition (informal): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Margin-of-error intuition (informal).",
      "content": "Accuracy — 5 items: attach rough bands to estimates (2), judge whether two results truly differ (2), say what sample change narrows the band (1); pass ≥4/5 · Explanation — \"Why does a 2-point lead with ±4 wobble name no leader — and roughly what sample size change would cut the ±4 to ±2?\" · Transfer — interpret a 55% ± 8 school-poll result on changing the mascot for the student paper.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.SMP.09",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Judging claims from studies and headlines",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 8,
      "id": "DAT.SMP.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Judging claims from studies and headlines: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Judging claims from studies and headlines.",
      "content": "Meet every claim with the checklist: Who was sampled, and how? How many? What exactly was asked or measured? Association or causation? Where's the margin? Most viral claims die at the first question or the fourth.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.SMP.09",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Judging claims from studies and headlines",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 8,
      "id": "DAT.SMP.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Judging claims from studies and headlines: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Judging claims from studies and headlines.",
      "content": "Headline: \"Study: gamers get 23% worse grades.\" Checklist: sample = 40 volunteers from one gaming forum (convenience, tiny); \"gamer\" self-defined; observational, so no causation; no margin reported. Verdict: an association among 40 volunteers — not a law about gamers, and the headline's 23% deserves no decimal of trust.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.SMP.09",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Judging claims from studies and headlines",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 8,
      "id": "DAT.SMP.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Judging claims from studies and headlines: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Judging claims from studies and headlines into personal, civic/data, and career contexts.",
      "content": "Personal — Before resharing \"study says music while studying lowers scores,\" run the checklist against your own playlist habit. · Civic/Data — Two headlines, one energy-drink study: \"Energy drinks wreck teen hearts\" vs \"Study finds small heart-rate rise in 60 volunteers\" — audit the sample, size, and effect, then write the headline the data earns. · Career — A newsroom fact-checker vets a press release claiming \"our supplement doubles memory\" before it prints.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.SMP.09",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Judging claims from studies and headlines",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 8,
      "id": "DAT.SMP.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Judging claims from studies and headlines: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Judging claims from studies and headlines.",
      "content": "Accuracy — 5 items: run the checklist on short study summaries and accept/reject with reason (5); pass ≥4/5 · Explanation — given one flawed study report, identify the *two most damaging* flaws and rank them — which one alone sinks the claim? · Transfer — judge a viral infographic claiming \"left-handed people are more creative (n = 15).\"",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "DAT.SMP.10",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Designing a fair mini-study",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 9,
      "id": "DAT.SMP.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Designing a fair mini-study: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Designing a fair mini-study.",
      "content": "Run the whole craft honestly: a precise question, a defined population, a random sampling plan, neutral wording, a justified size, then center-and-spread results reported with their wobble and their limits. Design is where fairness is won or lost.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "DAT.SMP.10",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Designing a fair mini-study",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 9,
      "id": "DAT.SMP.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Designing a fair mini-study: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Designing a fair mini-study.",
      "content": "Question: how long is the lunch line, really? Population: all 60 lunch periods this month. Plan: pick 12 periods by random digits, time the line each. Results: median 9 min, Q1 7, Q3 11 → IQR 4. Report: \"Typically about 9 minutes (middle half 7–11), from 12 randomly chosen periods; rainy-day periods were underrepresented.\"",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "DAT.SMP.10",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Designing a fair mini-study",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 9,
      "id": "DAT.SMP.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Designing a fair mini-study: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Designing a fair mini-study into personal, civic/data, and career contexts.",
      "content": "Personal — Design a fair test of which homework spot — desk, kitchen, floor — actually helps you focus. · Civic/Data — Design the parents'-association study of whether the new crosswalk timer shortens waits, caveats included. · Career — A junior market researcher designs the café's customer study end-to-end and presents the limits as plainly as the findings.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "DAT.SMP.10",
      "clusterId": "DAT.SMP",
      "domain": "DAT",
      "domainName": "Data & Statistics",
      "skillTitle": "Designing a fair mini-study",
      "clusterTitle": "Sampling & Inference (intro) (DAT.SMP)",
      "band": "7–8",
      "hardLevel": 9,
      "id": "DAT.SMP.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Designing a fair mini-study: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Designing a fair mini-study.",
      "content": "Accuracy — 1 design task: fix four planted flaws in a draft study (frame, wording, size, summary statistic); pass 4/4 fixes · Explanation — \"Your random sample happened to miss every Friday — is the study broken? Defend it or repair it.\" · Transfer — design a fair one-week study of a claim from your own home (e.g., \"the dog begs more at dinner\"), with sampling plan and caveat.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.ANG.01",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Points, lines, segments, rays",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 0,
      "id": "GEO.ANG.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Points, lines, segments, rays: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Points, lines, segments, rays.",
      "content": "Geometry's vocabulary distinguishes what ends from what doesn't: a segment has two endpoints, a ray has one and continues forever, a line has none.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.ANG.01",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Points, lines, segments, rays",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 0,
      "id": "GEO.ANG.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Points, lines, segments, rays: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Points, lines, segments, rays.",
      "content": "Mark points A and B. Segment AB stops at both points. Ray AB starts at A, passes through B, and keeps going — one arrowhead. Line AB extends both ways — two arrowheads. A triangle's side is a segment, never a line: it must stop at the vertices.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.ANG.01",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Points, lines, segments, rays",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 0,
      "id": "GEO.ANG.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Points, lines, segments, rays: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Points, lines, segments, rays into personal, civic/data, and career contexts.",
      "content": "Personal — a flashlight beam is a ray: it starts at the bulb and runs on until something blocks it · Civic/Data — on the town map, streets are drawn as segments between intersections; name three by their endpoints · Career — a laser-level installer treats the beam as a ray and the wall joint as a segment when aligning shelves.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.ANG.01",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Points, lines, segments, rays",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 0,
      "id": "GEO.ANG.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Points, lines, segments, rays: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Points, lines, segments, rays.",
      "content": "Accuracy — 8 identify-and-notate items; ≥7/8 · Explanation — \"Why can't a polygon's side be a ray?\" · Transfer — label the points, segments, and implied rays in a constellation chart.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.ANG.02",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Parallel and perpendicular lines",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 1,
      "id": "GEO.ANG.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Parallel and perpendicular lines: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Parallel and perpendicular lines.",
      "content": "Parallel lines run in the same direction and keep a constant gap forever; perpendicular lines meet at a square corner — both are claims about direction, not appearance.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.ANG.02",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Parallel and perpendicular lines",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 1,
      "id": "GEO.ANG.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Parallel and perpendicular lines: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Parallel and perpendicular lines.",
      "content": "Check the letter H: measure the gap between the two uprights at the top (1.5 cm) and bottom (1.5 cm) — constant gap → parallel. The crossbar meets each upright at a square corner (test with an index-card corner) → perpendicular to both.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.ANG.02",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Parallel and perpendicular lines",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 1,
      "id": "GEO.ANG.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Parallel and perpendicular lines: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Parallel and perpendicular lines into personal, civic/data, and career contexts.",
      "content": "Personal — notebook paper: ruled lines are parallel; the red margin is perpendicular to all of them · Civic/Data — on the city map, which avenues run parallel and which cross-streets meet them perpendicularly? · Career — a tiler snaps two perpendicular chalk lines first; every later tile is laid off those.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.ANG.02",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Parallel and perpendicular lines",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 1,
      "id": "GEO.ANG.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Parallel and perpendicular lines: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Parallel and perpendicular lines.",
      "content": "Accuracy — 8 classify-and-draw items; ≥7/8 · Explanation — find the flaw: \"These two segments never touch on the page, so they're parallel\" (extend them — parallel is about direction, not touching) · Transfer — mark 3 parallel pairs and 2 perpendicular pairs on a basketball-court diagram.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.ANG.03",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Angle as turn; right angles",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 2,
      "id": "GEO.ANG.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Angle as turn; right angles: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Angle as turn; right angles.",
      "content": "An angle measures an amount of turn between two arms; a right angle is a quarter turn (90°), and the measure has nothing to do with how long the arms are.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.ANG.03",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Angle as turn; right angles",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 2,
      "id": "GEO.ANG.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Angle as turn; right angles: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Angle as turn; right angles.",
      "content": "A clock's minute hand sweeping from 12 to 3 makes a quarter turn → a right angle, 90°. From 12 to 6 is a half turn → 180°, the same as two right angles. Test any corner with a folded paper square: fits exactly = right angle.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.ANG.03",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Angle as turn; right angles",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 2,
      "id": "GEO.ANG.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Angle as turn; right angles: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Angle as turn; right angles into personal, civic/data, and career contexts.",
      "content": "Personal — open a door a quarter turn, then a half turn: feel the difference an angle measures · Civic/Data — count the right angles at the crosswalk grid near school and explain why planners like square intersections (clear sight lines) · Career — a robotics hobbyist programs a floor robot in quarter turns: `turn 90` four times brings it home.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.ANG.03",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Angle as turn; right angles",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 2,
      "id": "GEO.ANG.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Angle as turn; right angles: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Angle as turn; right angles.",
      "content": "Accuracy — 8 items comparing turns and corners to a right angle; ≥7/8 · Explanation — \"A tiny corner on a stamp and a huge corner on a poster are both 90° — why doesn't size matter?\" (angle measures turn, not arm length) · Transfer — choreograph a dance move as a sequence of quarter and half turns.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.ANG.04",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Measuring angles with a protractor",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 3,
      "id": "GEO.ANG.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Measuring angles with a protractor: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Measuring angles with a protractor.",
      "content": "A protractor measures turn from a zero line: center on the vertex, zero along one arm, read the scale that starts at zero for that arm.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.ANG.04",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Measuring angles with a protractor",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 3,
      "id": "GEO.ANG.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Measuring angles with a protractor: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Measuring angles with a protractor.",
      "content": "Measure an acute angle: center the protractor on the vertex, lay the zero line on one arm, follow the scale that begins at 0 up to the other arm — it crosses at 50, so 50°. Sanity check against the other scale's 130: the angle is clearly smaller than a right angle, so 50° is the honest reading.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.ANG.04",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Measuring angles with a protractor",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 3,
      "id": "GEO.ANG.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Measuring angles with a protractor: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Measuring angles with a protractor into personal, civic/data, and career contexts.",
      "content": "Personal — measure how far your laptop screen opens and find your favorite angle · Civic/Data — measure intersection angles on the town map: which junctions are sharper than 70° (the blind-corner complaints)? · Career — a picture framer measures the corner angle, then sets the miter saw to cut each piece at half of it (90° corner → two 45° cuts).",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.ANG.04",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Measuring angles with a protractor",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 3,
      "id": "GEO.ANG.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Measuring angles with a protractor: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Measuring angles with a protractor.",
      "content": "Accuracy — 8 measure-and-draw items within ±2°; ≥7/8 · Explanation — \"A learner reads 130° for an angle that is obviously acute — which mistake did the protractor invite?\" · Transfer — measure the launch angles of three ramps in a skatepark photo.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.ANG.05",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Acute, obtuse, straight, reflex",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 4,
      "id": "GEO.ANG.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Acute, obtuse, straight, reflex: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Acute, obtuse, straight, reflex.",
      "content": "Angle names are ranges: acute < 90°, right = 90°, obtuse between 90° and 180°, straight = 180°, reflex > 180° — and every pair of arms defines both a small angle and its reflex partner.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.ANG.05",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Acute, obtuse, straight, reflex",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 4,
      "id": "GEO.ANG.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Acute, obtuse, straight, reflex: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Acute, obtuse, straight, reflex.",
      "content": "Classify: 75° → acute; 145° → obtuse; 180° → straight. The reflex partner of 115° is the rest of the full turn: 360° − 115° = 245°. Same two arms, two honest measures — name which one you mean.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.ANG.05",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Acute, obtuse, straight, reflex",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 4,
      "id": "GEO.ANG.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Acute, obtuse, straight, reflex: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Acute, obtuse, straight, reflex into personal, civic/data, and career contexts.",
      "content": "Personal — open scissors slowly and call out each class as the blades pass through it · Civic/Data — in the school-survey pie chart, any slice with an obtuse angle holds more than a quarter of the votes (90° = 25%) — find them at a glance · Career — a skate-ramp designer labels launch angles acute, vert walls right, and over-vert reflex measured from the flat.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.ANG.05",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Acute, obtuse, straight, reflex",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 4,
      "id": "GEO.ANG.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Acute, obtuse, straight, reflex: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Acute, obtuse, straight, reflex.",
      "content": "Accuracy — 8 classify items mixing pictures and measures; ≥7/8 · Explanation — \"What does calling an angle 245° tell you that 115° doesn't?\" (which way around the turn went) · Transfer — classify the clock-hand angles at 3:00, 6:00, and 8:00 (90°, 180°, and 120° with reflex partner 240°).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.ANG.06",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Angles on a line and at a point",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 5,
      "id": "GEO.ANG.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Angles on a line and at a point: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Angles on a line and at a point.",
      "content": "Angles meeting on a straight line total 180°; angles meeting around a point total 360° — two budgets that let you find missing angles without measuring.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.ANG.06",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Angles on a line and at a point",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 5,
      "id": "GEO.ANG.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Angles on a line and at a point: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Angles on a line and at a point.",
      "content": "On a line: 115° + x = 180° → x = 65°. Around a point: three angles 150°, 90°, and x share the full turn: 150 + 90 + x = 360 → x = 120°. Budget in, spend, the remainder is the answer.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.ANG.06",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Angles on a line and at a point",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 5,
      "id": "GEO.ANG.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Angles on a line and at a point: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Angles on a line and at a point into personal, civic/data, and career contexts.",
      "content": "Personal — pizza night: the slice angles around the center must total 360°, so the last slice's angle is forced before you cut it · Civic/Data — audit the class-budget pie chart: the printed slices total 348° — someone's category lost 12° · Career — a wheel builder spaces 5 spokes evenly: 360° ÷ 5 = 72° between spokes, no protractor debates.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.ANG.06",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Angles on a line and at a point",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 5,
      "id": "GEO.ANG.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Angles on a line and at a point: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Angles on a line and at a point.",
      "content": "Accuracy — 8 find-the-missing-angle items split between line and point; ≥7/8 · Explanation — \"Why does a pie chart that totals 348° mean the data display lies, even if every number under it is correct?\" · Transfer — three molding pieces meet along a straight skirting board: 90° + 35° + x = 180° → x = 55°.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.ANG.07",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Vertical angles",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 6,
      "id": "GEO.ANG.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Vertical angles: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Vertical angles.",
      "content": "When two lines cross, opposite (vertical) angles are equal — because each pairs with the same neighbor to make 180°.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.ANG.07",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Vertical angles",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 6,
      "id": "GEO.ANG.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Vertical angles: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Vertical angles.",
      "content": "Two streets cross at 40°. Its neighbor along the line: 180° − 40° = 140°. The angle directly opposite the 40°: pair it with the same 140° neighbor → 180° − 140° = 40°. Measure one angle, know all four: 40°, 140°, 40°, 140°.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.ANG.07",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Vertical angles",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 6,
      "id": "GEO.ANG.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Vertical angles: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Vertical angles into personal, civic/data, and career contexts.",
      "content": "Personal — open scissors to 30° at the blade end; the handle end opens to exactly 30° too — same crossing point · Civic/Data — on the city map, measure one angle where two avenues cross and label the other three for the report · Career — a surveyor sights one angle of an intersection and infers the opposite angle without standing in traffic.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.ANG.07",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Vertical angles",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 6,
      "id": "GEO.ANG.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Vertical angles: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Vertical angles.",
      "content": "Accuracy — 8 find-the-angle items on X-diagrams; ≥7/8 · Explanation — \"Prove vertical angles must be equal, using the straight-line fact twice\" · Transfer — a railroad-crossing X sign shows one angle of 70°; give the other three (110°, 70°, 110°).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.ANG.08",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Angles in triangles (sum = 180°)",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 7,
      "id": "GEO.ANG.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Angles in triangles (sum = 180°): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Angles in triangles (sum = 180°).",
      "content": "A triangle's three angles always total 180°, so two known angles force the third — and the fact rules out impossible triangles.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.ANG.08",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Angles in triangles (sum = 180°)",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 7,
      "id": "GEO.ANG.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Angles in triangles (sum = 180°): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Angles in triangles (sum = 180°).",
      "content": "Angles 63° and 48°: third angle = 180 − (63 + 48) = 180 − 111 = 69°. Evidence: tear the three corners off a paper triangle and line them up along a ruler edge — they form a straight line. Isosceles shortcut: apex 40° → base angles (180 − 40) ÷ 2 = 70° each.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.ANG.08",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Angles in triangles (sum = 180°)",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 7,
      "id": "GEO.ANG.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Angles in triangles (sum = 180°): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Angles in triangles (sum = 180°) into personal, civic/data, and career contexts.",
      "content": "Personal — measure two corners of your tent's side panel and predict the third before measuring it · Civic/Data — an access-ramp diagram shows 90° at the ground and 5° of slope: the top angle must be 85°, no site visit needed · Career — a truss fabricator computes each third angle from the drawing instead of measuring it in the jig.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.ANG.08",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Angles in triangles (sum = 180°)",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 7,
      "id": "GEO.ANG.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Angles in triangles (sum = 180°): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Angles in triangles (sum = 180°).",
      "content": "Accuracy — 8 find-the-third-angle items including isosceles cases; ≥7/8 · Explanation — \"Why can no triangle contain two obtuse angles?\" (two angles over 90° overspend the 180° budget before the third exists) · Transfer — a right-triangle sail has 28° at the deck; find the masthead angle (62°).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.ANG.09",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Angles in quadrilaterals and polygons",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 8,
      "id": "GEO.ANG.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Angles in quadrilaterals and polygons: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Angles in quadrilaterals and polygons.",
      "content": "Splitting any polygon into triangles from one vertex gives its angle total: (n − 2) × 180° — quadrilaterals get 360°, and regular polygons share the total equally.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.ANG.09",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Angles in quadrilaterals and polygons",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 8,
      "id": "GEO.ANG.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Angles in quadrilaterals and polygons: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Angles in quadrilaterals and polygons.",
      "content": "Quadrilateral = 2 triangles → 2 × 180° = 360°. Missing corner: 360 − (90 + 90 + 118) = 360 − 298 = 62°. Hexagon: (6 − 2) × 180 = 720°; if regular, each corner is 720 ÷ 6 = 120°.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.ANG.09",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Angles in quadrilaterals and polygons",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 8,
      "id": "GEO.ANG.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Angles in quadrilaterals and polygons: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Angles in quadrilaterals and polygons into personal, civic/data, and career contexts.",
      "content": "Personal — check a wonky picture frame: the four corner angles must still total 360°, so measure three and accuse the fourth · Civic/Data — the park gazebo is a regular octagon: each post angle is (8 − 2) × 180 ÷ 8 = 135° for the restoration spec · Career — a landscaper cuts border boards for a hexagonal planter to meet at 120°, so each board end is mitered at 60°.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.ANG.09",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Angles in quadrilaterals and polygons",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 8,
      "id": "GEO.ANG.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Angles in quadrilaterals and polygons: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Angles in quadrilaterals and polygons.",
      "content": "Accuracy — 8 items mixing missing angles and regular-polygon corners; ≥7/8 · Explanation — \"Where does the (n − 2) come from?\" (the triangle fan from one vertex — ties back to GEO.SHP.09) · Transfer — find the corner angle of a regular decagon (8 × 180 ÷ 10 = 144°).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.ANG.10",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Parallel lines cut by a transversal",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 9,
      "id": "GEO.ANG.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Parallel lines cut by a transversal: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Parallel lines cut by a transversal.",
      "content": "A line crossing two parallel lines creates equal corresponding angles and equal alternate angles, while co-interior angles total 180° — one measurement determines all eight angles.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.ANG.10",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Parallel lines cut by a transversal",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 9,
      "id": "GEO.ANG.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Parallel lines cut by a transversal: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Parallel lines cut by a transversal.",
      "content": "A transversal crosses parallel lines making 110°. Corresponding angle (same position at the next line): 110°. Alternate interior angle (Z-pattern): 110°. Co-interior angle (C-pattern): 180 − 110 = 70°. With vertical angles, all eight angles are now 110° or 70°.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.ANG.10",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Parallel lines cut by a transversal",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 9,
      "id": "GEO.ANG.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Parallel lines cut by a transversal: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Parallel lines cut by a transversal into personal, civic/data, and career contexts.",
      "content": "Personal — venetian blinds: the pull cord crosses every parallel slat at the same angle — measure once, claim them all · Civic/Data — parking-lot plan: angled stalls crossing the parallel curb lines must all use one stripe angle, or the lot loses spaces — check the drawing · Career — a road engineer verifies an on-ramp meets both edges of a straight highway at equal corresponding angles before paving.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.ANG.10",
      "clusterId": "GEO.ANG",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Parallel lines cut by a transversal",
      "clusterTitle": "Angles & Lines (GEO.ANG)",
      "band": "3–7",
      "hardLevel": 9,
      "id": "GEO.ANG.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Parallel lines cut by a transversal: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Parallel lines cut by a transversal.",
      "content": "Accuracy — 8 find-the-angle items where each answer names the rule used; ≥7/8 · Explanation — find the flaw: \"Alternate angles are equal here\" claimed for two lines that visibly converge — why do all three rules need parallel lines? · Transfer — greenhouse roof: glazing bars are parallel and the ridge beam crosses them at 75°; find both angle families (75° and 105°).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.CRD.01",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Grids and ordered pairs (first quadrant)",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 0,
      "id": "GEO.CRD.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Grids and ordered pairs (first quadrant): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Grids and ordered pairs (first quadrant).",
      "content": "An ordered pair is an address: across first (x), then up (y) — and the order is a shared convention, so (3,5) and (5,3) are different places.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.CRD.01",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Grids and ordered pairs (first quadrant)",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 0,
      "id": "GEO.CRD.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Grids and ordered pairs (first quadrant): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Grids and ordered pairs (first quadrant).",
      "content": "Plot (3,5): start at the origin (0,0), move 3 right, then 5 up. Now plot (5,3): 5 right, 3 up — a visibly different point. The pair only works as an address because everyone reads it in the same order.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.CRD.01",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Grids and ordered pairs (first quadrant)",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 0,
      "id": "GEO.CRD.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Grids and ordered pairs (first quadrant): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Grids and ordered pairs (first quadrant) into personal, civic/data, and career contexts.",
      "content": "Personal — play Battleship calling shots as ordered pairs and log the hits · Civic/Data — map the school-garden beds on a grid so volunteer day runs without \"the bed near the tree\" confusion · Career — a stage manager tapes actors' marks at grid positions from the director's chart.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.CRD.01",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Grids and ordered pairs (first quadrant)",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 0,
      "id": "GEO.CRD.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Grids and ordered pairs (first quadrant): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Grids and ordered pairs (first quadrant).",
      "content": "Accuracy — 8 plot-and-read items including the (3,5)-vs-(5,3) trap; ≥7/8 · Explanation — \"Why do we need to agree on across-before-up at all?\" (without the convention, one address names two points) · Transfer — dictate coordinates that let a partner draw your four-point zigzag exactly.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.CRD.02",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Plotting and reading points",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 1,
      "id": "GEO.CRD.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Plotting and reading points: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Plotting and reading points.",
      "content": "Reading is plotting in reverse — and points on the axes are the honest edge cases: (4,0) sits on the x-axis, (0,6) on the y-axis, and only (0,0) is the origin.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.CRD.02",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Plotting and reading points",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 1,
      "id": "GEO.CRD.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Plotting and reading points: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Plotting and reading points.",
      "content": "A point sits 4 right and 0 up: its address is (4,0) — on the x-axis, not at the origin. Read another at 0 across, 6 up: (0,6). Zero is a coordinate doing real work, not an empty slot.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.CRD.02",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Plotting and reading points",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 1,
      "id": "GEO.CRD.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Plotting and reading points: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Plotting and reading points into personal, civic/data, and career contexts.",
      "content": "Personal — copy a 10-point pixel-art design by reading off each point's coordinates for a friend to redraw · Civic/Data — plot the playground equipment's positions for the park-renewal survey map · Career — an archaeologist logs every find by trench grid coordinates so the dig can be reconstructed later.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.CRD.02",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Plotting and reading points",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 1,
      "id": "GEO.CRD.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Plotting and reading points: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Plotting and reading points.",
      "content": "Accuracy — 8 mixed plot/read items including axis points; ≥7/8 · Explanation — \"A classmate labels the point at 4 on the x-axis (0,0) 'because it's on the line.' What did they confuse?\" · Transfer — join plotted points to reveal a constellation, then report the brightest star's coordinates.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.CRD.03",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "All four quadrants",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 2,
      "id": "GEO.CRD.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "All four quadrants: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of All four quadrants.",
      "content": "Extending both axes below and left of zero gives four quadrants, and a point's sign pattern (+,+), (−,+), (−,−), (+,−) is its quadrant address.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.CRD.03",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "All four quadrants",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 2,
      "id": "GEO.CRD.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "All four quadrants: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for All four quadrants.",
      "content": "Plot (−3, 2): 3 left, 2 up → Quadrant II. Now (−3, −2): Quadrant III; (3, −2): Quadrant IV. Compare the three: the signs alone tell you the quadrant before you plot a thing.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.CRD.03",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "All four quadrants",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 2,
      "id": "GEO.CRD.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "All four quadrants: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer All four quadrants into personal, civic/data, and career contexts.",
      "content": "Personal — map your neighborhood with home as origin: the bakery two blocks west and three north lives at (−2, 3) · Civic/Data — the snow-plow dispatch grid is centered on the depot; report which quadrant each blocked street falls in · Career — a drone pilot reads waypoints west or south of the launch pad as negative coordinates and flags sign errors before takeoff.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.CRD.03",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "All four quadrants",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 2,
      "id": "GEO.CRD.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "All four quadrants: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond All four quadrants.",
      "content": "Accuracy — 8 plot/identify-quadrant items across all quadrants; ≥7/8 · Explanation — \"Why does (−4, 0) belong to no quadrant?\" · Transfer — classify four weather-station coordinates by quadrant for a wind map.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.CRD.04",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Horizontal and vertical distance between points",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 3,
      "id": "GEO.CRD.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Horizontal and vertical distance between points: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Horizontal and vertical distance between points.",
      "content": "When two points share a coordinate, the distance between them is a subtraction along the other coordinate — and crossing zero means the two distances add.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.CRD.04",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Horizontal and vertical distance between points",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 3,
      "id": "GEO.CRD.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Horizontal and vertical distance between points: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Horizontal and vertical distance between points.",
      "content": "(2,3) to (7,3): same y, so distance = 7 − 2 = 5 units. (−4,2) to (3,2): distance = 3 − (−4) = 7 units — sensible, because the trip is 4 units to reach zero plus 3 more.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.CRD.04",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Horizontal and vertical distance between points",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 3,
      "id": "GEO.CRD.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Horizontal and vertical distance between points: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Horizontal and vertical distance between points into personal, civic/data, and career contexts.",
      "content": "Personal — count grid blocks between your house and a friend's on the town map, no walking required · Civic/Data — check the spacing between bus stops plotted along the same avenue: are any gaps over 6 blocks? · Career — a circuit-board designer verifies two drill holes on the same row sit exactly 7 mm apart before sending the file to fabrication.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.CRD.04",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Horizontal and vertical distance between points",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 3,
      "id": "GEO.CRD.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Horizontal and vertical distance between points: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Horizontal and vertical distance between points.",
      "content": "Accuracy — 8 distance items, half crossing an axis; ≥7/8 · Explanation — find the flaw: for (−4,2) to (3,2), a learner answers 1 \"because 4 − 3 = 1\" — what does the sign change actually do to the trip? · Transfer — total the fencing along a garden plot's edges from its corner coordinates.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.CRD.05",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Shapes on the coordinate plane",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 4,
      "id": "GEO.CRD.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Shapes on the coordinate plane: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Shapes on the coordinate plane.",
      "content": "Coordinates turn shape claims into arithmetic: side lengths come from coordinate differences, so you can verify a rectangle without trusting the picture.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.CRD.05",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Shapes on the coordinate plane",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 4,
      "id": "GEO.CRD.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Shapes on the coordinate plane: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Shapes on the coordinate plane.",
      "content": "A(1,1), B(6,1), C(6,4), D(1,4). AB = 6 − 1 = 5; BC = 4 − 1 = 3; opposite sides match and meet at right angles (horizontal meets vertical) → a 5 × 3 rectangle with perimeter 2 × (5 + 3) = 16 units.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.CRD.05",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Shapes on the coordinate plane",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 4,
      "id": "GEO.CRD.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Shapes on the coordinate plane: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Shapes on the coordinate plane into personal, civic/data, and career contexts.",
      "content": "Personal — plot a kite design's vertices from coordinates before cutting any fabric · Civic/Data — the city survey lists a vacant lot's corner coordinates: confirm the lot really is rectangular before the playground proposal goes in · Career — a game-level designer specifies a platform by corner coordinates and checks its size from the numbers alone.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.CRD.05",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Shapes on the coordinate plane",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 4,
      "id": "GEO.CRD.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Shapes on the coordinate plane: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Shapes on the coordinate plane.",
      "content": "Accuracy — 8 items: plot vertices, name the shape, find a missing corner — given A(1,1), B(6,1), C(6,4), the fourth corner is D(1,4); ≥7/8 · Explanation — \"How can you find the fourth rectangle corner without drawing?\" (it shares x with one neighbor, y with the other) · Transfer — classify the figure (2,2), (5,2), (7,5), (4,5) using side comparisons (parallelogram).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.CRD.06",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Midpoints informally",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 5,
      "id": "GEO.CRD.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Midpoints informally: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Midpoints informally.",
      "content": "Halfway between two points means halfway across and halfway up separately — average each coordinate.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.CRD.06",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Midpoints informally",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 5,
      "id": "GEO.CRD.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Midpoints informally: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Midpoints informally.",
      "content": "Midpoint of (2,3) and (8,7): halfway across = (2 + 8) ÷ 2 = 5; halfway up = (3 + 7) ÷ 2 = 5 → (5,5). Check by counting: 3 right and 2 up from (2,3), the same 3 and 2 short of (8,7).",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.CRD.06",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Midpoints informally",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 5,
      "id": "GEO.CRD.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Midpoints informally: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Midpoints informally into personal, civic/data, and career contexts.",
      "content": "Personal — pick the fair meeting spot exactly halfway between two friends' houses on the town grid · Civic/Data — place the water station at the midpoint of the charity-walk's long straight segment · Career — a lighting tech hangs the lamp midway between two anchor points read off the venue plan.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.CRD.06",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Midpoints informally",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 5,
      "id": "GEO.CRD.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Midpoints informally: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Midpoints informally.",
      "content": "Accuracy — 8 midpoint items including half-unit answers, e.g. (1,2) and (4,6) → (2.5, 4); ≥7/8 · Explanation — \"Why does averaging each coordinate separately land you halfway overall?\" · Transfer — find the center of a rectangular field from opposite corner coordinates.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.CRD.07",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Patterns and rules as coordinate pairs",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 6,
      "id": "GEO.CRD.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Patterns and rules as coordinate pairs: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Patterns and rules as coordinate pairs.",
      "content": "A consistent rule generates coordinate pairs, and plotting them makes the rule visible — steady rules march in a straight line.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.CRD.07",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Patterns and rules as coordinate pairs",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 6,
      "id": "GEO.CRD.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Patterns and rules as coordinate pairs: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Patterns and rules as coordinate pairs.",
      "content": "Arcade rides cost 2 tokens each: (rides, tokens) = (1,2), (2,4), (3,6). Plot them: each point sits one right and two up from the last — a straight march. Rule: tokens = 2 × rides; predict (5,10) without plotting.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.CRD.07",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Patterns and rules as coordinate pairs",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 6,
      "id": "GEO.CRD.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Patterns and rules as coordinate pairs: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Patterns and rules as coordinate pairs into personal, civic/data, and career contexts.",
      "content": "Personal — plot your savings plan, (weeks, dollars), at $3 per week and read off when you hit $24 · Civic/Data — plot the recycling drive's weekly totals: do the points march steadily, or did week 4 break the pattern? · Career — a food-truck owner plots (burgers sold, buns needed) so prep quantities come off the graph, not guesswork.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.CRD.07",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Patterns and rules as coordinate pairs",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 6,
      "id": "GEO.CRD.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Patterns and rules as coordinate pairs: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Patterns and rules as coordinate pairs.",
      "content": "Accuracy — 8 items: extend the table, plot, state the rule; ≥7/8 · Explanation — \"How does the graph show 'add 2 each time' without any numbers — what does equal stepping look like?\" · Transfer — from plotted points (1,5), (2,7), (3,9), give the rule and predict x = 6 (y = 15).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.CRD.08",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Reflections across axes (coordinates)",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 7,
      "id": "GEO.CRD.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Reflections across axes (coordinates): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Reflections across axes (coordinates).",
      "content": "Reflecting across the x-axis flips only the y-coordinate's sign; across the y-axis, only the x — the mirror coordinate is the one that survives.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.CRD.08",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Reflections across axes (coordinates)",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 7,
      "id": "GEO.CRD.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Reflections across axes (coordinates): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Reflections across axes (coordinates).",
      "content": "Reflect (3,2) across the x-axis → (3,−2): still 3 across, now 2 *below* — both points sit 2 from the mirror line. Across the y-axis instead → (−3,2). One sign flip per mirror, never both.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.CRD.08",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Reflections across axes (coordinates)",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 7,
      "id": "GEO.CRD.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Reflections across axes (coordinates): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Reflections across axes (coordinates) into personal, civic/data, and career contexts.",
      "content": "Personal — finish a symmetric pixel-art face by reflecting the plotted half's coordinates · Civic/Data — the school-fair banner must be symmetric: generate the right half of the design from the left half's coordinate list · Career — a graphic designer mirrors a logo across the artboard's centerline by negating x-values, no redrawing.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.CRD.08",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Reflections across axes (coordinates)",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 7,
      "id": "GEO.CRD.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Reflections across axes (coordinates): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Reflections across axes (coordinates).",
      "content": "Accuracy — 8 reflection items over both axes; ≥7/8 · Explanation — \"Why does reflecting across the x-axis change only the y-coordinate?\" (across-ness is untouched; only above/below flips) · Transfer — mirror a five-point sailboat design across the y-axis and list the image coordinates.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.CRD.09",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Translations as coordinate shifts",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 8,
      "id": "GEO.CRD.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Translations as coordinate shifts: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Translations as coordinate shifts.",
      "content": "A translation is one rule applied to every point — add the same amounts to every x and every y — so the shape arrives intact, just elsewhere.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.CRD.09",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Translations as coordinate shifts",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 8,
      "id": "GEO.CRD.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Translations as coordinate shifts: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Translations as coordinate shifts.",
      "content": "Shift rule (x + 4, y − 2): the triangle (1,5), (2,1), (4,4) becomes (5,3), (6,−1), (8,2). Check one side: from (1,5)→(2,1) is \"1 right, 4 down\" before the shift, and (5,3)→(6,−1) is still \"1 right, 4 down\" after — size and shape untouched.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.CRD.09",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Translations as coordinate shifts",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 8,
      "id": "GEO.CRD.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Translations as coordinate shifts: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Translations as coordinate shifts into personal, civic/data, and career contexts.",
      "content": "Personal — slide your whole pentomino piece 4 right and 2 down to the free corner of the puzzle board · Civic/Data — the planning map moves the farmers-market stall grid two blocks east: publish each stall's new coordinates · Career — an animator nudges a sprite by the same offset each frame so motion reads as smooth gliding.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.CRD.09",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Translations as coordinate shifts",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 8,
      "id": "GEO.CRD.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Translations as coordinate shifts: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Translations as coordinate shifts.",
      "content": "Accuracy — 8 items: apply a rule, and recover the rule from a before/after pair; ≥7/8 · Explanation — find the flaw: one vertex moved (+4,−2) but another (+4,+2) — why is the result no longer a translation? · Transfer — write the shift rule that maps a stencil from one wall position to the other.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.CRD.10",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Scaling coordinates (dilation intro)",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 9,
      "id": "GEO.CRD.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Scaling coordinates (dilation intro): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Scaling coordinates (dilation intro).",
      "content": "Multiplying every coordinate by the same factor scales a figure from the origin: lengths stretch by the factor, but proportions and angles survive.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.CRD.10",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Scaling coordinates (dilation intro)",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 9,
      "id": "GEO.CRD.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Scaling coordinates (dilation intro): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Scaling coordinates (dilation intro).",
      "content": "Double from the origin: (3,1)→(6,2) and (1,2)→(2,4). The segment between them stretches to twice its length, but (6,2) is still \"3 across for every 1 up\" from the origin — same direction, same shape, bigger size. Multiplying by ½ shrinks it back.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.CRD.10",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Scaling coordinates (dilation intro)",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 9,
      "id": "GEO.CRD.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Scaling coordinates (dilation intro): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Scaling coordinates (dilation intro) into personal, civic/data, and career contexts.",
      "content": "Personal — blow up your 8-bit sprite ×2 for a poster without squashing it · Civic/Data — enlarge the community-garden plot plan ×3 for the noticeboard and list the new corner coordinates · Career — a web designer scales an icon set ×1.5 and confirms every anchor point kept its proportions.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.CRD.10",
      "clusterId": "GEO.CRD",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Scaling coordinates (dilation intro)",
      "clusterTitle": "Coordinate Plane (GEO.CRD)",
      "band": "4–7",
      "hardLevel": 9,
      "id": "GEO.CRD.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Scaling coordinates (dilation intro): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Scaling coordinates (dilation intro).",
      "content": "Accuracy — 8 scaling items with factors 2, 3, and ½; ≥7/8 · Explanation — find the flaw: a learner \"scales by 1.5\" by *adding* 1.5 to each coordinate — why does scaling have to multiply? · Transfer — scale a four-point logo by 1.5, e.g. (2,4) → (3,6), and verify one proportion.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.PYT.01",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Right triangles — hypotenuse and legs",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 0,
      "id": "GEO.PYT.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Right triangles — hypotenuse and legs: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Right triangles — hypotenuse and legs.",
      "content": "In a right triangle the hypotenuse is the side opposite the right angle — always the longest side — and the two legs are the sides that form the right angle. Identify by the right-angle mark, never by which side looks slanted.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.PYT.01",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Right triangles — hypotenuse and legs",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 0,
      "id": "GEO.PYT.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Right triangles — hypotenuse and legs: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Right triangles — hypotenuse and legs.",
      "content": "A triangle has angles 90°, 35°, 55°. The hypotenuse faces the 90° corner; the other two sides are legs. Rotate the triangle so the hypotenuse sits flat at the bottom — it is still the hypotenuse: the role follows the right angle, not the orientation.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.PYT.01",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Right triangles — hypotenuse and legs",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 0,
      "id": "GEO.PYT.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Right triangles — hypotenuse and legs: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Right triangles — hypotenuse and legs into personal, civic/data, and career contexts.",
      "content": "Personal — a ladder against a wall: wall and floor are the legs, the ladder itself is the hypotenuse · Civic/Data — a wheelchair-ramp diagram labels rise and run (legs) and ramp surface (hypotenuse) for the accessibility review · Career — a framing carpenter names rise, run, and rafter before any cutting starts; the rafter is the hypotenuse.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.PYT.01",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Right triangles — hypotenuse and legs",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 0,
      "id": "GEO.PYT.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Right triangles — hypotenuse and legs: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Right triangles — hypotenuse and legs.",
      "content": "Accuracy — 8 labeling items on rotated and tilted triangles; ≥7/8 · Explanation — \"Why must the hypotenuse be the longest side?\" (the longest side faces the largest angle) · Transfer — label legs and hypotenuse on a zip-line sketch (tower, ground, cable).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.PYT.02",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Squares on sides — the area picture",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 1,
      "id": "GEO.PYT.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Squares on sides — the area picture: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Squares on sides — the area picture.",
      "content": "The Pythagorean relationship is a fact about areas: the squares built on the two legs together hold exactly as much area as the square built on the hypotenuse.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.PYT.02",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Squares on sides — the area picture",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 1,
      "id": "GEO.PYT.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Squares on sides — the area picture: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Squares on sides — the area picture.",
      "content": "On grid paper, draw a 3-4-5 right triangle and the square on each side: the leg squares hold 9 and 16 unit tiles; the hypotenuse square holds 25. Count them: 9 + 16 = 25. Cut out the two small squares and rearrange their tiles to fill the big one — area is the claim.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.PYT.02",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Squares on sides — the area picture",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 1,
      "id": "GEO.PYT.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Squares on sides — the area picture: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Squares on sides — the area picture into personal, civic/data, and career contexts.",
      "content": "Personal — do the cut-and-rearrange with sticky notes on your desk: two small squares of paper exactly tile the big one · Civic/Data — the science museum's Pythagoras water exhibit (two chambers filling the third): write the explanation card for visitors · Career — a tile setter lays the 9 + 16 = 25 demonstration into a STEM-school lobby floor and must get the counts right.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.PYT.02",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Squares on sides — the area picture",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 1,
      "id": "GEO.PYT.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Squares on sides — the area picture: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Squares on sides — the area picture.",
      "content": "Accuracy — 8 area-picture items (count and compare square areas); ≥7/8 · Explanation — \"Where does 9 + 16 = 25 live in the drawing — what exactly is being added?\" · Transfer — verify the area relation on a 6-8-10 grid drawing (36 + 64 = 100).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.PYT.03",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "The Pythagorean theorem",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 2,
      "id": "GEO.PYT.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "The Pythagorean theorem: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of The Pythagorean theorem.",
      "content": "For a right triangle with legs a, b and hypotenuse c: a² + b² = c² — for right triangles only, which is exactly what makes it a test-worthy claim.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.PYT.03",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "The Pythagorean theorem",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 2,
      "id": "GEO.PYT.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "The Pythagorean theorem: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for The Pythagorean theorem.",
      "content": "Check 5-12-13: 5² + 12² = 25 + 144 = 169 = 13² ✓ — a right triangle's numbers behave. Now a non-right triangle with sides 4, 5, 8: 16 + 25 = 41 ≠ 64 — the relation fails, because the equation belongs to the right angle.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.PYT.03",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "The Pythagorean theorem",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 2,
      "id": "GEO.PYT.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "The Pythagorean theorem: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer The Pythagorean theorem into personal, civic/data, and career contexts.",
      "content": "Personal — measure your doorway: 0.9 m wide, 2.0 m tall, so the diagonal should be √(0.81 + 4.00) = √4.81 ≈ 2.19 m — tape-measure it and compare · Civic/Data — fact-check a viral post claiming a 10-ft ladder with its foot 6 ft from the wall reaches 8 ft: test 6² + 8² = 100 = 10² and report what the post got right · Career — a machinist confirms a corner gusset's three dimensions satisfy a² + b² = c² before signing off the batch.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.PYT.03",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "The Pythagorean theorem",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 2,
      "id": "GEO.PYT.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "The Pythagorean theorem: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond The Pythagorean theorem.",
      "content": "Accuracy — 8 items choosing and checking the correct equation from labeled triangles (catching a² + c² = b² mislabels); ≥7/8 · Explanation — \"Why does the relation fail on non-right triangles — what is special about 90°?\" (the leg squares only rearrange onto the hypotenuse square when the legs are perpendicular) · Transfer — write the equation for a right triangle labeled p, q, r with the right angle between p and q (p² + q² = r²).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.PYT.04",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Finding the hypotenuse",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 3,
      "id": "GEO.PYT.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Finding the hypotenuse: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Finding the hypotenuse.",
      "content": "Square the legs, add, take the square root: c = √(a² + b²) — and when the root isn't whole, trap it between integers before reaching for a calculator.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.PYT.04",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Finding the hypotenuse",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 3,
      "id": "GEO.PYT.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Finding the hypotenuse: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Finding the hypotenuse.",
      "content": "Legs 6 and 8: c² = 36 + 64 = 100, so c = √100 = 10. Legs 5 and 7: c² = 25 + 49 = 74; since 64 < 74 < 81, c is between 8 and 9 — c = √74 ≈ 8.6.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.PYT.04",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Finding the hypotenuse",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 3,
      "id": "GEO.PYT.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Finding the hypotenuse: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Finding the hypotenuse into personal, civic/data, and career contexts.",
      "content": "Personal — your screen is 48 in wide and 27 in tall: diagonal = √(2304 + 729) = √3033 ≈ 55.1 — so that's why it's sold as a \"55-inch\" TV · Civic/Data — the parks department prices a diagonal footpath across a 30 m × 40 m green: 50 m of paving versus 70 m around the edges · Career — an electrician runs conduit corner-to-corner across a 1.2 m × 0.9 m panel: √(1.44 + 0.81) = √2.25 = 1.5 m of conduit.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.PYT.04",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Finding the hypotenuse",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 3,
      "id": "GEO.PYT.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Finding the hypotenuse: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Finding the hypotenuse.",
      "content": "Accuracy — 8 find-c items, whole-number and approximation cases; ≥7/8 · Explanation — find the flaw: a learner reports c = 100 for legs 6 and 8 — why is 100 impossible before any algebra? (a side can't exceed 6 + 8; the square root was skipped) · Transfer — diagonal brace for a 90 cm × 120 cm gate (150 cm).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.PYT.05",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Finding a leg",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 4,
      "id": "GEO.PYT.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Finding a leg: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Finding a leg.",
      "content": "When the hypotenuse is known, the missing leg comes by subtraction: b² = c² − a² — the leg squares together make the hypotenuse square, so one leg's square is what remains.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.PYT.05",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Finding a leg",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 4,
      "id": "GEO.PYT.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Finding a leg: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Finding a leg.",
      "content": "Hypotenuse 13, one leg 5: b² = 13² − 5² = 169 − 25 = 144, so b = 12. Sense check: 12 < 13 — every leg must be shorter than the hypotenuse.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.PYT.05",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Finding a leg",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 4,
      "id": "GEO.PYT.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Finding a leg: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Finding a leg into personal, civic/data, and career contexts.",
      "content": "Personal — a 2.5 m ladder with its foot 1.5 m from the wall reaches √(6.25 − 2.25) = √4 = 2.0 m up — high enough for the gutter? · Civic/Data — a 25 m guy wire anchored 7 m from the mast's base attaches at √(625 − 49) = √576 = 24 m: check it against the permit drawing · Career — a roofer with a 5 m rafter spanning a 4 m run computes the rise: √(25 − 16) = 3 m.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.PYT.05",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Finding a leg",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 4,
      "id": "GEO.PYT.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Finding a leg: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Finding a leg.",
      "content": "Accuracy — 8 find-a-leg items interleaved with find-c distractors; ≥7/8 · Explanation — find the flaw: a learner *adds* 13² + 5² to find a leg — how does the equation itself show subtraction is required? · Transfer — a kite on a taut 30 m string flies directly above a point 18 m away: height = √(900 − 324) = √576 = 24 m.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.PYT.06",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Pythagorean triples",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 5,
      "id": "GEO.PYT.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Pythagorean triples: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Pythagorean triples.",
      "content": "Some whole-number side sets — 3-4-5, 5-12-13, 8-15-17, 7-24-25 — satisfy a² + b² = c² exactly, and any multiple of a triple is again a triple; recognizing them replaces computation with recall.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.PYT.06",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Pythagorean triples",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 5,
      "id": "GEO.PYT.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Pythagorean triples: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Pythagorean triples.",
      "content": "3-4-5 is a triple: 9 + 16 = 25. Scale by 3 → 9-12-15: 81 + 144 = 225 = 15² ✓. In general (3k)² + (4k)² = k²(9 + 16) = (5k)² — scaling preserves the relation, so 30-40-50 works without checking.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.PYT.06",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Pythagorean triples",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 5,
      "id": "GEO.PYT.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Pythagorean triples: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Pythagorean triples into personal, civic/data, and career contexts.",
      "content": "Personal — why \"3-4-5\" is the carpenter shorthand worth memorizing before your weekend deck project · Civic/Data — surveying crews stake property corners with 30-40-50 m tape measurements — same triple, field-sized · Career — an estimator spots 5-12-13 in a ramp spec and prices it without touching a calculator.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.PYT.06",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Pythagorean triples",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 5,
      "id": "GEO.PYT.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Pythagorean triples: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Pythagorean triples.",
      "content": "Accuracy — 8 items: verify, complete, and scale triples; ≥7/8 · Explanation — \"Why does multiplying a triple by k always give another triple?\" (factor k² out of both sides) · Transfer — is 9-12-16 a triple? (81 + 144 = 225 ≠ 256 — no; the true partner of 9-12 is 15.)",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.PYT.07",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "The converse — testing for right angles",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 6,
      "id": "GEO.PYT.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "The converse — testing for right angles: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of The converse — testing for right angles.",
      "content": "The logic runs backward too: if a triangle's sides satisfy a² + b² = c², the angle opposite c is right — which turns a tape measure into a right-angle detector.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.PYT.07",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "The converse — testing for right angles",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 6,
      "id": "GEO.PYT.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "The converse — testing for right angles: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for The converse — testing for right angles.",
      "content": "Sides 8-15-17: 64 + 225 = 289 = 17² → the angle opposite the 17 is exactly 90°. Sides 6-7-9: 36 + 49 = 85 ≠ 81 = 9²; since 85 > 81, the angle opposite the 9 is slightly *acute* — close to square, but not square.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.PYT.07",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "The converse — testing for right angles",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 6,
      "id": "GEO.PYT.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "The converse — testing for right angles: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer The converse — testing for right angles into personal, civic/data, and career contexts.",
      "content": "Personal — check a bookshelf corner: measure 30 cm along one edge, 40 cm along the other; the diagonal reads 50 cm only if the corner is square · Civic/Data — community-garden volunteers lay a right-angled bed corner with a 12-knot rope (3-4-5) — the ancient trick, explained for the newsletter · Career — a foundation crew measures both diagonals of the formwork: with the sides verified, equal diagonals of the right length certify square corners.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.PYT.07",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "The converse — testing for right angles",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 6,
      "id": "GEO.PYT.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "The converse — testing for right angles: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond The converse — testing for right angles.",
      "content": "Accuracy — 8 right-or-not judgments with the comparison shown; ≥7/8 · Explanation — \"The theorem says right → relation. Why does relation → right need its own justification rather than coming free?\" · Transfer — a 24 × 18 cm frame's diagonal measures 30.5 cm; expected √(576 + 324) = 30 cm → the frame is out of square.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.PYT.08",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Distance between coordinate points",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 7,
      "id": "GEO.PYT.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Distance between coordinate points: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Distance between coordinate points.",
      "content": "Any slanted segment on the coordinate plane is the hypotenuse of a right triangle whose legs are the horizontal and vertical differences — so distance = √(Δx² + Δy²).",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.PYT.08",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Distance between coordinate points",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 7,
      "id": "GEO.PYT.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Distance between coordinate points: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Distance between coordinate points.",
      "content": "A(3,4), B(9,12): Δx = 9 − 3 = 6, Δy = 12 − 4 = 8. Distance = √(36 + 64) = √100 = 10. The grid hands you the legs; Pythagoras pays out the diagonal.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.PYT.08",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Distance between coordinate points",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 7,
      "id": "GEO.PYT.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Distance between coordinate points: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Distance between coordinate points into personal, civic/data, and career contexts.",
      "content": "Personal — straight-line distance from your house (2,1) to the pool (7,13) on the town grid: √(25 + 144) = 13 blocks as the crow flies · Civic/Data — the emergency planner compares straight-line distances from two fire stations to the school to set primary response · Career — a game programmer writes the distance check that triggers when an enemy comes within 10 units of the player.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.PYT.08",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Distance between coordinate points",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 7,
      "id": "GEO.PYT.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Distance between coordinate points: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Distance between coordinate points.",
      "content": "Accuracy — 8 distance items across all four quadrants; ≥7/8 · Explanation — find the flaw: a learner computes (9−3) + (12−4) = 14 — when *is* leg-sum the honest travel distance (city blocks), and why is the straight line shorter? · Transfer — drone at (−4,5) to landing pad at (4,−1): √(64 + 36) = 10 units.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.PYT.09",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Pythagoras in 3-D (space diagonals)",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 8,
      "id": "GEO.PYT.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Pythagoras in 3-D (space diagonals): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Pythagoras in 3-D (space diagonals).",
      "content": "The diagonal through a box takes two applications: floor diagonal from the base edges, then space diagonal from the floor diagonal and the height — collapsing to d = √(a² + b² + c²).",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.PYT.09",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Pythagoras in 3-D (space diagonals)",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 8,
      "id": "GEO.PYT.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Pythagoras in 3-D (space diagonals): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Pythagoras in 3-D (space diagonals).",
      "content": "Box 3 × 4 × 12: floor diagonal = √(9 + 16) = 5; space diagonal = √(5² + 12²) = √169 = 13. One step: √(9 + 16 + 144) = √169 = 13 — same answer, because the second triangle's legs are the floor diagonal and the height.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.PYT.09",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Pythagoras in 3-D (space diagonals)",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 8,
      "id": "GEO.PYT.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Pythagoras in 3-D (space diagonals): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Pythagoras in 3-D (space diagonals) into personal, civic/data, and career contexts.",
      "content": "Personal — will a 70-cm drumstick fit in a 60 × 30 × 20 cm gift box? √(3600 + 900 + 400) = √4900 = 70 — exactly, with zero slack · Civic/Data — the procurement office checks whether 12 m flagpoles ship in a 12.0 × 2.3 × 2.4 m container: diagonal ≈ √155.05 ≈ 12.45 m → yes, diagonally · Career — a warehouse planner computes the longest rod storable in a 2 × 2 × 1 m locker: √(4 + 4 + 1) = 3 m.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.PYT.09",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Pythagoras in 3-D (space diagonals)",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 8,
      "id": "GEO.PYT.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Pythagoras in 3-D (space diagonals): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Pythagoras in 3-D (space diagonals).",
      "content": "Accuracy — 8 space-diagonal items; ≥7/8 · Explanation — \"Describe where the two right triangles live inside the box, and why the floor diagonal switches roles from hypotenuse to leg\" · Transfer — longest skewer fitting a 6 × 8 × 24 cooler: √(36 + 64 + 576) = √676 = 26.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.PYT.10",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Applied right-triangle problems",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 9,
      "id": "GEO.PYT.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Applied right-triangle problems: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Applied right-triangle problems.",
      "content": "Applied problems hide the triangle: the work is extracting rise, run, and slant from words and diagrams, labeling the hypotenuse honestly, then computing — and interpreting the answer back in context.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.PYT.10",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Applied right-triangle problems",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 9,
      "id": "GEO.PYT.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Applied right-triangle problems: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Applied right-triangle problems.",
      "content": "An access ramp rises 1 m over a 12 m horizontal run. Ramp surface = √(1 + 144) = √145 ≈ 12.04 m. Interpretation: for gentle slopes the surface barely exceeds the run — ordering 12 m of decking plus a trim allowance is right, ordering 13 m is waste.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.PYT.10",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Applied right-triangle problems",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 9,
      "id": "GEO.PYT.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Applied right-triangle problems: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Applied right-triangle problems into personal, civic/data, and career contexts.",
      "content": "Personal — patio lights across a 6 m × 8 m yard corner-to-corner: 10 m of cord, plus slack · Civic/Data — audit the school ramp: rise 0.75 m, run 9 m → slope 0.75/9 = 1:12 exactly, surface √(0.5625 + 81) ≈ 9.03 m → compliant, report both numbers · Career — a carpenter computes rafter length for rise 1.5 m and run 3.6 m: √(2.25 + 12.96) = √15.21 = 3.9 m per rafter.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.PYT.10",
      "clusterId": "GEO.PYT",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Applied right-triangle problems",
      "clusterTitle": "Right Triangles & Pythagoras (GEO.PYT)",
      "band": "8",
      "hardLevel": 9,
      "id": "GEO.PYT.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Applied right-triangle problems: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Applied right-triangle problems.",
      "content": "Accuracy — 8 mixed applied items requiring setup from words or diagrams; ≥7/8 · Explanation — spot the flaw in a worked ladder solution that used the ladder's length as a leg (the slant is always the hypotenuse — what answer-sign exposes the mislabel?) · Transfer — a sapling's support wire: stake 0.9 m from the trunk, tied 1.2 m up → wire = √(0.81 + 1.44) = 1.5 m.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SCL.01",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Reading scale on maps and plans",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 0,
      "id": "GEO.SCL.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Reading scale on maps and plans: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Reading scale on maps and plans.",
      "content": "A scale like 1:50,000 is a promise — every 1 cm on the map stands for 50,000 cm of world — so map measurements convert to real distances by one multiplication.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SCL.01",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Reading scale on maps and plans",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 0,
      "id": "GEO.SCL.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Reading scale on maps and plans: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Reading scale on maps and plans.",
      "content": "Map scale 1:50,000. So 1 cm represents 50,000 cm = 500 m. A trail measuring 4 cm on the map is 4 × 500 = 2,000 m = 2 km on the ground.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SCL.01",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Reading scale on maps and plans",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 0,
      "id": "GEO.SCL.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Reading scale on maps and plans: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Reading scale on maps and plans into personal, civic/data, and career contexts.",
      "content": "Personal — measure the trail on the park map and decide if the hike fits before dinner · Civic/Data — on the flood-risk map, how many real meters sit between your street and the marked flood line? · Career — an estate agent reads room dimensions straight off the 1:100 floor plan for the listing.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SCL.01",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Reading scale on maps and plans",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 0,
      "id": "GEO.SCL.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Reading scale on maps and plans: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Reading scale on maps and plans.",
      "content": "Accuracy — 8 read-and-convert items across ratio scales and bar scales; ≥7/8 · Explanation — \"Why does a bar scale survive photocopier enlargement while the printed '1:50,000' becomes a lie?\" (the bar enlarges with the map; the caption doesn't) · Transfer — measure a runway's length from an airport chart with an unfamiliar scale.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SCL.02",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Scale factor between drawing and reality",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 1,
      "id": "GEO.SCL.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Scale factor between drawing and reality: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Scale factor between drawing and reality.",
      "content": "The scale is the ratio drawing : reality in the *same units* — its order tells you whether the drawing is a reduction (1:n) or an enlargement (n:1).",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SCL.02",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Scale factor between drawing and reality",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 1,
      "id": "GEO.SCL.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Scale factor between drawing and reality: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Scale factor between drawing and reality.",
      "content": "A drawing of a 2 m couch is 5 cm long: convert first — 2 m = 200 cm — then 5:200 = 1:40, a reduction. A drawing of a 2 cm beetle is 5 cm long: 5:2 = 2.5:1, an enlargement. Same numbers, opposite stories; units and order decide.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SCL.02",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Scale factor between drawing and reality",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 1,
      "id": "GEO.SCL.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Scale factor between drawing and reality: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Scale factor between drawing and reality into personal, civic/data, and career contexts.",
      "content": "Personal — work out your model train's scale from one measured car and the full-size spec sheet · Civic/Data — audit the park noticeboard map: the lake is 6 cm on the board and 300 m in the survey — is the printed \"1:5,000\" honest? · Career — a field-guide illustrator labels a mite drawing \"×40\" so readers know which way the scaling ran.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SCL.02",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Scale factor between drawing and reality",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 1,
      "id": "GEO.SCL.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Scale factor between drawing and reality: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Scale factor between drawing and reality.",
      "content": "Accuracy — 8 find-the-scale items mixing reductions and enlargements; ≥7/8 · Explanation — find the flaw: \"5 cm drawing of a 200 cm couch, so the scale is 40:1\" — what does the order of a scale ratio promise? · Transfer — a 12 cm souvenir Eiffel Tower against the real 324 m: scale = 12 : 32,400 = 1:2,700.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SCL.03",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Producing a scale drawing",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 2,
      "id": "GEO.SCL.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Producing a scale drawing: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Producing a scale drawing.",
      "content": "To produce a scale drawing, divide every real length by the same factor — one inconsistent length and the drawing tells lies that look true.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SCL.03",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Producing a scale drawing",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 2,
      "id": "GEO.SCL.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Producing a scale drawing: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Producing a scale drawing.",
      "content": "Bedroom 6 m × 4 m at 1:50. Convert and divide: 600 ÷ 50 = 12 cm and 400 ÷ 50 = 8 cm → draw 12 × 8 cm. The 0.9 m door becomes 90 ÷ 50 = 1.8 cm of wall gap. Every feature, same 50.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SCL.03",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Producing a scale drawing",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 2,
      "id": "GEO.SCL.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Producing a scale drawing: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Producing a scale drawing into personal, civic/data, and career contexts.",
      "content": "Personal — scale-draw your room and test three furniture layouts on paper before shoving the real bed · Civic/Data — draw the school garden to scale for the grant application's site plan · Career — a kitchen fitter drafts the cabinet wall at 1:20 for client sign-off before ordering.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SCL.03",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Producing a scale drawing",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 2,
      "id": "GEO.SCL.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Producing a scale drawing: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Producing a scale drawing.",
      "content": "Accuracy — produce 2 drawings, checked on 4 dimensions each within tolerance; ≥7/8 measures pass · Explanation — \"On a 1:50 plan someone draws the door at 1:25. The plan still *looks* fine — what lie does it now tell?\" (a double-width door; the room seems to fit more than it does) · Transfer — draw a bee at 10:1 from given body measurements.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SCL.04",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Converting between scales",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 3,
      "id": "GEO.SCL.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Converting between scales: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Converting between scales.",
      "content": "To re-scale a drawing, route through reality: drawing → real length → new drawing. Chasing a shortcut factor without that anchor is where signs of size go wrong.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SCL.04",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Converting between scales",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 3,
      "id": "GEO.SCL.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Converting between scales: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Converting between scales.",
      "content": "A wall is 8 cm on a 1:25 plan → real length 8 × 25 = 200 cm. On a 1:40 plan it becomes 200 ÷ 40 = 5 cm. (Shortcut, once trusted: × 25/40 = × 0.625.)",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SCL.04",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Converting between scales",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 3,
      "id": "GEO.SCL.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Converting between scales: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Converting between scales into personal, civic/data, and career contexts.",
      "content": "Personal — convert your 1:100 house sketch to 1:50 so it fills the poster for the school project · Civic/Data — the planning office republishes the 1:10,000 cycle map as a 1:25,000 pocket edition — every printed length shrinks to 0.4 of itself · Career — an architect reissues a 1:100 plan as a 1:50 detail sheet; every dimension on paper doubles, nothing real changes.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SCL.04",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Converting between scales",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 3,
      "id": "GEO.SCL.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Converting between scales: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Converting between scales.",
      "content": "Accuracy — 8 re-scaling items both directions; ≥7/8 · Explanation — find the flaw: going 1:25 → 1:40, a learner multiplies 8 cm by 40/25 to get 12.8 cm — why must a bigger scale denominator give a *smaller* drawing? · Transfer — convert a ship-model spec between the 1:350 and 1:700 kit scales (lengths halve).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SCL.05",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Area in scale drawings (factor²)",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 4,
      "id": "GEO.SCL.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Area in scale drawings (factor²): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Area in scale drawings (factor²).",
      "content": "Lengths convert by the scale factor, but areas convert by its square — a 1:100 plan compresses each direction by 100, so each cm² stands for 10,000 cm² of world.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SCL.05",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Area in scale drawings (factor²)",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 4,
      "id": "GEO.SCL.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Area in scale drawings (factor²): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Area in scale drawings (factor²).",
      "content": "On a 1:100 plan, the lounge measures 3 cm × 4 cm = 12 cm². Real room: 3 m × 4 m = 12 m². Tidy — because at 1:100, 1 cm ↔ 1 m, so 1 cm² ↔ 1 m². At 1:50 instead, 1 cm² ↔ 50² = 2,500 cm² = 0.25 m², and the same 12 cm² means only 3 m².",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SCL.05",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Area in scale drawings (factor²)",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 4,
      "id": "GEO.SCL.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Area in scale drawings (factor²): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Area in scale drawings (factor²) into personal, civic/data, and career contexts.",
      "content": "Personal — price artificial turf for the balcony measured off the landlord's plan · Civic/Data — compute the park's lawn area from the 1:500 renovation plan to cost the reseeding line item · Career — a flooring estimator quotes a job from the architect's plan without visiting the site, squaring the scale first.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SCL.05",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Area in scale drawings (factor²)",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 4,
      "id": "GEO.SCL.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Area in scale drawings (factor²): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Area in scale drawings (factor²).",
      "content": "Accuracy — 8 area items, forward and reverse; ≥7/8 · Explanation — \"A length factor of 100 gives an area factor of 10,000 — where does the second 100 come from?\" · Transfer — roof area for solar panels from a 1:200 aerial plan.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SCL.06",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Constructing triangles from given parts",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 5,
      "id": "GEO.SCL.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Constructing triangles from given parts: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Constructing triangles from given parts.",
      "content": "Ruler-and-compass construction makes the congruence criteria physical: SSS, SAS, and ASA each build exactly one triangle — and impossible data refuses to construct at all.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SCL.06",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Constructing triangles from given parts",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 5,
      "id": "GEO.SCL.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Constructing triangles from given parts: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Constructing triangles from given parts.",
      "content": "Construct sides 6, 8, 9 cm: draw the 9 cm base; compass arc radius 6 from one end, radius 8 from the other; the arcs cross at the apex — join up. Now try 3, 4, 9: the arcs (3 + 4 = 7 < 9) never meet — no such triangle, and your compass just proved the triangle inequality.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SCL.06",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Constructing triangles from given parts",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 5,
      "id": "GEO.SCL.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Constructing triangles from given parts: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Constructing triangles from given parts into personal, civic/data, and career contexts.",
      "content": "Personal — build a kite frame from three specified strut lengths and discover the shape is already decided · Civic/Data — the community-theater set crew cuts a triangular gable to the fire-marshal drawing's three measurements — same data, same gable, any crew · Career — a boatbuilder lofts a sail corner from two sides and the included angle: SAS on a workshop floor.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SCL.06",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Constructing triangles from given parts",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 5,
      "id": "GEO.SCL.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Constructing triangles from given parts: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Constructing triangles from given parts.",
      "content": "Accuracy — construct 4 triangles (SSS, SAS, ASA, plus one impossible set to flag) within ±1 mm and ±2° · Explanation — \"Why do the 3-and-4 arcs never meet over a 9 cm base?\" · Transfer — construct a truss web triangle from a drawing's data, then judge whether the data given was even sufficient.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SCL.07",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Constructions with compass and straightedge (intro)",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 6,
      "id": "GEO.SCL.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Constructions with compass and straightedge (intro): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Constructions with compass and straightedge (intro).",
      "content": "Compass constructions manufacture exactness from a property, not a protractor: every point equidistant from a segment's two ends lies on its perpendicular bisector — so two arc-crossings define it.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SCL.07",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Constructions with compass and straightedge (intro)",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 6,
      "id": "GEO.SCL.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Constructions with compass and straightedge (intro): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Constructions with compass and straightedge (intro).",
      "content": "Bisect an 8 cm segment: set the compass to 5 cm (anything over half of 8), arc from both ends above and below, join the two crossings. That line cuts the segment at 4 cm and at 90° — because each crossing is equidistant from both ends, and only the perpendicular bisector collects all such points.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SCL.07",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Constructions with compass and straightedge (intro)",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 6,
      "id": "GEO.SCL.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Constructions with compass and straightedge (intro): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Constructions with compass and straightedge (intro) into personal, civic/data, and career contexts.",
      "content": "Personal — find the exact middle of a poster edge with string and pencil when no ruler is long enough · Civic/Data — site the new water fountain equidistant from both playgrounds: it must lie on the perpendicular bisector drawn on the park plan · Career — a stonemason marks a perpendicular cut with dividers on site, no protractor in the kit.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SCL.07",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Constructions with compass and straightedge (intro)",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 6,
      "id": "GEO.SCL.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Constructions with compass and straightedge (intro): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Constructions with compass and straightedge (intro).",
      "content": "Accuracy — 4 clean constructions with arcs shown: perpendicular bisector, angle bisector, perpendicular at a point, copy an angle · Explanation — \"Why does 'equidistant from both ends' force the line through the midpoint at a right angle?\" · Transfer — find the center of a circular tabletop using the perpendicular bisectors of two chords.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SCL.08",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Bearings and directions",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 7,
      "id": "GEO.SCL.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Bearings and directions: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Bearings and directions.",
      "content": "A bearing is a three-digit angle measured clockwise from north — 090° is due east — and because all north lines are parallel, return journeys differ by exactly 180°.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SCL.08",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Bearings and directions",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 7,
      "id": "GEO.SCL.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Bearings and directions: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Bearings and directions.",
      "content": "A hike leaves camp on bearing 070°. The return bearing is 070° + 180° = 250°. Plot a leg at scale: ship sails 5 km on 120° — draw the north line, rotate 120° clockwise, mark 5 cm at 1:100,000.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SCL.08",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Bearings and directions",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 7,
      "id": "GEO.SCL.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Bearings and directions: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Bearings and directions into personal, civic/data, and career contexts.",
      "content": "Personal — orienteering meet: leg 3 reads \"240° for 300 m\" — walk it with a baseplate compass · Civic/Data — the wind-farm consultation map lists each turbine's bearing and distance from the village hall; verify two of them · Career — a drone surveyor files the flight plan as bearings and leg distances, with back-bearings as the abort routes.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SCL.08",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Bearings and directions",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 7,
      "id": "GEO.SCL.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Bearings and directions: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Bearings and directions.",
      "content": "Accuracy — 8 items: measure, plot, and compute back-bearings; ≥7/8 · Explanation — \"Show with parallel north lines and alternate angles *why* the return bearing is the outbound plus 180° (or minus, past 360°)\" · Transfer — radio the rescue team the bearing and distance of a beached kayak from the lifeguard tower on the harbor chart.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SCL.09",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Floor plans and design briefs",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 8,
      "id": "GEO.SCL.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Floor plans and design briefs: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Floor plans and design briefs.",
      "content": "A floor plan is a scale drawing with constraints attached — furniture footprints, walkway clearances, code minimums — and the plan succeeds only if every constraint checks out at scale.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SCL.09",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Floor plans and design briefs",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 8,
      "id": "GEO.SCL.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Floor plans and design briefs: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Floor plans and design briefs.",
      "content": "Brief: a 3.5 m × 3.0 m room at 1:50 (draw 7 × 6 cm) must fit a 2.0 × 1.5 m bed (4 × 3 cm) and keep an 0.8 m walkway. Bed along the 3.5 m wall leaves 3.0 − 1.5 = 1.5 m clear → walkway passes; check it on the plan: 3 cm ≥ 1.6 cm ✓.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SCL.09",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Floor plans and design briefs",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 8,
      "id": "GEO.SCL.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Floor plans and design briefs: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Floor plans and design briefs into personal, civic/data, and career contexts.",
      "content": "Personal — replan your bedroom at 1:50 and test three layouts on paper before moving anything heavier than a pencil · Civic/Data — fire-escape audit: do the aisles drawn on the assembly-hall plan meet the 1.1 m minimum once converted from scale? · Career — an interior designer fits 8 tables plus service paths into a café plan and proves every clearance to the owner.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SCL.09",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Floor plans and design briefs",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 8,
      "id": "GEO.SCL.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Floor plans and design briefs: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Floor plans and design briefs.",
      "content": "Accuracy — one full mini-plan executed to scale plus 4 read-off clearance checks; all constraints verified · Explanation — find the flaw in a submitted plan: the sofa was drawn at the wrong scale, so the layout passes on paper and fails in the room — which check exposes it? · Transfer — re-house the same furniture list in a differently-proportioned room and re-verify the brief.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SCL.10",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Choosing an appropriate scale",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 9,
      "id": "GEO.SCL.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Choosing an appropriate scale: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Choosing an appropriate scale.",
      "content": "Scale choice is a trade-off: the drawing must fit the sheet, but detail must stay legible — choose the largest scale that fits, and remember that 1:200 is a *larger* scale than 1:1,000.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SCL.10",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Choosing an appropriate scale",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 9,
      "id": "GEO.SCL.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Choosing an appropriate scale: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Choosing an appropriate scale.",
      "content": "Site 90 m × 60 m, usable sheet 25 × 18 cm. At 1:200: 45 × 30 cm — too big. At 1:500: 18 × 12 cm — fits, and a 1 m feature draws at 2 mm, still legible. At 1:1,000: 9 × 6 cm — fits, but 1 m = 1 mm and detail dies. Choose 1:500.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SCL.10",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Choosing an appropriate scale",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 9,
      "id": "GEO.SCL.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Choosing an appropriate scale: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Choosing an appropriate scale into personal, civic/data, and career contexts.",
      "content": "Personal — pick a scale that fits your whole street on one notebook page without losing the houses · Civic/Data — one map, two jobs: ward boundaries need the small-scale overview, the junction redesign needs large-scale detail — argue why the council must print both · Career — a drafter picks from the standard scales (1:2, 1:5, 1:10, 1:20…) so the part fills the title block without clipping.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SCL.10",
      "clusterId": "GEO.SCL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Choosing an appropriate scale",
      "clusterTitle": "Scale Drawings & Constructions (GEO.SCL)",
      "band": "6–8",
      "hardLevel": 9,
      "id": "GEO.SCL.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Choosing an appropriate scale: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Choosing an appropriate scale.",
      "content": "Accuracy — 8 choose-and-justify items with fit/legibility computations; ≥7/8 · Explanation — \"Why is 1:200 called a larger scale than 1:1,000 when 1,000 is the bigger number?\" · Transfer — explain why no single scale can serve a playground model of the solar system — planet sizes and orbit gaps demand different scales, and the model must choose its lie.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SHP.01",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Naming and sorting 2-D shapes",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 0,
      "id": "GEO.SHP.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Naming and sorting 2-D shapes: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Naming and sorting 2-D shapes.",
      "content": "A shape's name comes from its defining attributes — how many straight sides and corners it has — not from its size, color, or which way it is turned.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SHP.01",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Naming and sorting 2-D shapes",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 0,
      "id": "GEO.SHP.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Naming and sorting 2-D shapes: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Naming and sorting 2-D shapes.",
      "content": "Sort six cards into \"triangle\" and \"not triangle.\" A tall skinny shape with 3 straight sides and 3 corners is a triangle; a triangle-looking card with one curved side is not, because all three sides must be straight. Count first, then decide.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SHP.01",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Naming and sorting 2-D shapes",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 0,
      "id": "GEO.SHP.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Naming and sorting 2-D shapes: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Naming and sorting 2-D shapes into personal, civic/data, and career contexts.",
      "content": "Personal — hunt the kitchen for circles, rectangles, and triangles (plate, door, sandwich half) · Civic/Data — tally the shapes on signs around school and chart which shape appears most · Career — a baker picks the cookie cutters that match the shapes on a customer's order card.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SHP.01",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Naming and sorting 2-D shapes",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 0,
      "id": "GEO.SHP.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Naming and sorting 2-D shapes: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Naming and sorting 2-D shapes.",
      "content": "Accuracy — 8 items: 5 name/sort, 3 rotated or skinny \"tricky\" cases; ≥7/8 · Explanation — \"Why is this tilted square still a square?\" (turning a shape changes nothing it is named for) · Transfer — sort a page of world flags by the shapes inside them.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SHP.02",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Sides, vertices, and shape attributes",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 1,
      "id": "GEO.SHP.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Sides, vertices, and shape attributes: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Sides, vertices, and shape attributes.",
      "content": "Polygons are described by countable attributes — sides and vertices — and for any polygon those two counts match.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SHP.02",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Sides, vertices, and shape attributes",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 1,
      "id": "GEO.SHP.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Sides, vertices, and shape attributes: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Sides, vertices, and shape attributes.",
      "content": "Trace a pentagon with one finger: 5 sides, and every place two sides meet makes a corner, so 5 vertices. Check the rule on a hexagon: 6 sides, 6 vertices — sides and vertices always come in equal numbers.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SHP.02",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Sides, vertices, and shape attributes",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 1,
      "id": "GEO.SHP.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Sides, vertices, and shape attributes: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Sides, vertices, and shape attributes into personal, civic/data, and career contexts.",
      "content": "Personal — count sides and corners of crackers and snack pieces before eating the evidence · Civic/Data — class chart: which playground signs have the most corners? · Career — a sign maker counts a sign's sides to order the right length of edge trim.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SHP.02",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Sides, vertices, and shape attributes",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 1,
      "id": "GEO.SHP.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Sides, vertices, and shape attributes: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Sides, vertices, and shape attributes.",
      "content": "Accuracy — 8 counting items including one concave polygon; ≥7/8 · Explanation — \"A friend reports 5 corners but 6 sides on one polygon — why must that be a miscount?\" · Transfer — describe a mystery shape to a partner using only attribute words until they can draw it.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SHP.03",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Triangles by sides and angles",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 2,
      "id": "GEO.SHP.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Triangles by sides and angles: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Triangles by sides and angles.",
      "content": "Triangles classify two independent ways — by sides (equilateral, isosceles, scalene) and by corners (acute, right, obtuse) — and every triangle earns one label of each kind.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SHP.03",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Triangles by sides and angles",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 2,
      "id": "GEO.SHP.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Triangles by sides and angles: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Triangles by sides and angles.",
      "content": "A triangle has sides 7 cm, 7 cm, 4 cm and every corner narrower than a square corner. Two equal sides → isosceles; all corners acute → acute. One triangle, two labels: an acute isosceles triangle.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SHP.03",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Triangles by sides and angles",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 2,
      "id": "GEO.SHP.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Triangles by sides and angles: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Triangles by sides and angles into personal, civic/data, and career contexts.",
      "content": "Personal — sort a pile of paper triangles from art class into a two-way grid (sides × corners) · Civic/Data — why yield signs are equilateral: every driver sees the same triangle from any lane · Career — a roof framer uses a square-corner tool to find which truss triangles are right triangles.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SHP.03",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Triangles by sides and angles",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 2,
      "id": "GEO.SHP.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Triangles by sides and angles: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Triangles by sides and angles.",
      "content": "Accuracy — 8 classification items including one impossible combination to flag (e.g., \"right equilateral\"); ≥7/8 · Explanation — \"Why can't a triangle have two square corners?\" (those two sides would never lean together to close the shape) · Transfer — classify the triangles in a bridge photograph.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SHP.04",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Quadrilateral family (square ⊂ rectangle ⊂ parallelogram…)",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 3,
      "id": "GEO.SHP.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Quadrilateral family (square ⊂ rectangle ⊂ parallelogram…): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Quadrilateral family (square ⊂ rectangle ⊂ parallelogram…).",
      "content": "Quadrilateral categories nest: if a shape passes a category's checklist, it belongs — so a square is also a rectangle, a rhombus, and a parallelogram.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SHP.04",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Quadrilateral family (square ⊂ rectangle ⊂ parallelogram…)",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 3,
      "id": "GEO.SHP.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Quadrilateral family (square ⊂ rectangle ⊂ parallelogram…): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Quadrilateral family (square ⊂ rectangle ⊂ parallelogram…).",
      "content": "Is every square a rectangle? Rectangle checklist: 4 sides, 4 square corners. A square has both → yes, a square is a rectangle with equal sides. Reverse it: a 3 × 5 rectangle has unequal neighboring sides → not a square. Nesting runs one way.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SHP.04",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Quadrilateral family (square ⊂ rectangle ⊂ parallelogram…)",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 3,
      "id": "GEO.SHP.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Quadrilateral family (square ⊂ rectangle ⊂ parallelogram…): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Quadrilateral family (square ⊂ rectangle ⊂ parallelogram…) into personal, civic/data, and career contexts.",
      "content": "Personal — sort the family photo frames: which are rectangles, which are squares, which are both · Civic/Data — survey crosswalk and road markings: tally which quadrilateral family members appear · Career — a quilter sorts fabric patches by family so patterns line up when sewn.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SHP.04",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Quadrilateral family (square ⊂ rectangle ⊂ parallelogram…)",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 3,
      "id": "GEO.SHP.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Quadrilateral family (square ⊂ rectangle ⊂ parallelogram…): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Quadrilateral family (square ⊂ rectangle ⊂ parallelogram…).",
      "content": "Accuracy — 8 true/false and sorting items; ≥7/8 · Explanation — find the flaw: \"A square is not a rectangle because rectangles are long\" · Transfer — place the kites at a kite festival into the quadrilateral family tree.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SHP.05",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Circles — center, radius, diameter",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 4,
      "id": "GEO.SHP.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Circles — center, radius, diameter: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Circles — center, radius, diameter.",
      "content": "A circle is all the points the same distance — the radius — from the center; a diameter runs through the center, so it equals two radii.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SHP.05",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Circles — center, radius, diameter",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 4,
      "id": "GEO.SHP.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Circles — center, radius, diameter: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Circles — center, radius, diameter.",
      "content": "A round clock face has radius 6 cm. Diameter = 2 × 6 = 12 cm. And every radius of that clock is 6 cm — same distance in every direction is what makes it a circle, and why wheels roll smoothly.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SHP.05",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Circles — center, radius, diameter",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 4,
      "id": "GEO.SHP.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Circles — center, radius, diameter: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Circles — center, radius, diameter into personal, civic/data, and career contexts.",
      "content": "Personal — measure a dinner plate's diameter by sliding the ruler until the measurement is biggest (that line passes the center) · Civic/Data — chalk a game circle on the playground using a rope as the radius · Career — a pizza shop sizes pizzas by diameter: a \"12-inch\" means 12 across the middle, 6 from center to crust.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SHP.05",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Circles — center, radius, diameter",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 4,
      "id": "GEO.SHP.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Circles — center, radius, diameter: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Circles — center, radius, diameter.",
      "content": "Accuracy — 8 items: find d from r, r from d, label center/radius/diameter on diagrams; ≥7/8 · Explanation — \"Why must a diameter pass through the center — why is any crossing line that misses the center shorter?\" · Transfer — a sprinkler waters everything within 4 m: how wide is the watered circle? (8 m)",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SHP.06",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Regular vs irregular polygons",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 5,
      "id": "GEO.SHP.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Regular vs irregular polygons: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Regular vs irregular polygons.",
      "content": "Regular means all sides equal AND all corners equal — equal sides alone is not enough.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SHP.06",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Regular vs irregular polygons",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 5,
      "id": "GEO.SHP.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Regular vs irregular polygons: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Regular vs irregular polygons.",
      "content": "A rhombus has four 5-cm sides, but two wide corners and two narrow ones. Equal sides, unequal corners → irregular. The square is the only regular quadrilateral, because it passes both tests.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SHP.06",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Regular vs irregular polygons",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 5,
      "id": "GEO.SHP.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Regular vs irregular polygons: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Regular vs irregular polygons into personal, civic/data, and career contexts.",
      "content": "Personal — sort pattern blocks: which pieces are regular polygons and which only look balanced · Civic/Data — stop signs are regular octagons so they read instantly from any angle; spot regularity in other public signs · Career — a soccer-ball designer stitches regular pentagons and hexagons so panels match at every seam.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SHP.06",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Regular vs irregular polygons",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 5,
      "id": "GEO.SHP.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Regular vs irregular polygons: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Regular vs irregular polygons.",
      "content": "Accuracy — 8 classify items including the equal-sides-but-not-regular trap; ≥7/8 · Explanation — find the flaw: \"All its sides are 5 cm, so it's regular\" · Transfer — judge which proposed paver shapes for a school path are regular, using both tests.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SHP.07",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Composing and decomposing shapes",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 6,
      "id": "GEO.SHP.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Composing and decomposing shapes: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Composing and decomposing shapes.",
      "content": "Shapes combine into new shapes and split back into parts — and the parts don't change when they are rearranged.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SHP.07",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Composing and decomposing shapes",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 6,
      "id": "GEO.SHP.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Composing and decomposing shapes: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Composing and decomposing shapes.",
      "content": "Two identical right triangles joined along their longest sides make a rectangle; the same two joined leg-to-leg make a bigger triangle. Same two parts, different wholes. With pattern blocks: two trapezoids make one hexagon; six small triangles make the same hexagon.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SHP.07",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Composing and decomposing shapes",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 6,
      "id": "GEO.SHP.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Composing and decomposing shapes: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Composing and decomposing shapes into personal, civic/data, and career contexts.",
      "content": "Personal — tangram challenge: build a cat from the 7 pieces, then rebuild a square from the same pieces · Civic/Data — design a community mosaic panel built only from triangle tiles · Career — a flooring installer plans cuts so leftover triangles pair back into rectangles, cutting waste.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SHP.07",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Composing and decomposing shapes",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 6,
      "id": "GEO.SHP.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Composing and decomposing shapes: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Composing and decomposing shapes.",
      "content": "Accuracy — 8 compose/decompose items; ≥7/8 · Explanation — \"Why does cutting a rectangle on its diagonal give two identical triangles?\" · Transfer — make the same hexagon three different ways with pattern blocks and record each recipe.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SHP.08",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Shape hierarchies and classification arguments",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 7,
      "id": "GEO.SHP.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Shape hierarchies and classification arguments: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Shape hierarchies and classification arguments.",
      "content": "Definitions create a hierarchy: any property true for a category is automatically true for every subcategory — arguments from checklists beat impressions from pictures.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SHP.08",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Shape hierarchies and classification arguments",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 7,
      "id": "GEO.SHP.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Shape hierarchies and classification arguments: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Shape hierarchies and classification arguments.",
      "content": "\"Every square is a rhombus, but not every rhombus is a square.\" Rhombus checklist: 4 equal sides — a square passes. Square checklist adds square corners — a leaning rhombus fails. So squares sit inside the rhombus circle on the diagram, not beside it.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SHP.08",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Shape hierarchies and classification arguments",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 7,
      "id": "GEO.SHP.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Shape hierarchies and classification arguments: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Shape hierarchies and classification arguments into personal, civic/data, and career contexts.",
      "content": "Personal — \"Guess my shape\" with yes/no attribute questions only · Civic/Data — class debate \"Is a square a rectangle?\" — vote first, then settle it by checklist and discuss why definitions, not majorities, decide · Career — a toy designer labels a shape-sorter so the square block legally fits the rectangle hole, and documents why.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SHP.08",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Shape hierarchies and classification arguments",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 7,
      "id": "GEO.SHP.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Shape hierarchies and classification arguments: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Shape hierarchies and classification arguments.",
      "content": "Accuracy — 8 always/sometimes/never items; ≥7/8 · Explanation — find the flaw: \"It's not a parallelogram, it's a rectangle\" (why is it both?) · Transfer — place six unfamiliar shapes on a blank hierarchy diagram and defend two placements aloud.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SHP.09",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Diagonals and interior structure",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 8,
      "id": "GEO.SHP.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Diagonals and interior structure: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Diagonals and interior structure.",
      "content": "Diagonals connect non-neighboring vertices; they reveal a shape's interior structure — how it triangulates, and why triangulated frames don't flex.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SHP.09",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Diagonals and interior structure",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 8,
      "id": "GEO.SHP.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Diagonals and interior structure: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Diagonals and interior structure.",
      "content": "Pentagon: each of 5 vertices connects to 2 non-neighbors → 5 × 2 = 10 diagonal-ends, but each diagonal got counted from both ends → 10 ÷ 2 = 5 diagonals. Bonus structure: diagonals from one vertex split the pentagon into 3 triangles.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SHP.09",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Diagonals and interior structure",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 8,
      "id": "GEO.SHP.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Diagonals and interior structure: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Diagonals and interior structure into personal, civic/data, and career contexts.",
      "content": "Personal — build a craft-stick square, feel it wobble, add one diagonal stick, feel it lock · Civic/Data — walk the playground and bridge near school tallying diagonal braces — where do builders hide triangles? · Career — a carpenter braces a sagging gate with a diagonal because triangles, unlike rectangles, cannot flex.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SHP.09",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Diagonals and interior structure",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 8,
      "id": "GEO.SHP.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Diagonals and interior structure: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Diagonals and interior structure.",
      "content": "Accuracy — 8 items counting/drawing diagonals from quadrilaterals up to hexagons; ≥7/8 · Explanation — \"Why does ÷2 appear in the diagonal count?\" · Transfer — from one vertex, how many triangles does a hexagon split into? (4)",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SHP.10",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Tessellations and why shapes fit",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 9,
      "id": "GEO.SHP.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Tessellations and why shapes fit: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Tessellations and why shapes fit.",
      "content": "A shape tessellates when copies cover a surface with no gaps or overlaps — which happens exactly when the corners meeting at each point total one full turn (360°).",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SHP.10",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Tessellations and why shapes fit",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 9,
      "id": "GEO.SHP.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Tessellations and why shapes fit: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Tessellations and why shapes fit.",
      "content": "Squares: four 90° corners meet at a point → 4 × 90° = 360°, no gap → tessellates. Regular pentagons: corners are 108°; 3 × 108° = 324° leaves a 36° gap and a fourth pentagon overlaps → no pentagon tessellation.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SHP.10",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Tessellations and why shapes fit",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 9,
      "id": "GEO.SHP.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Tessellations and why shapes fit: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Tessellations and why shapes fit into personal, civic/data, and career contexts.",
      "content": "Personal — tile a notebook cover edge-to-edge with one repeated sticker shape · Civic/Data — choose a paver shape for the school path that leaves no mud gaps, and justify the choice to the class · Career — a bathroom tiler explains to a client why hexagon tiles need no filler pieces but octagons need little squares (135° + 135° + 90° = 360°).",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SHP.10",
      "clusterId": "GEO.SHP",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Tessellations and why shapes fit",
      "clusterTitle": "2-D Shapes & Properties (GEO.SHP)",
      "band": "K–4",
      "hardLevel": 9,
      "id": "GEO.SHP.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Tessellations and why shapes fit: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Tessellations and why shapes fit.",
      "content": "Accuracy — 8 tessellates-or-not predictions with reasons; ≥7/8 · Explanation — find the flaw: \"Circles tessellate because they're perfectly smooth\" · Transfer — explain why floor shops sell the octagon-plus-square combo as one pattern.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SIM.01",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Congruent figures and corresponding parts",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 0,
      "id": "GEO.SIM.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Congruent figures and corresponding parts: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Congruent figures and corresponding parts.",
      "content": "Congruence statements carry a correspondence: the letter order pairs each vertex, side, and angle with its match, so measurements transfer across without re-measuring.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SIM.01",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Congruent figures and corresponding parts",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 0,
      "id": "GEO.SIM.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Congruent figures and corresponding parts: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Congruent figures and corresponding parts.",
      "content": "ΔABC ≅ ΔXYZ. The order is the pairing: A↔X, B↔Y, C↔Z. So side AB matches XY and angle C matches angle Z. Given AB = 7 cm and ∠C = 40°, read off XY = 7 cm and ∠Z = 40° — the statement did the measuring.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SIM.01",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Congruent figures and corresponding parts",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 0,
      "id": "GEO.SIM.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Congruent figures and corresponding parts: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Congruent figures and corresponding parts into personal, civic/data, and career contexts.",
      "content": "Personal — confirm two bracelet charms are true duplicates by matching parts in order, not by squinting · Civic/Data — the replacement streetlight bracket must be congruent to the failed one: the inspector matches every hole to the original's drawing · Career — a manufacturing QA tech reads corresponding dimensions off the master drawing instead of measuring the master part each time.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SIM.01",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Congruent figures and corresponding parts",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 0,
      "id": "GEO.SIM.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Congruent figures and corresponding parts: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Congruent figures and corresponding parts.",
      "content": "Accuracy — 8 items reading off corresponding sides/angles, including scrambled letter orders; ≥7/8 · Explanation — find the flaw: \"ΔABC ≅ ΔXYZ, so AB = YZ\" — what does the letter order actually promise? · Transfer — two congruent quadrilateral garden plots labeled differently: list all four matching side pairs.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SIM.02",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Triangle congruence criteria (informal)",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 1,
      "id": "GEO.SIM.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Triangle congruence criteria (informal): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Triangle congruence criteria (informal).",
      "content": "A few measurements can force a triangle completely: three sides (SSS), two sides and the included angle (SAS), or two angles and the included side (ASA) — but three angles (AAA) fix only the shape, never the size.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SIM.02",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Triangle congruence criteria (informal)",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 1,
      "id": "GEO.SIM.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Triangle congruence criteria (informal): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Triangle congruence criteria (informal).",
      "content": "Cut sticks of 5, 7, and 9 cm and try to build two *different* triangles from them: the joints close in only one configuration — triangles are rigid, so SSS guarantees congruence. Now try AAA: a 30°-60°-90° triangle exists at every size, so equal angles alone prove nothing about size.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SIM.02",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Triangle congruence criteria (informal)",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 1,
      "id": "GEO.SIM.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Triangle congruence criteria (informal): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Triangle congruence criteria (informal) into personal, civic/data, and career contexts.",
      "content": "Personal — why your bookshelf's diagonal brace works: fixed side lengths leave the triangle no way to flex · Civic/Data — bridge trusses are triangles because a hinged rectangle with the same four sides can still lean into a parallelogram — explain to the class with strips and fasteners · Career — a steel fabricator orders truss members cut to length, trusting SSS to fix every angle on site.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SIM.02",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Triangle congruence criteria (informal)",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 1,
      "id": "GEO.SIM.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Triangle congruence criteria (informal): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Triangle congruence criteria (informal).",
      "content": "Accuracy — 8 items: name the criterion that applies (SSS/SAS/ASA) or flag \"not enough\"; ≥7/8 · Explanation — \"Why does AAA fail to pin down size?\" · Transfer — given three facts about two ramp triangles, rule: congruent, or not necessarily — and say which fact you'd add.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SIM.03",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Similar figures — same shape, scaled",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 2,
      "id": "GEO.SIM.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Similar figures — same shape, scaled: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Similar figures — same shape, scaled.",
      "content": "Similar figures have equal corresponding angles and corresponding sides in one common ratio — scale every length by the same factor or the shape distorts.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SIM.03",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Similar figures — same shape, scaled",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 2,
      "id": "GEO.SIM.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Similar figures — same shape, scaled: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Similar figures — same shape, scaled.",
      "content": "A 4 × 6 photo enlarged to 8 × 12: ratios 8/4 = 2 and 12/6 = 2 agree, angles stay 90° → similar. Stretched to 8 × 10 instead: 8/4 = 2 but 10/6 ≈ 1.67 — sides scaled differently → distorted, not similar.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SIM.03",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Similar figures — same shape, scaled",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 2,
      "id": "GEO.SIM.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Similar figures — same shape, scaled: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Similar figures — same shape, scaled into personal, civic/data, and career contexts.",
      "content": "Personal — why \"fit to screen\" letterboxes a movie instead of stretching it: the player refuses to break similarity · Civic/Data — the council's brand rules: the town logo may be enlarged for banners only in proportion — check a submitted banner's measurements for compliance · Career — a web developer locks aspect ratio on product images so a 600 × 400 master ships as 300 × 200, never 300 × 250.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SIM.03",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Similar figures — same shape, scaled",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 2,
      "id": "GEO.SIM.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Similar figures — same shape, scaled: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Similar figures — same shape, scaled.",
      "content": "Accuracy — 8 similar-or-not judgments with ratio checks shown; ≥7/8 · Explanation — find the flaw: \"They're both rectangles, so they're similar\" · Transfer — which TV is similar to a 32 × 18 screen: 40 × 22.5 or 48 × 30? (40/32 = 1.25 and 22.5/18 = 1.25 → the first.)",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SIM.04",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Scale factor and corresponding sides",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 3,
      "id": "GEO.SIM.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Scale factor and corresponding sides: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Scale factor and corresponding sides.",
      "content": "The scale factor is the one ratio every pair of corresponding sides must share — and it has a direction: small→large uses one factor, large→small its reciprocal.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SIM.04",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Scale factor and corresponding sides",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 3,
      "id": "GEO.SIM.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Scale factor and corresponding sides: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Scale factor and corresponding sides.",
      "content": "Similar triangles with corresponding short sides 4 cm and 10 cm: scale factor small→large = 10/4 = 2.5; large→small = 4/10 = 0.4. Every other pair of corresponding sides must also fit 2.5 — one mismatch and the figures aren't similar after all.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SIM.04",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Scale factor and corresponding sides",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 3,
      "id": "GEO.SIM.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Scale factor and corresponding sides: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Scale factor and corresponding sides into personal, civic/data, and career contexts.",
      "content": "Personal — a 1:12 dollhouse chair next to the real chair: every dimension is one-twelfth, or the room looks wrong · Civic/Data — the sculptor's 40-cm maquette becomes a 6-m public statue: scale factor 600/40 = 15, applied to every feature in the proposal · Career — a product designer scales a logo to 250% and spot-checks two different dimensions to confirm both grew by 2.5.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SIM.04",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Scale factor and corresponding sides",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 3,
      "id": "GEO.SIM.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Scale factor and corresponding sides: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Scale factor and corresponding sides.",
      "content": "Accuracy — 8 find-the-factor and find-the-side items, both directions; ≥7/8 · Explanation — \"Why must the two direction factors (2.5 and 0.4) be reciprocals?\" · Transfer — a 1:24 model car is 18 cm long: how long is the real car? (18 × 24 = 432 cm = 4.32 m.)",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SIM.05",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Finding missing lengths with similarity",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 4,
      "id": "GEO.SIM.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Finding missing lengths with similarity: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Finding missing lengths with similarity.",
      "content": "Once two figures are known similar, one complete pair of corresponding sides yields the scale factor, and every missing length falls to multiplication — provided the pairing follows corresponding positions.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SIM.05",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Finding missing lengths with similarity",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 4,
      "id": "GEO.SIM.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Finding missing lengths with similarity: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Finding missing lengths with similarity.",
      "content": "Small triangle has sides 6 and 9; in the large similar triangle, the side corresponding to the 6 is 10. Factor = 10/6 = 5/3. Missing side = 9 × 5/3 = 15. Sense check: larger triangle, larger side — 15 > 9 ✓.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SIM.05",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Finding missing lengths with similarity",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 4,
      "id": "GEO.SIM.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Finding missing lengths with similarity: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Finding missing lengths with similarity into personal, civic/data, and career contexts.",
      "content": "Personal — scale a hoodie sewing pattern up one size: one known pair of measurements sets the factor for every other piece · Civic/Data — the pedestrian-bridge model's deck is 80 cm for a real 24 m span (×30); the model's cable is 95 cm, so order 28.5 m of cable · Career — a set builder scales a stage flat from the designer's similar sketch, computing each length from one measured pair.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SIM.05",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Finding missing lengths with similarity",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 4,
      "id": "GEO.SIM.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Finding missing lengths with similarity: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Finding missing lengths with similarity.",
      "content": "Accuracy — 8 missing-length items, including one where the unknown is on the *smaller* figure; ≥7/8 · Explanation — find the flaw: a learner pairs the 9 with the 10 \"because they're both middling\" — why must pairing follow corresponding position, not size feel? · Transfer — enlarge a triangular sail given two sides and one corresponding pair.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SIM.06",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Similar triangles in measurement (shadows, ramps)",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 5,
      "id": "GEO.SIM.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Similar triangles in measurement (shadows, ramps): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Similar triangles in measurement (shadows, ramps).",
      "content": "The sun's parallel rays give every upright object and its shadow the same angles — so a stick you can measure and a tower you can't form similar triangles, and the tall height follows from a proportion.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SIM.06",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Similar triangles in measurement (shadows, ramps)",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 5,
      "id": "GEO.SIM.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Similar triangles in measurement (shadows, ramps): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Similar triangles in measurement (shadows, ramps).",
      "content": "A meter stick casts a 0.8 m shadow while a tree casts 12 m, measured minutes apart. Same sun angle → similar triangles → height/shadow matches: h/12 = 1/0.8, so h = 12 ÷ 0.8 = 15 m. No ladder involved.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SIM.06",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Similar triangles in measurement (shadows, ramps)",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 5,
      "id": "GEO.SIM.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Similar triangles in measurement (shadows, ramps): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Similar triangles in measurement (shadows, ramps) into personal, civic/data, and career contexts.",
      "content": "Personal — measure your house's height from its shadow and a broom handle's shadow on the same morning · Civic/Data — before the city trims, check whether the street tree (shadow 9 m when a 2-m pole casts 1.2 m) clears the 12-m line: 9/1.2 × 2 = 15 m → it doesn't · Career — a surveyor heights a cell mast with a ground mirror: equal angles at the mirror make two similar triangles.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SIM.06",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Similar triangles in measurement (shadows, ramps)",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 5,
      "id": "GEO.SIM.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Similar triangles in measurement (shadows, ramps): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Similar triangles in measurement (shadows, ramps).",
      "content": "Accuracy — 8 indirect-measurement setups; ≥7/8 · Explanation — \"*Why* are the stick triangle and the tree triangle similar — what does the sun guarantee, and why must both shadows be measured near the same time?\" · Transfer — height a flag pole using a 1.5-m friend and two shadow measurements you choose.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SIM.07",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Perimeter and area under scaling",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 6,
      "id": "GEO.SIM.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Perimeter and area under scaling: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Perimeter and area under scaling.",
      "content": "Scaling by factor k multiplies every length — including perimeter — by k, but area picks up the factor twice: k².",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SIM.07",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Perimeter and area under scaling",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 6,
      "id": "GEO.SIM.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Perimeter and area under scaling: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Perimeter and area under scaling.",
      "content": "Rectangle 2 × 5: perimeter 14, area 10. Scale ×3 → 6 × 15: perimeter 42 = 14 × 3, but area 90 = 10 × 9. The area factor is 3² because both the rows and the columns tripled.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SIM.07",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Perimeter and area under scaling",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 6,
      "id": "GEO.SIM.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Perimeter and area under scaling: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Perimeter and area under scaling into personal, civic/data, and career contexts.",
      "content": "Personal — a pizza with twice the diameter isn't twice the pizza: it's four times the area, which is why the large costs what it does · Civic/Data — the \"twice as big\" dog-park headline: does the plan double the fencing (lengths ×2) or quadruple the grass (area ×4)? Read the proposal and report which claim the numbers support · Career — a muralist quotes a design scaled ×2.5: masking tape ×2.5, but paint ×6.25.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SIM.07",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Perimeter and area under scaling",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 6,
      "id": "GEO.SIM.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Perimeter and area under scaling: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Perimeter and area under scaling.",
      "content": "Accuracy — 8 items mixing perimeter (×k) and area (×k²), including reverse: area grew ×16, so k = 4; ≥7/8 · Explanation — \"Why does area collect the scale factor twice?\" · Transfer — fabric for a parade banner scaled ×1.5 from the prototype (×2.25 fabric).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SIM.08",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Dilations on the coordinate plane",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 7,
      "id": "GEO.SIM.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Dilations on the coordinate plane: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Dilations on the coordinate plane.",
      "content": "A dilation centered at the origin multiplies every coordinate by the scale factor: image points stay on rays from the center, lengths scale by k, angles don't move.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SIM.08",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Dilations on the coordinate plane",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 7,
      "id": "GEO.SIM.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Dilations on the coordinate plane: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Dilations on the coordinate plane.",
      "content": "Dilation, center origin, k = 1.5: (4,2) → (6,3) and (2,−4) → (3,−6). Each image sits on the straight ray from the origin through its original, 1.5 times as far out. Side lengths grow ×1.5; the shape's angles are untouched.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SIM.08",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Dilations on the coordinate plane",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 7,
      "id": "GEO.SIM.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Dilations on the coordinate plane: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Dilations on the coordinate plane into personal, civic/data, and career contexts.",
      "content": "Personal — enlarge a tagged photo crop and track where each tagged point's coordinates land · Civic/Data — the evacuation map is republished at double scale about the depot: compute the shelters' new map coordinates · Career — a game developer scales hitboxes with their sprites so collisions stay honest at every zoom.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SIM.08",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Dilations on the coordinate plane",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 7,
      "id": "GEO.SIM.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Dilations on the coordinate plane: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Dilations on the coordinate plane.",
      "content": "Accuracy — 8 items: find images, recover k from a point pair, one k < 1 case; ≥7/8 · Explanation — find the flaw: a learner dilates by *adding* 1.5 to each coordinate — why must a dilation multiply? · Transfer — un-dilate: given image vertices and k = 2.5, recover the original coordinates.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SIM.09",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "When is enough information enough? (criteria arguments)",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 8,
      "id": "GEO.SIM.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "When is enough information enough? (criteria arguments): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of When is enough information enough? (criteria arguments).",
      "content": "Some measurement sets force a unique figure and some don't — you settle which by a forcing argument (the rest is determined) or a counterexample (two different figures both fit).",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SIM.09",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "When is enough information enough? (criteria arguments)",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 8,
      "id": "GEO.SIM.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "When is enough information enough? (criteria arguments): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for When is enough information enough? (criteria arguments).",
      "content": "\"Two triangles share two pairs of equal angles\" — the third pair is forced (angles total 180°), so AA settles similarity: enough. \"Two rectangles share a diagonal length\" — a 6 × 8 rectangle has diagonal 10, and so does a thinner 2 × √96 one: two different shapes fit → not enough. One forcing argument, one counterexample.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SIM.09",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "When is enough information enough? (criteria arguments)",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 8,
      "id": "GEO.SIM.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "When is enough information enough? (criteria arguments): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer When is enough information enough? (criteria arguments) into personal, civic/data, and career contexts.",
      "content": "Personal — \"guess my shape\" endgame: what is the *fewest* clues that pins your shape uniquely? · Civic/Data — a permit reviewer decides whether the submitted truss dimensions pin the frame uniquely or allow a flexed version to pass inspection · Career — an engineer reviews a spec sheet: could two different parts both satisfy these listed dimensions? If yes, the spec ships a lawsuit.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SIM.09",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "When is enough information enough? (criteria arguments)",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 8,
      "id": "GEO.SIM.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "When is enough information enough? (criteria arguments): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond When is enough information enough? (criteria arguments).",
      "content": "Accuracy — 8 enough/not-enough judgments with the reason named; ≥7/8 · Explanation — produce a counterexample to \"same perimeter → congruent\" · Transfer — state the minimum information needed to clone a kite shape, and defend it.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SIM.10",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Similarity vs congruence — choosing the tool",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 9,
      "id": "GEO.SIM.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Similarity vs congruence — choosing the tool: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Similarity vs congruence — choosing the tool.",
      "content": "The first move in a matching problem is a decision: must sizes match (congruence) or only shape (similarity)? The wrong choice wastes work or breaks the build.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SIM.10",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Similarity vs congruence — choosing the tool",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 9,
      "id": "GEO.SIM.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Similarity vs congruence — choosing the tool: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Similarity vs congruence — choosing the tool.",
      "content": "Two ramps share all angles; their slopes are 1.5 m and 4.5 m long. Same shape, sizes differ → similarity (k = 3): transfer ratios, not lengths. A replacement bracket that must bolt onto existing holes → congruence: a \"similar but 2% larger\" bracket misses every hole.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SIM.10",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Similarity vs congruence — choosing the tool",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 9,
      "id": "GEO.SIM.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Similarity vs congruence — choosing the tool: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Similarity vs congruence — choosing the tool into personal, civic/data, and career contexts.",
      "content": "Personal — a screen protector must be congruent to your phone's face; a wallpaper of the same photo only needs to be similar · Civic/Data — a replacement stop sign must be congruent to code dimensions, while the safety flyer's picture of it is merely similar — explain why both are \"correct\" · Career — an architect lives in similar drawings all day, then specs congruent parts for fabrication; mixing the two is the classic site error.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SIM.10",
      "clusterId": "GEO.SIM",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Similarity vs congruence — choosing the tool",
      "clusterTitle": "Congruence & Similarity (GEO.SIM)",
      "band": "7–8",
      "hardLevel": 9,
      "id": "GEO.SIM.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Similarity vs congruence — choosing the tool: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Similarity vs congruence — choosing the tool.",
      "content": "Accuracy — 8 problems where the first graded step is choosing the tool, then solving; ≥7/8 · Explanation — \"Why does a 2%-larger 'similar' part fail at assembly while a similar map works perfectly — what does each use case actually require?\" · Transfer — costume shop: which pieces need congruent duplicates (badges) and which scale to actor sizes (capes)? Justify each.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SOL.01",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Naming solids (cube, prism, pyramid, cylinder, cone, sphere)",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 0,
      "id": "GEO.SOL.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Naming solids (cube, prism, pyramid, cylinder, cone, sphere): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Naming solids (cube, prism, pyramid, cylinder, cone, sphere).",
      "content": "Solids are named by their surfaces — how many are flat, which are curved, and what 2-D shapes the flat faces are.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SOL.01",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Naming solids (cube, prism, pyramid, cylinder, cone, sphere)",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 0,
      "id": "GEO.SOL.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Naming solids (cube, prism, pyramid, cylinder, cone, sphere): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Naming solids (cube, prism, pyramid, cylinder, cone, sphere).",
      "content": "Sort the pantry: cereal box → 6 flat rectangle faces → rectangular prism. Soup can → 2 flat circle faces plus a curved wrap → cylinder. Party hat → 1 circle face and a curved surface to a point → cone. Decide by surfaces, not by what the object is for.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SOL.01",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Naming solids (cube, prism, pyramid, cylinder, cone, sphere)",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 0,
      "id": "GEO.SOL.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Naming solids (cube, prism, pyramid, cylinder, cone, sphere): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Naming solids (cube, prism, pyramid, cylinder, cone, sphere) into personal, civic/data, and career contexts.",
      "content": "Personal — pantry-and-toybox solid hunt: name ten objects by solid · Civic/Data — sort the class recycling by solid (cans, boxes, balls of foil) and tally which solid fills the bin fastest · Career — a grocery stocker explains why cylinders face label-out but prisms stack tightest.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SOL.01",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Naming solids (cube, prism, pyramid, cylinder, cone, sphere)",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 0,
      "id": "GEO.SOL.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Naming solids (cube, prism, pyramid, cylinder, cone, sphere): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Naming solids (cube, prism, pyramid, cylinder, cone, sphere).",
      "content": "Accuracy — 8 naming items including prism/pyramid lookalikes; ≥7/8 · Explanation — \"Why is a soup can not a prism?\" (a prism's sides are flat faces; the can's side is one curved surface) · Transfer — name every solid visible in a playground photo.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SOL.02",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Faces, edges, vertices",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 1,
      "id": "GEO.SOL.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Faces, edges, vertices: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Faces, edges, vertices.",
      "content": "Faces are the flat surfaces, edges are where two faces meet, vertices are where edges meet — three counts that pin down a solid's structure.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SOL.02",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Faces, edges, vertices",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 1,
      "id": "GEO.SOL.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Faces, edges, vertices: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Faces, edges, vertices.",
      "content": "Cube: 6 faces. Run a finger along each crease where two faces meet: 12 edges. Touch each corner point: 8 vertices. Verify with stickers on a real die — one sticker per vertex, none left over means none missed.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SOL.02",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Faces, edges, vertices",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 1,
      "id": "GEO.SOL.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Faces, edges, vertices: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Faces, edges, vertices into personal, civic/data, and career contexts.",
      "content": "Personal — sticker-count the faces, edges, and vertices of a tissue box · Civic/Data — class data table: F, E, V for five classroom solids — what patterns appear? · Career — a dice maker checks every die for 8 corners to round off before polishing.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SOL.02",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Faces, edges, vertices",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 1,
      "id": "GEO.SOL.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Faces, edges, vertices: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Faces, edges, vertices.",
      "content": "Accuracy — 8 counting items across cubes, prisms, pyramids; ≥7/8 · Explanation — \"A friend counts 6 edges on a cube from a photo — what went wrong?\" (hidden edges; counting from one view) · Transfer — count F, E, V of a triangular-prism tent (5, 9, 6).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SOL.03",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Nets — unfolding solids",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 2,
      "id": "GEO.SOL.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Nets — unfolding solids: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Nets — unfolding solids.",
      "content": "A net is a solid unfolded flat in one connected piece; folding it back must give every face exactly once, with no overlaps and no gaps.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SOL.03",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Nets — unfolding solids",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 2,
      "id": "GEO.SOL.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Nets — unfolding solids: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Nets — unfolding solids.",
      "content": "Which arrangement of 6 squares folds into a cube? A 2 × 3 block fails — fold it and squares stack on the same face while another face stays open. The cross shape works: track the middle square as the base and each arm becomes one wall, the far square the lid.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SOL.03",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Nets — unfolding solids",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 2,
      "id": "GEO.SOL.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Nets — unfolding solids: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Nets — unfolding solids into personal, civic/data, and career contexts.",
      "content": "Personal — carefully unglue a cereal box and trace its net flat on the floor · Civic/Data — design the net for a donation box for the school fair, tabs included · Career — a packaging engineer arranges nets on one sheet of card so the least material is wasted.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SOL.03",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Nets — unfolding solids",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 2,
      "id": "GEO.SOL.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Nets — unfolding solids: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Nets — unfolding solids.",
      "content": "Accuracy — 8 net-or-not items; ≥7/8 · Explanation — \"Why exactly does the 2 × 3 arrangement fail?\" (which face gets doubled, which goes missing) · Transfer — draw a working net for a triangular-prism chocolate box.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SOL.04",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Cross-sections of solids",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 3,
      "id": "GEO.SOL.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Cross-sections of solids: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Cross-sections of solids.",
      "content": "Slicing a solid exposes a flat 2-D face — and the shape of that cross-section depends on the direction of the cut, not just on the solid.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SOL.04",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Cross-sections of solids",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 3,
      "id": "GEO.SOL.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Cross-sections of solids: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Cross-sections of solids.",
      "content": "A cylinder sliced parallel to its base shows a circle. The same cylinder sliced straight down through the axis shows a rectangle (height × diameter). One solid, two honest answers — the cut direction is part of the question.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SOL.04",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Cross-sections of solids",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 3,
      "id": "GEO.SOL.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Cross-sections of solids: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Cross-sections of solids into personal, civic/data, and career contexts.",
      "content": "Personal — cut a carrot across, then lengthwise: predict both shapes before the knife lands · Civic/Data — how an MRI shows the body as a stack of slice images, and why doctors scroll through them · Career — a carpenter cuts crown molding and reads the profile shape exposed at the cut end.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SOL.04",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Cross-sections of solids",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 3,
      "id": "GEO.SOL.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Cross-sections of solids: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Cross-sections of solids.",
      "content": "Accuracy — 8 predict-the-slice items across solids and cut directions; ≥7/8 · Explanation — \"Why is every flat slice of a sphere a circle, no matter the angle?\" · Transfer — what cross-section does a square pyramid give when sliced parallel to its base? (a smaller square)",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SOL.05",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Prisms vs pyramids — structure",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 4,
      "id": "GEO.SOL.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Prisms vs pyramids — structure: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Prisms vs pyramids — structure.",
      "content": "A prism has two identical parallel end faces joined by rectangles; a pyramid has one base whose triangular faces meet at an apex — and each is named by its base shape.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SOL.05",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Prisms vs pyramids — structure",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 4,
      "id": "GEO.SOL.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Prisms vs pyramids — structure: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Prisms vs pyramids — structure.",
      "content": "Pentagonal prism: 2 pentagons + 5 rectangles = 7 faces. Pentagonal pyramid: 1 pentagon + 5 triangles = 6 faces. Same base, different architecture — count the bases to tell the families apart.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SOL.05",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Prisms vs pyramids — structure",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 4,
      "id": "GEO.SOL.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Prisms vs pyramids — structure: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Prisms vs pyramids — structure into personal, civic/data, and career contexts.",
      "content": "Personal — compare a triangular chocolate box (prism) with a pyramid-shaped gift box: what changed? · Civic/Data — scout-camp catalog: classify each tent as prism or pyramid before the troop votes on one · Career — an architect names roof forms for a client: a gable roof is a triangular prism, a hip roof is nearly a pyramid.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SOL.05",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Prisms vs pyramids — structure",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 4,
      "id": "GEO.SOL.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Prisms vs pyramids — structure: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Prisms vs pyramids — structure.",
      "content": "Accuracy — 8 classify-and-name items; ≥7/8 · Explanation — find the flaw: \"It has triangles, so it's a pyramid\" (a triangular prism's *ends* are triangles; its sides are rectangles) · Transfer — sort six building photos into prism-roofed and pyramid-roofed.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SOL.06",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Building solids from unit cubes",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 5,
      "id": "GEO.SOL.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Building solids from unit cubes: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Building solids from unit cubes.",
      "content": "Cube buildings are counted in layers: find one layer's count, multiply by the number of layers — structure beats one-by-one counting.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SOL.06",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Building solids from unit cubes",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 5,
      "id": "GEO.SOL.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Building solids from unit cubes: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Building solids from unit cubes.",
      "content": "A box shape 4 cubes long, 3 wide, 2 tall: bottom layer = 4 × 3 = 12 cubes; 2 identical layers → 12 × 2 = 24 cubes. Check by building it — no cube is hidden from the count even though some hide from view.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SOL.06",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Building solids from unit cubes",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 5,
      "id": "GEO.SOL.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Building solids from unit cubes: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Building solids from unit cubes into personal, civic/data, and career contexts.",
      "content": "Personal — build the biggest solid box you can from a tub of linking cubes, predicting the count first · Civic/Data — estimate the boxes in the food-drive stack (4 wide, 3 deep, 5 high) without unstacking · Career — a warehouse packer plans a pallet layer by layer and totals cartons before loading.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SOL.06",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Building solids from unit cubes",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 5,
      "id": "GEO.SOL.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Building solids from unit cubes: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Building solids from unit cubes.",
      "content": "Accuracy — 8 count/build items including structures with hidden cubes; ≥7/8 · Explanation — \"Why are you allowed to multiply instead of counting every cube?\" · Transfer — count a 3-step staircase, 2 cubes deep: (1 + 2 + 3) × 2 = 12.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SOL.07",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Views — front, top, side",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 6,
      "id": "GEO.SOL.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Views — front, top, side: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Views — front, top, side.",
      "content": "A 3-D object projects different 2-D silhouettes from the front, top, and side; one view alone usually under-determines the object.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SOL.07",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Views — front, top, side",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 6,
      "id": "GEO.SOL.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Views — front, top, side: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Views — front, top, side.",
      "content": "Build a row of 3 cubes, then stack 1 more on the left cube. Top view: a 1 × 3 strip (height invisible). Front view: column heights 2-1-1, an L of 4 squares. Side view: 1 wide, 2 tall. Three flat pictures, one building.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SOL.07",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Views — front, top, side",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 6,
      "id": "GEO.SOL.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Views — front, top, side: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Views — front, top, side into personal, civic/data, and career contexts.",
      "content": "Personal — sketch your bedside table from front, top, and side, then have someone match the sketches to the object · Civic/Data — compare the school's roof plan (top view) on the town map with a street photo (front view) of the same building · Career — a drafter issues three-view drawings of a machine part so the shop can build it without guessing.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SOL.07",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Views — front, top, side",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 6,
      "id": "GEO.SOL.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Views — front, top, side: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Views — front, top, side.",
      "content": "Accuracy — 8 match-the-view items; ≥7/8 · Explanation — \"Why can two different cube buildings share the same top view?\" (top views hide heights) · Transfer — given top and front views only, build a matching block model and state whether more than one answer exists.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SOL.08",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Euler's relationship F+V−E=2 (exploration)",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 7,
      "id": "GEO.SOL.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Euler's relationship F+V−E=2 (exploration): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Euler's relationship F+V−E=2 (exploration).",
      "content": "For solids with flat faces, faces plus vertices minus edges always equals 2 — a cross-family pattern strong enough to error-check any count.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SOL.08",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Euler's relationship F+V−E=2 (exploration)",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 7,
      "id": "GEO.SOL.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Euler's relationship F+V−E=2 (exploration): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Euler's relationship F+V−E=2 (exploration).",
      "content": "Cube: 6 + 8 − 12 = 2. Triangular prism: 5 + 6 − 9 = 2. Square pyramid: 5 + 5 − 8 = 2. Different families, same 2 — so given F = 8 and V = 12 for a hexagonal prism, predict E = 8 + 12 − 2 = 18 and count to confirm.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SOL.08",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Euler's relationship F+V−E=2 (exploration)",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 7,
      "id": "GEO.SOL.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Euler's relationship F+V−E=2 (exploration): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Euler's relationship F+V−E=2 (exploration) into personal, civic/data, and career contexts.",
      "content": "Personal — test the rule on game dice: d4 (4 + 4 − 6 = 2) and d8 (8 + 6 − 12 = 2) · Civic/Data — class builds a data table for eight solids and hunts for the constant hiding in the columns · Career — a 3-D modeler sanity-checks a mesh using the face/vertex/edge counts the software reports.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SOL.08",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Euler's relationship F+V−E=2 (exploration)",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 7,
      "id": "GEO.SOL.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Euler's relationship F+V−E=2 (exploration): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Euler's relationship F+V−E=2 (exploration).",
      "content": "Accuracy — 8 verify or find-the-missing-count items; ≥7/8 · Explanation — \"A classmate reports F = 7, V = 9, E = 13. Could that be right?\" (7 + 9 − 13 = 3 → recount) · Transfer — predict edges of a pentagonal pyramid from F = 6, V = 6 (E = 10), then verify.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SOL.09",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Solids in the built world",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 8,
      "id": "GEO.SOL.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Solids in the built world: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Solids in the built world.",
      "content": "Built objects are compositions of solids, and each solid is chosen for a structural reason — reading a structure means decomposing it and asking why each part.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SOL.09",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Solids in the built world",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 8,
      "id": "GEO.SOL.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Solids in the built world: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Solids in the built world.",
      "content": "A sharpened pencil = hexagonal prism (body) + cone (tip) + cylinder (eraser): 3 solids. Why the hexagonal prism? Its 6 flat faces stop it rolling off the desk — a cylinder body wouldn't. The shape is a decision, not a decoration.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SOL.09",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Solids in the built world",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 8,
      "id": "GEO.SOL.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Solids in the built world: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Solids in the built world into personal, civic/data, and career contexts.",
      "content": "Personal — describe your home as solids: which prisms, cylinders, and pyramids is it built from? · Civic/Data — neighborhood walk survey: tally the solids in water tanks, silos, kiosks, and roofs for a class infographic · Career — a structural engineer explains why columns are cylinders: no corners to crack, equal strength in every direction.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SOL.09",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Solids in the built world",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 8,
      "id": "GEO.SOL.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Solids in the built world: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Solids in the built world.",
      "content": "Accuracy — 8 identify-and-justify items; ≥7/8 · Explanation — \"Why are storage tanks cylinders rather than tall boxes?\" (accept: no weak corners, walls equally loaded) · Transfer — decompose a lighthouse photo into its solids and give one reason for each choice.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.SOL.10",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Sketching solids (isometric intro)",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 9,
      "id": "GEO.SOL.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Sketching solids (isometric intro): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Sketching solids (isometric intro).",
      "content": "Isometric sketching draws 3-D convincingly by convention: vertical edges stay vertical, horizontal edges follow the two dot-paper diagonals, equal lengths stay equal.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.SOL.10",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Sketching solids (isometric intro)",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 9,
      "id": "GEO.SOL.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Sketching solids (isometric intro): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Sketching solids (isometric intro).",
      "content": "Sketch a cube on isometric dot paper: one vertical edge, then edges along each diagonal direction, all the same length. Three faces show, and each square face appears as a rhombus — the drawing distorts angles to preserve the 3-D illusion. Dash the hidden edges.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.SOL.10",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Sketching solids (isometric intro)",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 9,
      "id": "GEO.SOL.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Sketching solids (isometric intro): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Sketching solids (isometric intro) into personal, civic/data, and career contexts.",
      "content": "Personal — sketch your favorite brick build so you can rebuild it after the box gets knocked over · Civic/Data — sketch the proposed bike-rack design for the student-council noticeboard · Career — a site carpenter sketches a porch-step layout isometrically to agree the job with the client before cutting.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.SOL.10",
      "clusterId": "GEO.SOL",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Sketching solids (isometric intro)",
      "clusterTitle": "3-D Solids (GEO.SOL)",
      "band": "1–6",
      "hardLevel": 9,
      "id": "GEO.SOL.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Sketching solids (isometric intro): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Sketching solids (isometric intro).",
      "content": "Accuracy — 8 tasks: 5 sketch-from-model, 3 spot-the-error sketches; ≥7/8 · Explanation — \"Why do a cube's square faces draw as rhombi in an isometric sketch?\" · Transfer — sketch an L-shaped arrangement of 4 cubes from a photo, hidden edges dashed.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.TRF.01",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Line symmetry",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 0,
      "id": "GEO.TRF.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Line symmetry: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Line symmetry.",
      "content": "A figure has line symmetry when a fold lands one half exactly on the other — the fold line is the mirror, and a figure can have several, one, or none.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.TRF.01",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Line symmetry",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 0,
      "id": "GEO.TRF.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Line symmetry: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Line symmetry.",
      "content": "Fold-test capital letters: A folds onto itself along one vertical line → 1 line of symmetry. H folds vertically *and* horizontally → 2. F matches under no fold → 0. The fold either lands perfectly or it doesn't — symmetry is a test, not a vibe.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.TRF.01",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Line symmetry",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 0,
      "id": "GEO.TRF.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Line symmetry: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Line symmetry into personal, civic/data, and career contexts.",
      "content": "Personal — fold-and-cut paper hearts and snowflakes: the fold line becomes the symmetry line · Civic/Data — design a class-election logo with exactly one line of symmetry and explain where it is · Career — a kite maker balances the design across the spine, because asymmetric kites pull sideways.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.TRF.01",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Line symmetry",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 0,
      "id": "GEO.TRF.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Line symmetry: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Line symmetry.",
      "content": "Accuracy — 8 items: draw all symmetry lines, count them, complete half-figures; ≥7/8 · Explanation — find the flaw: \"A parallelogram has two symmetry lines through opposite corners\" — fold along a diagonal: why doesn't it land? · Transfer — sort eight national flags by their number of symmetry lines.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.TRF.02",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Rotational symmetry",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 1,
      "id": "GEO.TRF.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Rotational symmetry: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Rotational symmetry.",
      "content": "A figure has rotational symmetry when a part-turn about its center lands it on itself; the order counts how many times it matches in one full turn.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.TRF.02",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Rotational symmetry",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 1,
      "id": "GEO.TRF.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Rotational symmetry: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Rotational symmetry.",
      "content": "Pin a square at its center and turn: it matches at 90°, 180°, 270°, and 360° → order 4. An equilateral triangle matches every 120° → order 3. Rule of thumb: smallest matching turn = 360° ÷ order.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.TRF.02",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Rotational symmetry",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 1,
      "id": "GEO.TRF.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Rotational symmetry: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Rotational symmetry into personal, civic/data, and career contexts.",
      "content": "Personal — a three-arm fidget spinner looks identical three times per spin: order 3 · Civic/Data — the recycling symbol has rotational order 3; survey civic logos around town for their orders · Career — a hubcap designer picks an order-5 spoke pattern so the wheel looks right at any moment of rotation.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.TRF.02",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Rotational symmetry",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 1,
      "id": "GEO.TRF.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Rotational symmetry: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Rotational symmetry.",
      "content": "Accuracy — 8 find-the-order items including order 1 (no rotational symmetry); ≥7/8 · Explanation — \"Every shape matches itself after 360° — why doesn't that count as rotational symmetry?\" · Transfer — state the order of a ship's wheel with 8 identical handles (8).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.TRF.03",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Translations (slides)",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 2,
      "id": "GEO.TRF.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Translations (slides): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Translations (slides).",
      "content": "A translation slides every point of a figure the same distance in the same direction — no turning, no flipping, nothing about the figure changes except where it is.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.TRF.03",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Translations (slides)",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 2,
      "id": "GEO.TRF.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Translations (slides): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Translations (slides).",
      "content": "Slide a triangle 5 squares right and 2 down on grid paper: move *each* vertex 5 right, 2 down, then rejoin. Lay the tracing over the original and check: same side lengths, same angles — only the position moved.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.TRF.03",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Translations (slides)",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 2,
      "id": "GEO.TRF.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Translations (slides): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Translations (slides) into personal, civic/data, and career contexts.",
      "content": "Personal — stamp a border across your notebook by repeating one slide of the same stamp · Civic/Data — the mural team repeats a stencil along the underpass wall in equal slides so the pattern stays even · Career — a textile designer repeats a motif across fabric in fixed steps; one wrong slide and the repeat visibly jars.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.TRF.03",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Translations (slides)",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 2,
      "id": "GEO.TRF.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Translations (slides): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Translations (slides).",
      "content": "Accuracy — 8 items: perform slides, identify them, describe distance and direction; ≥7/8 · Explanation — \"What makes a slide different from 'moving it roughly over there'?\" (every point moves equally; no turn, no flip) · Transfer — plan the slide pattern that tiles fish motifs across a floor design.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.TRF.04",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Reflections (flips)",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 3,
      "id": "GEO.TRF.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Reflections (flips): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Reflections (flips).",
      "content": "A reflection flips a figure over a mirror line: each point lands the same distance from the line on the opposite side, and the figure's orientation reverses.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.TRF.04",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Reflections (flips)",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 3,
      "id": "GEO.TRF.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Reflections (flips): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Reflections (flips).",
      "content": "Flip a flag shape over a vertical line: the pole tip 2 squares left of the line lands 2 squares right of it; every point keeps its distance to the mirror. The flag now points the other way — a slide could never do that.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.TRF.04",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Reflections (flips)",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 3,
      "id": "GEO.TRF.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Reflections (flips): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Reflections (flips) into personal, civic/data, and career contexts.",
      "content": "Personal — write your name in mirror-writing, then check it in an actual mirror · Civic/Data — why AMBULANCE is printed reversed on the hood: drivers ahead read it correctly in their mirrors · Career — a stencil cutter flips one template to cut matching left-hand and right-hand brackets instead of drafting two.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.TRF.04",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Reflections (flips)",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 3,
      "id": "GEO.TRF.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Reflections (flips): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Reflections (flips).",
      "content": "Accuracy — 8 reflections over vertical, horizontal, and diagonal grid lines; ≥7/8 · Explanation — \"Why does a reflection reverse orientation when a slide doesn't?\" · Transfer — design matching left and right sneaker sole prints from one master.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.TRF.05",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Rotations (turns)",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 4,
      "id": "GEO.TRF.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Rotations (turns): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Rotations (turns).",
      "content": "A rotation turns a figure about a fixed center point by a given angle and direction; every point keeps its distance from the center, and the center itself never moves.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.TRF.05",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Rotations (turns)",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 4,
      "id": "GEO.TRF.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Rotations (turns): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Rotations (turns).",
      "content": "Rotate an L-tile 90° clockwise about its corner point: trace it, pin the corner, turn the tracing a quarter turn. The arm that pointed up now points right; every point stayed the same distance from the pin. 180° would point it down instead.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.TRF.05",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Rotations (turns)",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 4,
      "id": "GEO.TRF.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Rotations (turns): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Rotations (turns) into personal, civic/data, and career contexts.",
      "content": "Personal — rotating tetromino pieces to fit the gap is rotation-about-a-center under time pressure · Civic/Data — turn the park map's \"you are here\" arrow to match the direction you face, pivoting about the arrow's base · Career — a CNC operator indexes a part 90° in the vice between cuts; the clamp point is the center of rotation.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.TRF.05",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Rotations (turns)",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 4,
      "id": "GEO.TRF.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Rotations (turns): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Rotations (turns).",
      "content": "Accuracy — 8 rotations of 90°/180°/270° about a marked center; ≥7/8 · Explanation — find the flaw: a classmate rotates 90° but the traced center point drifted — how does the drift prove an extra slide crept in? · Transfer — rotate a boat shape 180° about a buoy point on a harbor grid.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.TRF.06",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Describing transformations precisely",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 5,
      "id": "GEO.TRF.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Describing transformations precisely: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Describing transformations precisely.",
      "content": "A transformation isn't described until a stranger could reproduce it exactly: reflections need the mirror line, rotations need center + angle + direction, translations need distance + direction.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.TRF.06",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Describing transformations precisely",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 5,
      "id": "GEO.TRF.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Describing transformations precisely: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Describing transformations precisely.",
      "content": "\"The triangle flipped\" fails the stranger test. Full spec: \"reflection across the vertical line x = 2\" or \"rotation 90° counterclockwise about point P\" or \"translation 4 right, 2 down.\" Test each spec by handing it to a partner and comparing results — any mismatch means a missing ingredient.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.TRF.06",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Describing transformations precisely",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 5,
      "id": "GEO.TRF.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Describing transformations precisely: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Describing transformations precisely into personal, civic/data, and career contexts.",
      "content": "Personal — phone a friend the exact moves to recreate your pixel design; vague verbs lose the game · Civic/Data — the council minutes record the approved logo placement as exact transformations of the master mark, so every banner printer produces the same thing · Career — an animator hands a motion spec (center, angle, direction, frames) to a teammate who must reproduce it exactly.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.TRF.06",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Describing transformations precisely",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 5,
      "id": "GEO.TRF.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Describing transformations precisely: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Describing transformations precisely.",
      "content": "Accuracy — 8 before/after pairs: write the complete spec for each; ≥7/8 · Explanation — \"Why is 'rotate it 90°' incomplete — what two ingredients are missing and what goes wrong without each?\" · Transfer — spec the transformation between two dance-formation diagrams for the team to execute.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.TRF.07",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Composite transformations",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 6,
      "id": "GEO.TRF.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Composite transformations: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Composite transformations.",
      "content": "Transformations chain — and a chain of two can equal a single different transformation, which is the first hint that motions form a system.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.TRF.07",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Composite transformations",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 6,
      "id": "GEO.TRF.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Composite transformations: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Composite transformations.",
      "content": "Reflect a shape across a line, then across a second line parallel to the first and 3 cm away: the result sits 6 cm from the start, unflipped — the double reflection *is* a translation of twice the gap. Two flips cancel the reversal and the distances add up.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.TRF.07",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Composite transformations",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 6,
      "id": "GEO.TRF.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Composite transformations: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Composite transformations into personal, civic/data, and career contexts.",
      "content": "Personal — two mirrors facing each other in a corner: your double-flipped image is the unreversed one strangers see · Civic/Data — the science-fair periscope: two reflections deliver an upright, unflipped view over the fence — explain why one mirror can't · Career — a print technician chains flip-then-shift to impose duplex pages so backs align with fronts.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.TRF.07",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Composite transformations",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 6,
      "id": "GEO.TRF.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Composite transformations: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Composite transformations.",
      "content": "Accuracy — 8 two-step composites, naming a single equivalent where one exists; ≥7/8 · Explanation — \"Why do two flips restore orientation?\" (each flip reverses it; reversing a reversal restores it) · Transfer — predict the single result of reflecting across the x-axis then the y-axis (180° rotation about the origin), then verify with a grid shape.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.TRF.08",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Congruence through rigid motions",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 7,
      "id": "GEO.TRF.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Congruence through rigid motions: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Congruence through rigid motions.",
      "content": "Two figures are congruent exactly when some sequence of slides, flips, and turns lands one precisely on the other — rigid motions preserve length and angle, so \"fits exactly\" is proof, not coincidence.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.TRF.08",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Congruence through rigid motions",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 7,
      "id": "GEO.TRF.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Congruence through rigid motions: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Congruence through rigid motions.",
      "content": "Two L-shapes on a grid: rotate the first 90° clockwise about its corner, then slide it 4 right — it lands exactly on the second → congruent. A third L that always leaves a one-square overhang under every attempted sequence is not congruent: no rigid motion can change its size.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.TRF.08",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Congruence through rigid motions",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 7,
      "id": "GEO.TRF.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Congruence through rigid motions: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Congruence through rigid motions into personal, civic/data, and career contexts.",
      "content": "Personal — prove two jigsaw pieces are duplicates by flipping and turning one onto the other · Civic/Data — the city's flag printer checks each batch flag by overlaying the master template: any overhang fails the order · Career — a quality inspector overlays a stamped gasket on the CAD outline; gaps or overhangs reject the part.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.TRF.08",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Congruence through rigid motions",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 7,
      "id": "GEO.TRF.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Congruence through rigid motions: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Congruence through rigid motions.",
      "content": "Accuracy — 8 items: find a landing sequence, or rule one out; ≥7/8 · Explanation — \"Why does 'lands exactly after rigid motions' guarantee equal sides *and* equal angles?\" · Transfer — show two ski-trail map symbols are congruent using a two-motion sequence, named precisely.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.TRF.09",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Symmetry in design and nature",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 8,
      "id": "GEO.TRF.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Symmetry in design and nature: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Symmetry in design and nature.",
      "content": "Real designs carry whole inventories of symmetries — mirror lines, rotational orders, repeats — and you can audit any design by listing every transformation that leaves it unchanged.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.TRF.09",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Symmetry in design and nature",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 8,
      "id": "GEO.TRF.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Symmetry in design and nature: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Symmetry in design and nature.",
      "content": "A snowflake photo: 6 repeated arms → rotational order 6, plus 6 mirror lines through the arms and between them. A honeycomb adds translation symmetry — the cell pattern repeats by fixed slides. The audit is the answer: type + count, with evidence.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.TRF.09",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Symmetry in design and nature",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 8,
      "id": "GEO.TRF.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Symmetry in design and nature: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Symmetry in design and nature into personal, civic/data, and career contexts.",
      "content": "Personal — audit your favorite team crest: which symmetries does it have, and which did the designer deliberately break? · Civic/Data — heritage-walk survey: tally symmetry types across the town's building facades for a poster · Career — a wallpaper designer chooses the pattern's symmetry group so seams vanish when strips are hung side by side.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.TRF.09",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Symmetry in design and nature",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 8,
      "id": "GEO.TRF.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Symmetry in design and nature: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Symmetry in design and nature.",
      "content": "Accuracy — 8 full-audit items on given designs; ≥7/8 · Explanation — \"Adding the team name to a crest kills its mirror symmetry — why does lettering do that?\" (text reads one way; its mirror image doesn't) · Transfer — complete a symmetry audit of a starfish photo (rotational order 5, five mirror lines).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "GEO.TRF.10",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Invariants — what transformations preserve",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 9,
      "id": "GEO.TRF.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Invariants — what transformations preserve: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Invariants — what transformations preserve.",
      "content": "Each transformation family has a signature of what it preserves: rigid motions keep lengths, angles, and area; dilations keep angles and proportions but scale lengths — so the invariants identify the transformation after the fact.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "GEO.TRF.10",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Invariants — what transformations preserve",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 9,
      "id": "GEO.TRF.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Invariants — what transformations preserve: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Invariants — what transformations preserve.",
      "content": "Build the table: slide/flip/turn preserve lengths, angles, area, parallelism (the flip reverses orientation). A dilation ×2 preserves angles and parallelism but doubles lengths and quadruples area. Diagnosis drill: two figures with equal angles but sides 4 vs 6 — lengths broke, angles didn't → a dilation (×1.5), not a rigid motion.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "GEO.TRF.10",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Invariants — what transformations preserve",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 9,
      "id": "GEO.TRF.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Invariants — what transformations preserve: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Invariants — what transformations preserve into personal, civic/data, and career contexts.",
      "content": "Personal — before/after detective cards: name what changed and what didn't to identify the move · Civic/Data — could this \"same sign, just photographed closer\" really be the same sign? Angles agree, lengths don't scale consistently — the photo claim fails the invariant check · Career — a document examiner tests whether a \"copied at 100%\" contract was actually scaled: matching angles with shrunken lengths is the tell.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "GEO.TRF.10",
      "clusterId": "GEO.TRF",
      "domain": "GEO",
      "domainName": "Geometry & Space",
      "skillTitle": "Invariants — what transformations preserve",
      "clusterTitle": "Symmetry & Transformations (GEO.TRF)",
      "band": "3–8",
      "hardLevel": 9,
      "id": "GEO.TRF.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Invariants — what transformations preserve: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Invariants — what transformations preserve.",
      "content": "Accuracy — 8 items: \"what does ___ preserve?\" plus identify-the-transformation-from-invariants; ≥7/8 · Explanation — \"Why does a dilation preserve angles even though every length changes?\" (all directions stretch together, so the spread between sides stays) · Transfer — two figures have equal angles and sides in ratio 1:3 — name the transformation family connecting them and one invariant proving it.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.CNV.01",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Metric conversions — length",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 0,
      "id": "MEA.CNV.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Metric conversions — length: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Metric conversions — length.",
      "content": "Metric length conversions are place-value shifts: km→m is ×1000, m→cm is ×100, cm→mm is ×10 — going to a smaller unit multiplies the count, because more small units fit in the same length.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.CNV.01",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Metric conversions — length",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 0,
      "id": "MEA.CNV.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Metric conversions — length: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Metric conversions — length.",
      "content": "2.5 m to cm: 2.5 × 100 = 250 cm. And 4 km = 4 × 1000 = 4000 m.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.CNV.01",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Metric conversions — length",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 0,
      "id": "MEA.CNV.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Metric conversions — length: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Metric conversions — length into personal, civic/data, and career contexts.",
      "content": "Personal — Convert your 1.4-m height to 140 cm to check the theme-park ride sign. · Civic/Data — The 5-km fun run in track terms: 5000 m is 12.5 laps of the 400-m oval. · Career — A carpenter converts a 2.4-m plank to 240 cm to mark four 60-cm shelf cuts.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.CNV.01",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Metric conversions — length",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 0,
      "id": "MEA.CNV.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Metric conversions — length: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Metric conversions — length.",
      "content": "Accuracy — 8 items: 4 single conversions both directions, 2 with decimals, 2 comparisons across units (is 1800 m more than 2 km?); ≥7/8 · Explanation — \"Sam converts 35 cm to meters and writes 3500 m, saying 'metric means ×100.' Which direction did Sam ignore, and why must the meter count come out smaller (0.35 m)?\" · Transfer — A model-train manual gives track in millimeters: how many mm is 1.2 m of track (1200)?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.CNV.02",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Metric conversions — mass and capacity",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 1,
      "id": "MEA.CNV.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Metric conversions — mass and capacity: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Metric conversions — mass and capacity.",
      "content": "Mass and capacity use the same ×1000 ladder — kg↔g, L↔mL — so one mental move covers all of metric: shift by the power of ten the prefix names.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.CNV.02",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Metric conversions — mass and capacity",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 1,
      "id": "MEA.CNV.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Metric conversions — mass and capacity: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Metric conversions — mass and capacity.",
      "content": "3.2 kg to grams: 3.2 × 1000 = 3200 g. And 1500 mL = 1500 ÷ 1000 = 1.5 L.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.CNV.02",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Metric conversions — mass and capacity",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 1,
      "id": "MEA.CNV.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Metric conversions — mass and capacity: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Metric conversions — mass and capacity into personal, civic/data, and career contexts.",
      "content": "Personal — The recipe wants 250 g of butter and your scale reads kilograms: that's 0.25 kg. · Civic/Data — The recycling drive logs 12,400 g of collected cans as 12.4 kg on the town tally. · Career — A juice-stand owner buys a 5-L jug and sells 200-mL cups: 5000 ÷ 200 = 25 cups per jug.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.CNV.02",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Metric conversions — mass and capacity",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 1,
      "id": "MEA.CNV.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Metric conversions — mass and capacity: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Metric conversions — mass and capacity.",
      "content": "Accuracy — 8 items: 4 mass and capacity conversions, 2 decimal cases, 2 how-many-servings problems; ≥7/8 · Explanation — \"Why do all metric conversions use 10, 100, or 1000, while hours-to-minutes doesn't? What design choice makes metric units behave like place value?\" · Transfer — A 1.8-kg bag of pet food in 150-g servings: 1800 ÷ 150 = 12 servings.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.CNV.03",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Customary conversions",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 0,
      "id": "MEA.CNV.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Customary conversions: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Customary conversions.",
      "content": "Customary units convert by memorized non-ten factors — 12 in = 1 ft, 3 ft = 1 yd, 16 oz = 1 lb, 4 cups = 1 qt, 4 qt = 1 gal — so you multiply or divide by the factor; digit-shifting doesn't work here.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.CNV.03",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Customary conversions",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 0,
      "id": "MEA.CNV.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Customary conversions: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Customary conversions.",
      "content": "5 ft 4 in to inches: 5 × 12 = 60; 60 + 4 = 64 in. And 40 oz = 40 ÷ 16 = 2.5 lb.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.CNV.03",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Customary conversions",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 0,
      "id": "MEA.CNV.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Customary conversions: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Customary conversions into personal, civic/data, and career contexts.",
      "content": "Personal — Confirm that 56 inches on the doctor's chart is the same as your 4 ft 8 in. · Civic/Data — The cafeteria orders 3 gallons of milk for the pancake breakfast: 3 × 4 × 4 = 48 cups. · Career — A framing carpenter converts a 9-ft board to 108 in to plan six 18-in pieces.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.CNV.03",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Customary conversions",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 0,
      "id": "MEA.CNV.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Customary conversions: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Customary conversions.",
      "content": "Accuracy — 8 items: 4 length conversions, 2 weight, 2 capacity, mixed directions; ≥7/8 · Explanation — \"Kim converts 30 inches to feet by dividing by 10 and gets 3 ft. What metric habit caused this? Correct it (2.5 ft) and state the right factor.\" · Transfer — A fish-tank manual: a 10-gallon tank is how many quarts (40)?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.CNV.04",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Converting between systems (approximate)",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 2,
      "id": "MEA.CNV.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Converting between systems (approximate): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Converting between systems (approximate).",
      "content": "Across systems we use friendly approximations — 1 in ≈ 2.5 cm, 1 ft ≈ 30 cm, 1 mi ≈ 1.6 km, 1 kg ≈ 2.2 lb, 1 L ≈ 1 qt — so answers are estimates and should be written with ≈, not =.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.CNV.04",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Converting between systems (approximate)",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 2,
      "id": "MEA.CNV.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Converting between systems (approximate): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Converting between systems (approximate).",
      "content": "A 5-km race in miles: 5 ÷ 1.6 ≈ 3.1 mi. A 6-ft door in metric: 6 × 30 = 180 cm ≈ 1.8 m.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.CNV.04",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Converting between systems (approximate)",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 2,
      "id": "MEA.CNV.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Converting between systems (approximate): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Converting between systems (approximate) into personal, civic/data, and career contexts.",
      "content": "Personal — Check the airline's 23-kg bag limit against your bathroom scale's pounds: 23 × 2.2 ≈ 50 lb. · Civic/Data — Crossing the border, the 100 km/h sign means about 62 mph — explain the dashboard's two rings. · Career — An online seller lists a 3-kg parcel as about 6.6 lb so US buyers know the shipping class.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.CNV.04",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Converting between systems (approximate)",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 2,
      "id": "MEA.CNV.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Converting between systems (approximate): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Converting between systems (approximate).",
      "content": "Accuracy — 8 items: 6 single approximate conversions across length/mass/capacity, 2 \"which is bigger: 3 mi or 4 km?\" comparisons; ≥7/8 · Explanation — \"Why is it fine to call 5 km 'about 3.1 miles' but a flaw to call it 'exactly 3.10686 miles' when 1.6 was your conversion factor?\" (Precision can't exceed the approximation.) · Transfer — A UK recipe's 500 mL of stock in cups: at 1 cup ≈ 250 mL, that's about 2 cups.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.CNV.05",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Time unit conversions",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 0,
      "id": "MEA.CNV.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Time unit conversions: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Time unit conversions.",
      "content": "Time converts by 60s, 24s, and 7s — 60 s = 1 min, 60 min = 1 h, 24 h = 1 day, 7 days = 1 week — so decimal-point shifting is illegal: 1.5 h is 90 min, never 150.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.CNV.05",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Time unit conversions",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 0,
      "id": "MEA.CNV.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Time unit conversions: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Time unit conversions.",
      "content": "2.5 h to minutes: 2.5 × 60 = 150 min. And 400 s = 400 ÷ 60 = 6 R40 → 6 min 40 s.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.CNV.05",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Time unit conversions",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 0,
      "id": "MEA.CNV.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Time unit conversions: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Time unit conversions into personal, civic/data, and career contexts.",
      "content": "Personal — A 95-minute movie is 1 h 35 min: starting at 6:20 it ends 7:55, just before your 8:00 pickup. · Civic/Data — The city pool runs 45-minute sessions: a 6-hour day holds 8 of them (360 ÷ 45). · Career — A video editor totals 14 clips of 90 s each: 1260 s = 21 min of footage.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.CNV.05",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Time unit conversions",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 0,
      "id": "MEA.CNV.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Time unit conversions: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Time unit conversions.",
      "content": "Accuracy — 8 items: 4 single conversions, 2 mixed-unit results (s → min + s), 2 schedule applications; ≥7/8 · Explanation — \"A timer app shows 1.5 h and Jay books 1 h 50 min for it. Unpack the flaw.\" (0.5 h = 30 min; the decimal half is thirty sixtieths, not fifty.) · Transfer — Astronomy club: a Mars day is 24 h 40 min — that's 24 × 60 + 40 = 1480 min.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.CNV.06",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Multi-step conversions",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 3,
      "id": "MEA.CNV.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Multi-step conversions: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Multi-step conversions.",
      "content": "Long conversions are chains of single links (days → hours → minutes → seconds), and writing the unit on every line makes a wrong turn show up immediately instead of at the end.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.CNV.06",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Multi-step conversions",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 3,
      "id": "MEA.CNV.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Multi-step conversions: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Multi-step conversions.",
      "content": "A 2-day science timer in seconds: 2 × 24 = 48 h; 48 × 60 = 2880 min; 2880 × 60 = 172,800 s.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.CNV.06",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Multi-step conversions",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 3,
      "id": "MEA.CNV.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Multi-step conversions: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Multi-step conversions into personal, civic/data, and career contexts.",
      "content": "Personal — Brag precisely: 10 weeks of summer vacation is 10 × 7 × 24 × 60 = 100,800 minutes. · Civic/Data — The town's 1.2 km of new sidewalk in 30-cm pavers: 1200 m = 120,000 cm, so 4000 pavers. · Career — A bottling line fills 330-mL cans from a 1980-L tank: 1,980,000 mL ÷ 330 = 6000 cans per tank.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.CNV.06",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Multi-step conversions",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 3,
      "id": "MEA.CNV.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Multi-step conversions: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Multi-step conversions.",
      "content": "Accuracy — 8 items: 4 two-step chains, 2 three-step chains, 2 chains mixing systems (approximate); ≥7/8 · Explanation — \"Spot the flaw: '3 h = 3 × 60 = 180 s.' Which link got skipped, and how does writing units on each line catch it?\" (3 h = 180 min; minutes→seconds never happened.) · Transfer — A 4.5-km trail in 75-cm strides: 450,000 cm ÷ 75 = 6000 steps.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.CNV.07",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Conversion by unit fractions (dimensional analysis intro)",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 4,
      "id": "MEA.CNV.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Conversion by unit fractions (dimensional analysis intro): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Conversion by unit fractions (dimensional analysis intro).",
      "content": "Multiplying by a conversion fraction worth 1 (like 60 min/1 h) changes units without changing the quantity — set the fraction so the old unit cancels, and a wrong setup announces itself with nonsense units.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.CNV.07",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Conversion by unit fractions (dimensional analysis intro)",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 4,
      "id": "MEA.CNV.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Conversion by unit fractions (dimensional analysis intro): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Conversion by unit fractions (dimensional analysis intro).",
      "content": "3.5 h × (60 min / 1 h) = 210 min — the \"h\" cancels top and bottom. Flipped, 3.5 h × (1 h / 60 min) leaves h²/min: nonsense, so the method self-checks.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.CNV.07",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Conversion by unit fractions (dimensional analysis intro)",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 4,
      "id": "MEA.CNV.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Conversion by unit fractions (dimensional analysis intro): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Conversion by unit fractions (dimensional analysis intro) into personal, civic/data, and career contexts.",
      "content": "Personal — Convert your 5-km park loop with one fraction: 5 km × (1000 m / 1 km) = 5000 m. · Civic/Data — Conservation poster: an 8 L/min shower head × (1 gal / 3.8 L) ≈ 2.1 gal/min for the bilingual-units version. · Career — A machinist converts 0.75 ft × (12 in / 1 ft) = 9 in on the spec sheet, units shown.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.CNV.07",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Conversion by unit fractions (dimensional analysis intro)",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 4,
      "id": "MEA.CNV.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Conversion by unit fractions (dimensional analysis intro): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Conversion by unit fractions (dimensional analysis intro).",
      "content": "Accuracy — 8 items: 4 single-fraction conversions, 2 choose-the-correct-orientation, 2 two-fraction chains; ≥7/8 · Explanation — \"Why is multiplying by 60 min/1 h 'multiplying by 1'? Show both orientations on 120 min and explain how the wrong one exposes itself.\" (120 min × 1 h/60 min = 2 h ✓; the flip yields 7200 min²/h.) · Transfer — Chain two fractions: 14 days × (24 h/1 day) × (60 min/1 h) = 20,160 min.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.CNV.08",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Rates with mixed units (km/h ↔ m/s)",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 5,
      "id": "MEA.CNV.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Rates with mixed units (km/h ↔ m/s): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Rates with mixed units (km/h ↔ m/s).",
      "content": "A rate converts by converting each of its units: km/h → m/s is ×1000 for the kilometers and ÷3600 for the hour — ÷3.6 overall — and the unit-fraction method keeps the two moves honest.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.CNV.08",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Rates with mixed units (km/h ↔ m/s)",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 5,
      "id": "MEA.CNV.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Rates with mixed units (km/h ↔ m/s): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Rates with mixed units (km/h ↔ m/s).",
      "content": "72 km/h to m/s: 72 × 1000 m / 3600 s = 72 ÷ 3.6 = 20 m/s. Back-check: 20 × 3.6 = 72 ✓.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.CNV.08",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Rates with mixed units (km/h ↔ m/s)",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 5,
      "id": "MEA.CNV.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Rates with mixed units (km/h ↔ m/s): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Rates with mixed units (km/h ↔ m/s) into personal, civic/data, and career contexts.",
      "content": "Personal — Your 100-m sprint in 16 s is 6.25 m/s — ×3.6 gives 22.5 km/h, faster than a 14-km/h jogger. · Civic/Data — A 30-km/h school-zone limit is about 8.3 m/s: that's how many meters a car covers in one distracted second. · Career — A wind-turbine tech logs 12 m/s wind as 43.2 km/h and checks it against the 90-km/h shutdown spec.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.CNV.08",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Rates with mixed units (km/h ↔ m/s)",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 5,
      "id": "MEA.CNV.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Rates with mixed units (km/h ↔ m/s): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Rates with mixed units (km/h ↔ m/s).",
      "content": "Accuracy — 8 items: 4 conversions each direction, 2 compare-speeds-in-different-units, 2 in-context rate reads; ≥7/8 · Explanation — \"Ada converts 36 km/h by multiplying by 3.6 and reports 129.6 m/s. Which direction does ×3.6 actually go, and how does a sanity check (cars don't outrun jets) flag it?\" (36 km/h = 10 m/s.) · Transfer — A hose fills 0.5 L/s — convert to L/min (30) to compare against the pool pump's spec.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.CNV.09",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Currency conversion",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 0,
      "id": "MEA.CNV.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Currency conversion: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Currency conversion.",
      "content": "An exchange rate is a unit price for money itself — multiply by the rate to leave your currency, divide to come back — and because rates move daily, every converted answer implicitly carries a date.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.CNV.09",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Currency conversion",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 0,
      "id": "MEA.CNV.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Currency conversion: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Currency conversion.",
      "content": "Rate: 1 USD = 0.90 EUR. A 40-USD game in euros: 40 × 0.90 = 36 EUR. A 27-EUR shirt in dollars: 27 ÷ 0.90 = 30 USD.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.CNV.09",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Currency conversion",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 0,
      "id": "MEA.CNV.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Currency conversion: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Currency conversion into personal, civic/data, and career contexts.",
      "content": "Personal — Trip budget: at 1 USD = 150 JPY, your 20 USD of souvenir money is 3000 JPY. · Civic/Data — Compare world lunch prices for a class project: a 600-JPY meal is about 4 USD at 150 JPY/USD. · Career — A freelance artist invoices a UK client 200 GBP and records it as 250 USD at 1 GBP = 1.25 USD.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.CNV.09",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Currency conversion",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 0,
      "id": "MEA.CNV.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Currency conversion: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Currency conversion.",
      "content": "Accuracy — 8 items: 4 each-direction conversions at a given rate, 2 price comparisons across currencies, 2 round-trip checks; ≥7/8 · Explanation — \"At 1 USD = 0.90 EUR, Tam converts 18 EUR to dollars as 18 × 0.90 = 16.20. Use 'the euro is the pricier unit here' to argue 18 EUR must be more than 18 USD, then fix it (18 ÷ 0.90 = 20).\" · Transfer — In-game economy: 240 gems cost $3.00, so a 400-gem item costs about $5.00 (rate $0.0125/gem).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.CNV.10",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Conversion error-spotting",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 6,
      "id": "MEA.CNV.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Conversion error-spotting: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Conversion error-spotting.",
      "content": "Almost every conversion mistake is one of three: flipped direction (×/÷ swapped), wrong factor (100 vs 1000, 60 vs 100), or a skipped chain link — and a habit of estimating plus writing units catches all three.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.CNV.10",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Conversion error-spotting",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 6,
      "id": "MEA.CNV.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Conversion error-spotting: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Conversion error-spotting.",
      "content": "Claim: \"2.5 kg = 250 g.\" Direction check: grams are smaller, so the count must grow ×1000 → 2500 g. The claim used ×100 — wrong factor, caught.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.CNV.10",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Conversion error-spotting",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 6,
      "id": "MEA.CNV.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Conversion error-spotting: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Conversion error-spotting into personal, civic/data, and career contexts.",
      "content": "Personal — Proofread a younger sibling's conversion homework and name which of the three error types each miss is. · Civic/Data — A flyer announces the new bike path as \"3 km (about 30 miles)\"; flag it and publish the fix (≈1.9 mi). · Career — A catering sheet converts 1.5 kg of rice to \"150 g\"; the chef catches the missing zero before the pots go on.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.CNV.10",
      "clusterId": "MEA.CNV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Conversion error-spotting",
      "clusterTitle": "Unit Conversion (MEA.CNV)",
      "band": "4–7",
      "hardLevel": 6,
      "id": "MEA.CNV.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Conversion error-spotting: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Conversion error-spotting.",
      "content": "Accuracy — 8 audit items: 5 flawed conversions to identify and fix, 3 correct ones to confirm (saying \"correct\" must be earned); ≥7/8 · Explanation — \"Diagnose '90 min = 1.9 h': name the error family (decimal habit applied to base-60), give the fix (1.5 h), and state the estimate that would have flagged it ('an hour and a half').\" · Transfer — Audit a space-camp handbook line: \"2 days = 2880 min\" — verify it's actually right (2 × 24 × 60 = 2880 ✓) and defend the confirmation.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.MON.01",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Coin and bill values",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 0,
      "id": "MEA.MON.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Coin and bill values: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Coin and bill values.",
      "content": "Each coin and bill has a fixed value that has nothing to do with its size — a dime is worth 10¢ even though it's smaller than a nickel; value is read from the money, not guessed from its look.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.MON.01",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Coin and bill values",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 0,
      "id": "MEA.MON.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Coin and bill values: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Coin and bill values.",
      "content": "One dime and one nickel: 10¢ + 5¢ = 15¢ — two coins, fifteen cents.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.MON.01",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Coin and bill values",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 0,
      "id": "MEA.MON.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Coin and bill values: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Coin and bill values into personal, civic/data, and career contexts.",
      "content": "Personal — Sort the family coin jar into piles by value, not by color or size. · Civic/Data — At the class store, pick the single coin that exactly buys the 25¢ eraser. · Career — A farm-stand helper learns which bill is which before the weekend market opens.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.MON.01",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Coin and bill values",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 0,
      "id": "MEA.MON.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Coin and bill values: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Coin and bill values.",
      "content": "Accuracy — 8 items: name the value of 4 coins/bills, pick the coin for a stated amount (2), judge 2 \"worth the same?\" pairs; ≥7/8 · Explanation — \"Nia says the nickel is worth more than the dime because it's bigger. Why is she wrong, and where should she look instead?\" · Transfer — Match unfamiliar board-game money to its values using only the printed numbers.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.MON.02",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Counting mixed money",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 1,
      "id": "MEA.MON.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Counting mixed money: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Counting mixed money.",
      "content": "Count mixed coins by starting from the largest value and skip-counting downward — 25, 50, 60, 65, 66 — switching the count-by number each time the coin type changes.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.MON.02",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Counting mixed money",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 1,
      "id": "MEA.MON.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Counting mixed money: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Counting mixed money.",
      "content": "2 quarters, 1 dime, 3 pennies: 25, 50 → 60 → 61, 62, 63. Total 63¢.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.MON.02",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Counting mixed money",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 1,
      "id": "MEA.MON.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Counting mixed money: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Counting mixed money into personal, civic/data, and career contexts.",
      "content": "Personal — Count your tooth-fairy stash to see whether it has reached one dollar yet. · Civic/Data — Count the class penny-drive jar and report the total for the food-bank tally board. · Career — A cashier-in-training counts the coin tray before the shift and records the starting amount.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.MON.02",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Counting mixed money",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 1,
      "id": "MEA.MON.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Counting mixed money: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Counting mixed money.",
      "content": "Accuracy — 8 items: 5 mixed-coin counts, 2 coin-and-bill counts, 1 \"who has more\" comparison; ≥7/8 · Explanation — \"Why is it easier to start counting with the quarters instead of the pennies? Show both orders for a quarter and two pennies.\" · Transfer — Total a written list with no coin pictures: 4 dimes, 2 nickels, 7 pennies (57¢).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.MON.03",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Making amounts multiple ways",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 2,
      "id": "MEA.MON.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Making amounts multiple ways: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Making amounts multiple ways.",
      "content": "The same amount can be built from many different coin sets — equivalence lives in the total value, and \"fewest coins\" is just one special solution among the valid ones.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.MON.03",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Making amounts multiple ways",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 2,
      "id": "MEA.MON.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Making amounts multiple ways: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Making amounts multiple ways.",
      "content": "30¢ three ways: quarter + nickel (2 coins), 3 dimes (3 coins), 6 nickels (6 coins) — all worth exactly 30¢; fewest is 2.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.MON.03",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Making amounts multiple ways",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 2,
      "id": "MEA.MON.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Making amounts multiple ways: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Making amounts multiple ways into personal, civic/data, and career contexts.",
      "content": "Personal — The vending machine needs exact change of 75¢; find which combinations in your pocket work. · Civic/Data — The class-store till is out of quarters; build 50¢ for the price tag a different way. · Career — A bake-sale cashier makes 45¢ when the dime tray runs empty (quarter + 4 nickels, or 9 nickels).",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.MON.03",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Making amounts multiple ways",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 2,
      "id": "MEA.MON.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Making amounts multiple ways: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Making amounts multiple ways.",
      "content": "Accuracy — 8 items: build a stated amount two different ways (4), fewest-coins challenges (2), \"is this set worth 60¢?\" checks (2); ≥7/8 · Explanation — \"Kai says 5 coins are always worth more than 3 coins. Find a counterexample and explain what Kai mixed up.\" (3 quarters = 75¢ beats 5 pennies = 5¢.) · Transfer — Make 8 points from 1-, 2-, and 5-point game tokens in two different ways.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.MON.04",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Giving change",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 3,
      "id": "MEA.MON.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Giving change: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Giving change.",
      "content": "Change is the gap between the price and what was handed over — count up from the price to the payment, and the coins you name along the way are the change.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.MON.04",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Giving change",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 3,
      "id": "MEA.MON.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Giving change: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Giving change.",
      "content": "Price 67¢, paid with $1: 67 → 70 (3 pennies), 70 → 75 (1 nickel), 75 → 100 (1 quarter). Change: 33¢.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.MON.04",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Giving change",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 3,
      "id": "MEA.MON.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Giving change: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Giving change into personal, civic/data, and career contexts.",
      "content": "Personal — Buy an 85¢ juice with a dollar and check you really got 15¢ back. · Civic/Data — You run the school-fair ring-toss booth with no calculator — count change back out loud for each player. · Career — A food-truck helper counts back change to the customer coin by coin so both can hear it's right.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.MON.04",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Giving change",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 3,
      "id": "MEA.MON.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Giving change: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Giving change.",
      "content": "Accuracy — 8 items: 4 count-up change problems, 2 fewest-coin change, 2 verify-the-change checks; ≥7/8 · Explanation — \"The register says change due 28¢ and Ray hands over 3 dimes 'because it's close.' What's wrong, and what's the correct fewest-coin change?\" (Quarter + 3 pennies.) · Transfer — An arcade card holds 50 tokens; a game costs 36 — count up to find what's left (14).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.MON.05",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Money notation with decimals",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 4,
      "id": "MEA.MON.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Money notation with decimals: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Money notation with decimals.",
      "content": "Dollars-and-cents is place value in disguise: the decimal point separates whole dollars from hundredths of a dollar, so $3.07 means 3 dollars and 7 hundredths — and cents always take two digits.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.MON.05",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Money notation with decimals",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 4,
      "id": "MEA.MON.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Money notation with decimals: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Money notation with decimals.",
      "content": "\"Three dollars and forty cents\" is $3.40. And 305¢ = $3.05, because the 5¢ is 5 hundredths — not $3.5 or $3.50.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.MON.05",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Money notation with decimals",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 4,
      "id": "MEA.MON.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Money notation with decimals: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Money notation with decimals into personal, civic/data, and career contexts.",
      "content": "Personal — Keep a savings notebook where $3.50 and $3.05 can never be confused again. · Civic/Data — Compare price signs around town: show that \"$.99\" and \"99¢\" say the same thing. · Career — A shop owner fixes the menu typo \"$4.5\" to \"$4.50\" and explains the missing digit to the new hire.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.MON.05",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Money notation with decimals",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 4,
      "id": "MEA.MON.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Money notation with decimals: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Money notation with decimals.",
      "content": "Accuracy — 8 items: write 4 spoken amounts in symbols, convert 2 cent-amounts to dollars, read 2 amounts aloud; ≥7/8 · Explanation — \"A classmate writes seven dollars and five cents as $7.5. Why does that notation mislead, and what should it be?\" ($7.05 — the 5 must sit in the hundredths place.) · Transfer — On a printed receipt, identify which line says eight dollars and eight cents: $8.08 or $8.80.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.MON.06",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Adding and subtracting money",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 5,
      "id": "MEA.MON.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Adding and subtracting money: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Adding and subtracting money.",
      "content": "Money adds and subtracts like any decimal: line up the point so dollars meet dollars and cents meet cents, and regroup knowing 100¢ makes $1.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.MON.06",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Adding and subtracting money",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 5,
      "id": "MEA.MON.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Adding and subtracting money: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Adding and subtracting money.",
      "content": "$5.25 − $1.80 = $3.45. Check by adding back: $1.80 + $3.45 = $5.25 ✓.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.MON.06",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Adding and subtracting money",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 5,
      "id": "MEA.MON.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Adding and subtracting money: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Adding and subtracting money into personal, civic/data, and career contexts.",
      "content": "Personal — Update your pocket-money ledger: started with $7.50, earned $2.25, spent $4.00 — $5.75 left. · Civic/Data — At the book fair, $6.99 + $3.50 = $10.49, so your $10 bill won't cover both books. · Career — A café worker totals a $2.75 cookie and a $4.50 smoothie to $7.25 before ringing it up.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.MON.06",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Adding and subtracting money",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 5,
      "id": "MEA.MON.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Adding and subtracting money: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Adding and subtracting money.",
      "content": "Accuracy — 8 items: 3 sums, 3 differences, 2 two-step ledger problems; ≥7/8 · Explanation — \"Jo computes $3.20 + $1.9 as $3.39, treating the 9 as 9 cents. Find the flaw.\" ($1.9 means $1.90, so the total is $5.10 — line up the point, not the last digits.) · Transfer — A $25.00 gift card after a $13.45 purchase: how much remains ($11.55)?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.MON.07",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Multiplying money (unit price × quantity)",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 6,
      "id": "MEA.MON.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Multiplying money (unit price × quantity): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Multiplying money (unit price × quantity).",
      "content": "Total cost = price per item × number of items; multiply the cents like whole numbers, then place the decimal back — and a quick estimate tells you where it belongs.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.MON.07",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Multiplying money (unit price × quantity)",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 6,
      "id": "MEA.MON.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Multiplying money (unit price × quantity): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Multiplying money (unit price × quantity).",
      "content": "Stickers cost $0.35 each; 6 stickers: 35¢ × 6 = 210¢ = $2.10.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.MON.07",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Multiplying money (unit price × quantity)",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 6,
      "id": "MEA.MON.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Multiplying money (unit price × quantity): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Multiplying money (unit price × quantity) into personal, civic/data, and career contexts.",
      "content": "Personal — Four friends each want a $1.25 slushy — does a $5 bill exactly cover it? (Yes: $5.00.) · Civic/Data — Class party math: 8 juice boxes at $0.60 each is $4.80 — inside the $5 budget. · Career — A pet sitter invoices 5 visits at $6.50 per visit: $32.50.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.MON.07",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Multiplying money (unit price × quantity)",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 6,
      "id": "MEA.MON.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Multiplying money (unit price × quantity): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Multiplying money (unit price × quantity).",
      "content": "Accuracy — 8 items: 4 unit-price totals, 2 \"enough money?\" judgments, 2 multi-item carts; ≥7/8 · Explanation — \"Max computes $0.35 × 6 and writes $21.00. Use 'each sticker is less than half a dollar' to argue why the answer must be near $2, then place the decimal correctly.\" · Transfer — At the post office, 7 stamps at $0.68 each cost $4.76.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.MON.08",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Budgets — income vs spending",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 7,
      "id": "MEA.MON.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Budgets — income vs spending: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Budgets — income vs spending.",
      "content": "A budget lines up money in against money out over the same period — you can't plan to spend what doesn't come in, and the difference is either savings or a shortfall to fix.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.MON.08",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Budgets — income vs spending",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 7,
      "id": "MEA.MON.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Budgets — income vs spending: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Budgets — income vs spending.",
      "content": "Week: income $10 allowance + $6 chores = $16. Spending: $4.50 movie + $3.25 snacks = $7.75. Left over: $16 − $7.75 = $8.25.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.MON.08",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Budgets — income vs spending",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 7,
      "id": "MEA.MON.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Budgets — income vs spending: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Budgets — income vs spending into personal, civic/data, and career contexts.",
      "content": "Personal — Split a $20 birthday-gift budget across presents for two friends without going over. · Civic/Data — The class party fund is $30: cups $4.75 + juice $9.60 + cake $12 = $26.35, leaving $3.65 spare. · Career — A kid-run dog-walking business compares the month's earnings against leash repairs and treat costs to find its profit.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.MON.08",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Budgets — income vs spending",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 7,
      "id": "MEA.MON.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Budgets — income vs spending: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Budgets — income vs spending.",
      "content": "Accuracy — 8 items: 4 income/spending totals, 2 surplus-or-shortfall judgments, 2 \"what can be cut?\" adjustments; ≥7/8 · Explanation — \"Pat plans $15 of spending against $12 of income and says 'close enough.' Why is close not fine in a budget, and what are Pat's two ways out?\" (Cut spending or raise income.) · Transfer — Field-trip sheet: bus $45 + museum tickets $5.50 × 9 students = $94.50 against a $100 grant — fits with $5.50 spare.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.MON.09",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Comparing prices and value packs",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 8,
      "id": "MEA.MON.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Comparing prices and value packs: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Comparing prices and value packs.",
      "content": "To compare deals, put prices on the same footing — cost per one item (or per 100 g); the lower per-unit price is the better value, but only if you'll actually use it all.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.MON.09",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Comparing prices and value packs",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 8,
      "id": "MEA.MON.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Comparing prices and value packs: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Comparing prices and value packs.",
      "content": "A 6-pack of yogurt costs $4.20: $4.20 ÷ 6 = $0.70 per cup, versus $0.80 for a single — the pack saves 10¢ a cup.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.MON.09",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Comparing prices and value packs",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 8,
      "id": "MEA.MON.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Comparing prices and value packs: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Comparing prices and value packs into personal, civic/data, and career contexts.",
      "content": "Personal — Decide between two bag sizes of your favorite snack using price per packet, not the splashier label. · Civic/Data — Supply drive: 10 glue sticks for $7.00 (70¢ each) vs singles at 65¢ — the \"bulk deal\" loses. · Career — A snack-bar manager picks the napkin supplier: 500 for $6.00 (1.2¢ each) vs 800 for $8.80 (1.1¢ each).",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.MON.09",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Comparing prices and value packs",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 8,
      "id": "MEA.MON.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Comparing prices and value packs: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Comparing prices and value packs.",
      "content": "Accuracy — 8 items: 4 per-unit comparisons, 2 per-100 g comparisons, 2 \"better buy?\" with a leftover-waste twist; ≥7/8 · Explanation — \"The 24-pack costs $10.80 and the 12-pack costs $4.80. Sam says 'bigger pack, better deal — always.' Check per item (45¢ vs 40¢) and explain when Sam's rule fails.\" · Transfer — Raisins: 250 g for $2.00 (80¢ per 100 g) vs 400 g for $3.60 (90¢ per 100 g) — smaller bag wins.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.MON.10",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Saving plans and goals",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 9,
      "id": "MEA.MON.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Saving plans and goals: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Saving plans and goals.",
      "content": "A saving plan turns a goal into steady arithmetic: goal ÷ amount-per-week = weeks needed (rounding up, because a partial week doesn't buy it), or amount × weeks = where you'll be.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.MON.10",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Saving plans and goals",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 9,
      "id": "MEA.MON.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Saving plans and goals: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Saving plans and goals.",
      "content": "Goal: a $24 skateboard deck, saving $3 per week: 24 ÷ 3 = 8 weeks. Already have $6? (24 − 6) ÷ 3 = 6 weeks.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.MON.10",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Saving plans and goals",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 9,
      "id": "MEA.MON.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Saving plans and goals: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Saving plans and goals into personal, civic/data, and career contexts.",
      "content": "Personal — Saving $2.50 a week toward $30 headphones takes 12 weeks — mark the date on your calendar. · Civic/Data — The class saves 5¢ bottle deposits toward a $40 garden bed: that's 800 bottles, tracked on a chart. · Career — A paper-route earner banks $7.50 weekly toward a $90 bike: 12 weeks to payday.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.MON.10",
      "clusterId": "MEA.MON",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Saving plans and goals",
      "clusterTitle": "Money & Currency (MEA.MON)",
      "band": "K–5",
      "hardLevel": 9,
      "id": "MEA.MON.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Saving plans and goals: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Saving plans and goals.",
      "content": "Accuracy — 8 items: 4 weeks-to-goal, 2 total-after-n-weeks, 2 plans with a head start; ≥7/8 · Explanation — \"Ana needs $25 and saves $4 a week. 25 ÷ 4 = 6 R1, and Ana announces '6 weeks.' Why does the remainder mean the answer is 7?\" · Transfer — A fundraiser thermometer shows a $180 goal with $22.50 raised per bake sale — how many sales fill it (8)?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.PAR.01",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Perimeter by counting and adding",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 0,
      "id": "MEA.PAR.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Perimeter by counting and adding: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Perimeter by counting and adding.",
      "content": "Perimeter is the total distance around a shape's boundary — walk the rim and add every side length exactly once, skipping none and double-counting none.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.PAR.01",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Perimeter by counting and adding",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 0,
      "id": "MEA.PAR.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Perimeter by counting and adding: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Perimeter by counting and adding.",
      "content": "A triangular garden bed with sides 7 m, 9 m, and 12 m: 7 + 9 + 12 = 28 m of edging.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.PAR.01",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Perimeter by counting and adding",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 0,
      "id": "MEA.PAR.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Perimeter by counting and adding: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Perimeter by counting and adding into personal, civic/data, and career contexts.",
      "content": "Personal — Total the five sides of your pentagon photo collage to see how much washi tape to peel. · Civic/Data — The L-shaped community sandbox plan labels six sides; add them for the fencing order. · Career — A fence installer quotes a job by summing the side lengths off the survey sketch.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.PAR.01",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Perimeter by counting and adding",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 0,
      "id": "MEA.PAR.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Perimeter by counting and adding: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Perimeter by counting and adding.",
      "content": "Accuracy — 8 items: 4 add-the-labeled-sides (including irregular shapes), 2 find-the-missing-side given perimeter, 2 count-edges-on-grid figures; ≥7/8 · Explanation — \"On grid paper, Pia counts the squares touching the border and calls that perimeter. Why do unit lengths along the rim — not squares — measure perimeter?\" · Transfer — Measure the six sides of a hexagonal game tile with a ruler and total the distance around it.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.PAR.02",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Perimeter formulas for rectangles",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 1,
      "id": "MEA.PAR.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Perimeter formulas for rectangles: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Perimeter formulas for rectangles.",
      "content": "A rectangle's opposite sides match, so P = 2(l + w): add length and width once, then double — a shortcut that packages the four-side sum.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.PAR.02",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Perimeter formulas for rectangles",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 1,
      "id": "MEA.PAR.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Perimeter formulas for rectangles: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Perimeter formulas for rectangles.",
      "content": "A notebook 28 cm by 21 cm: 28 + 21 = 49; 2 × 49 = 98 cm around.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.PAR.02",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Perimeter formulas for rectangles",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 1,
      "id": "MEA.PAR.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Perimeter formulas for rectangles: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Perimeter formulas for rectangles into personal, civic/data, and career contexts.",
      "content": "Personal — Ribbon around the lid of a 30 cm × 20 cm gift box: 100 cm, so the 1-m roll just makes it. · Civic/Data — Chalk the boundary of the 18 m × 9 m school volleyball court: 54 m of line. · Career — A picture framer prices molding for a 40 cm × 50 cm frame: 180 cm plus corner waste.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.PAR.02",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Perimeter formulas for rectangles",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 1,
      "id": "MEA.PAR.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Perimeter formulas for rectangles: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Perimeter formulas for rectangles.",
      "content": "Accuracy — 8 items: 4 formula computations, 2 missing-side problems, 2 word problems with unit choices; ≥7/8 · Explanation — \"Leo computes P = 2l + w for a 10 m × 6 m room and gets 26 m. Why must the width be doubled too? Tie your answer to which sides a rectangle repeats.\" (True P = 32 m.) · Transfer — A dog pen needs P = 60 m of fence and one side must be 22 m: the other is (60 − 44) ÷ 2 = 8 m.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.PAR.03",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Area by counting unit squares",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 2,
      "id": "MEA.PAR.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Area by counting unit squares: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Area by counting unit squares.",
      "content": "Area is the count of unit squares that cover a region with no gaps and no overlaps — the unit is itself a square (cm², m²), which is why area numbers aren't lengths.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.PAR.03",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Area by counting unit squares",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 2,
      "id": "MEA.PAR.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Area by counting unit squares: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Area by counting unit squares.",
      "content": "An L-shaped sticker on cm grid paper covers rows of 4, 4, 5, and 5 full squares: 4 + 4 + 5 + 5 = 18 cm².",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.PAR.03",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Area by counting unit squares",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 2,
      "id": "MEA.PAR.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Area by counting unit squares: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Area by counting unit squares into personal, civic/data, and career contexts.",
      "content": "Personal — Trace your hand on grid paper and estimate its area: full squares plus half-squares paired up. · Civic/Data — On the playground plan's grid, estimate the pond's area by counting fulls and combining partials. · Career — A mosaic artist counts 1-cm tiles needed to fill a letter stencil before cutting any.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.PAR.03",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Area by counting unit squares",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 2,
      "id": "MEA.PAR.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Area by counting unit squares: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Area by counting unit squares.",
      "content": "Accuracy — 8 items: 4 exact counts (rectilinear), 2 estimates with partial squares, 2 compare-two-regions; ≥7/8 · Explanation — \"Why must the squares tile with no gaps or overlaps before the count means anything? What does an overlap do to the number?\" (Double-covered ground gets counted twice — the count inflates.) · Transfer — Estimate a maple leaf's area on cm grid paper for a science journal entry.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.PAR.04",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Area of rectangles (rows × columns)",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 3,
      "id": "MEA.PAR.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Area of rectangles (rows × columns): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Area of rectangles (rows × columns).",
      "content": "A rectangle's grid is rows of equal columns, so area = length × width — multiplication compresses the counting, and the units multiply too: cm × cm = cm².",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.PAR.04",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Area of rectangles (rows × columns)",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 3,
      "id": "MEA.PAR.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Area of rectangles (rows × columns): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Area of rectangles (rows × columns).",
      "content": "A 7 cm × 4 cm sticky note: 4 rows of 7 squares → 7 × 4 = 28 cm².",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.PAR.04",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Area of rectangles (rows × columns)",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 3,
      "id": "MEA.PAR.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Area of rectangles (rows × columns): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Area of rectangles (rows × columns) into personal, civic/data, and career contexts.",
      "content": "Personal — Compare your 9 in × 6 in tablet screen (54 in²) with a comic-book page to settle which is bigger. · Civic/Data — The new reading-corner rug is 4 m × 3 m: 12 m² of classroom floor gone soft. · Career — A tiler covers a 5 m × 2 m backsplash: 10 m² at 25 tiles per m² is 250 tiles.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.PAR.04",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Area of rectangles (rows × columns)",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 3,
      "id": "MEA.PAR.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Area of rectangles (rows × columns): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Area of rectangles (rows × columns).",
      "content": "Accuracy — 8 items: 4 direct computations, 2 missing-dimension problems, 2 unit-labeling checks; ≥7/8 · Explanation — \"Why does length × width count every unit square exactly once? Explain with rows and columns on a 5 × 3 grid — and why the unit is cm², not cm.\" · Transfer — A 72 m² rabbit pen has one side of 9 m; the other side must be 8 m.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.PAR.05",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Distinguishing perimeter from area",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 4,
      "id": "MEA.PAR.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Distinguishing perimeter from area: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Distinguishing perimeter from area.",
      "content": "Perimeter measures the rim (in m); area measures the covered surface (in m²) — same shape, two different questions, and one can grow while the other shrinks.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.PAR.05",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Distinguishing perimeter from area",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 4,
      "id": "MEA.PAR.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Distinguishing perimeter from area: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Distinguishing perimeter from area.",
      "content": "Two rectangles with P = 16: the 7 × 1 has area 7; the 4 × 4 has area 16 — equal perimeters, very different areas, so the measures move independently.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.PAR.05",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Distinguishing perimeter from area",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 4,
      "id": "MEA.PAR.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Distinguishing perimeter from area: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Distinguishing perimeter from area into personal, civic/data, and career contexts.",
      "content": "Personal — Walking the yard's edge vs mowing the whole lawn: name which measure each chore uses. · Civic/Data — The dog-park notice lists \"200 m of fencing\" and \"2500 m² of turf\" — match each number to its job. · Career — A painter bills by wall area but masks trim by length: both numbers live on one quote.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.PAR.05",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Distinguishing perimeter from area",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 4,
      "id": "MEA.PAR.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Distinguishing perimeter from area: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Distinguishing perimeter from area.",
      "content": "Accuracy — 8 items: 4 compute-both-for-one-shape, 2 which-measure-does-the-question-need, 2 equal-P-different-A puzzles; ≥7/8 · Explanation — \"Flaw: 'A 10 × 2 patio and a 6 × 6 patio need the same gravel — both have perimeter 24.' What got confused, and which patio truly needs more gravel?\" (Gravel is area: 36 m² vs 20 m².) · Transfer — In a tiny-house brochure, tag each listed task — baseboard, carpet, seed, fence — as a perimeter or an area question.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.PAR.06",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Area of parallelograms",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 5,
      "id": "MEA.PAR.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Area of parallelograms: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Area of parallelograms.",
      "content": "Slice a triangle off one end of a parallelogram and slide it to the other end: a rectangle with the same base and height appears — so A = b × h, where h is the perpendicular height, never the slanted side.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.PAR.06",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Area of parallelograms",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 5,
      "id": "MEA.PAR.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Area of parallelograms: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Area of parallelograms.",
      "content": "Base 9 cm, height 4 cm, slant side 5 cm: A = 9 × 4 = 36 cm² — the 5 is bait.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.PAR.06",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Area of parallelograms",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 5,
      "id": "MEA.PAR.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Area of parallelograms: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Area of parallelograms into personal, civic/data, and career contexts.",
      "content": "Personal — Fabric for a rhombus kite panel with base 30 cm and height 20 cm: 600 cm². · Civic/Data — Angled parking spaces are parallelograms: base 2.5 m, perpendicular depth 5 m → 12.5 m² of asphalt each. · Career — A quilter cuts parallelogram strips and totals fabric by base × height per strip.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.PAR.06",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Area of parallelograms",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 5,
      "id": "MEA.PAR.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Area of parallelograms: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Area of parallelograms.",
      "content": "Accuracy — 8 items: 4 computations with a decoy slant side, 2 find-the-height, 2 on-grid verifications; ≥7/8 · Explanation — \"Why does the cut-and-slide move leave area unchanged, and why would multiplying by the slanted side overcount? Describe the rectangle the parallelogram becomes.\" · Transfer — A 54-cm² parallelogram sticker has base 9 cm: its height must be 6 cm.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.PAR.07",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Area of triangles",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 6,
      "id": "MEA.PAR.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Area of triangles: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Area of triangles.",
      "content": "Every triangle is exactly half of a parallelogram with the same base and height — two copies fit together — so A = ½bh, and any side can serve as base if paired with its own height.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.PAR.07",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Area of triangles",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 6,
      "id": "MEA.PAR.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Area of triangles: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Area of triangles.",
      "content": "Base 10 cm, height 6 cm: A = ½ × 10 × 6 = 30 cm².",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.PAR.07",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Area of triangles",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 6,
      "id": "MEA.PAR.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Area of triangles: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Area of triangles into personal, civic/data, and career contexts.",
      "content": "Personal — Felt for a triangular pennant with base 20 cm and height 30 cm: 300 cm². · Civic/Data — The community garden's triangular corner plot needs mulch — compute its area from the plan's base and height. · Career — A roofer figures siding for a gable end: base 8 m, height 3 m → 12 m².",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.PAR.07",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Area of triangles",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 6,
      "id": "MEA.PAR.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Area of triangles: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Area of triangles.",
      "content": "Accuracy — 8 items: 4 computations (one obtuse triangle with external height), 2 find-the-missing-base-or-height, 2 decoy-side items; ≥7/8 · Explanation — \"Why is the ½ in A = ½bh not optional? Show with two copies of a right triangle snapping together into a rectangle.\" · Transfer — A triangle drawn on a coordinate grid: read off base and height from the points, then compute the area.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.PAR.08",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Area of trapezoids and composite figures",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 7,
      "id": "MEA.PAR.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Area of trapezoids and composite figures: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Area of trapezoids and composite figures.",
      "content": "Complicated shapes decompose into rectangles and triangles whose areas you already know; the trapezoid shortcut A = ½(a + b)h is just \"average the parallel sides, times height.\"",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.PAR.08",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Area of trapezoids and composite figures",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 7,
      "id": "MEA.PAR.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Area of trapezoids and composite figures: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Area of trapezoids and composite figures.",
      "content": "Trapezoid with parallel sides 6 and 10, height 4: A = ½ × (6 + 10) × 4 = 32 cm². Decomposition check: 6 × 4 rectangle (24) plus two triangles totaling ½ × 4 × 4 (8) = 32 ✓.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.PAR.08",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Area of trapezoids and composite figures",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 7,
      "id": "MEA.PAR.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Area of trapezoids and composite figures: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Area of trapezoids and composite figures into personal, civic/data, and career contexts.",
      "content": "Personal — Split your L-shaped bedroom-plus-nook floor plan into two rectangles to size a rug. · Civic/Data — The plaza redesign is a rectangle plus a trapezoid — total the paving-stone area from the blueprint. · Career — A deck builder totals composite decking: main rectangle plus a trapezoidal bay window section.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.PAR.08",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Area of trapezoids and composite figures",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 7,
      "id": "MEA.PAR.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Area of trapezoids and composite figures: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Area of trapezoids and composite figures.",
      "content": "Accuracy — 8 items: 4 trapezoids, 4 composite figures (decompose or subtract); ≥7/8 · Explanation — \"Dev computes the 6-10-4 trapezoid as 6 × 10 = 60. What does ½(a + b) actually represent, and why does 60 overshoot?\" (It's the average width, 8, times height.) · Transfer — An arrow-shaped logo with given dimensions: decompose, compute each piece, and total the area.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.PAR.09",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Circumference of circles",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 8,
      "id": "MEA.PAR.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Circumference of circles: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Circumference of circles.",
      "content": "Circumference ÷ diameter comes out the same for every circle — that constant is π ≈ 3.14 — so C = πd = 2πr, and \"a bit more than 3 diameters around\" is the eternal sanity check.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.PAR.09",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Circumference of circles",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 8,
      "id": "MEA.PAR.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Circumference of circles: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Circumference of circles.",
      "content": "A bike wheel with d = 70 cm: C = π × 70 ≈ 3.14 × 70 = 219.8 ≈ 220 cm per revolution — so 10 turns roll about 22 m.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.PAR.09",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Circumference of circles",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 8,
      "id": "MEA.PAR.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Circumference of circles: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Circumference of circles into personal, civic/data, and career contexts.",
      "content": "Personal — One spin of your 12-cm-diameter scooter wheel carries you about 37.7 cm — count spins down the hall. · Civic/Data — Railing for the circular fountain, diameter 6 m: about 18.8 m of rail to order. · Career — A florist wraps ribbon around a circular bouquet box of diameter 20 cm: about 63 cm per box.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.PAR.09",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Circumference of circles",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 8,
      "id": "MEA.PAR.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Circumference of circles: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Circumference of circles.",
      "content": "Accuracy — 8 items: 4 find C from d or r, 2 find d from C, 2 multi-revolution distance problems; ≥7/8 · Explanation — \"Why is 'about 3 diameters' a sanity check for every circle, from a coin to a stadium? What does it mean that π doesn't change with size?\" · Transfer — Design a trundle wheel that clicks every meter: its diameter must be 100 ÷ π ≈ 31.8 cm.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.PAR.10",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Area of circles",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 9,
      "id": "MEA.PAR.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Area of circles: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Area of circles.",
      "content": "Slice a circle into thin wedges and lay them alternating: a near-rectangle appears with sides r and πr (half the circumference) — so A = πr², with the radius squared, not the diameter.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.PAR.10",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Area of circles",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 9,
      "id": "MEA.PAR.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Area of circles: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Area of circles.",
      "content": "A round table top with r = 0.6 m: A = π × 0.6² = 3.14 × 0.36 ≈ 1.13 m².",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.PAR.10",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Area of circles",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 9,
      "id": "MEA.PAR.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Area of circles: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Area of circles into personal, civic/data, and career contexts.",
      "content": "Personal — Pizza math: one 30-cm-diameter pizza (r = 15, A ≈ 707 cm²) beats two 20-cm pizzas (2 × 314 = 628 cm²). · Civic/Data — Paint for the circular crosswalk mural, r = 3 m: about 28.3 m² of surface. · Career — A patio installer prices pavers for a circular patio, r = 2.5 m: about 19.6 m².",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.PAR.10",
      "clusterId": "MEA.PAR",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Area of circles",
      "clusterTitle": "Perimeter & Area (MEA.PAR)",
      "band": "3–7",
      "hardLevel": 9,
      "id": "MEA.PAR.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Area of circles: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Area of circles.",
      "content": "Accuracy — 8 items: 4 find A from r or d (diameter given on half of them), 2 find r from A, 2 composite figures with half-circles; ≥7/8 · Explanation — \"Ali computes π × 10² as (3.14 × 10)² ≈ 986. Why does the exponent bind before the multiplication, and what does r² mean in the wedge-rectangle picture (sides r and πr)?\" (A = 314.) · Transfer — A center-pivot irrigation arm of 400 m waters A = π × 400² ≈ 502,400 m² — about 50 hectares.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.PRE.01",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Appropriate precision — how exact is exact enough?",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 0,
      "id": "MEA.PRE.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Appropriate precision — how exact is exact enough?: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Appropriate precision — how exact is exact enough?.",
      "content": "Precision is a choice driven by purpose: report the digits you can stand behind and that the decision actually needs — extra digits are noise, missing digits are risk.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.PRE.01",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Appropriate precision — how exact is exact enough?",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 0,
      "id": "MEA.PRE.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Appropriate precision — how exact is exact enough?: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Appropriate precision — how exact is exact enough?.",
      "content": "A measured route of 2.4385 km: the fun-run flyer says \"2.4 km\"; the course-certification form says \"2438.5 m.\" Same measurement, two correct reports for two purposes.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.PRE.01",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Appropriate precision — how exact is exact enough?",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 0,
      "id": "MEA.PRE.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Appropriate precision — how exact is exact enough?: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Appropriate precision — how exact is exact enough? into personal, civic/data, and career contexts.",
      "content": "Personal — Tell a friend \"about 3:15\" even though the app says 3:12:30 — and know when the exact version matters. · Civic/Data — The town's welcome sign rounds population to the nearest hundred while the census table keeps every digit; explain each choice. · Career — A carpenter quotes a cabinet cut to the millimeter but a fence run to the meter — and can say why.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.PRE.01",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Appropriate precision — how exact is exact enough?",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 0,
      "id": "MEA.PRE.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Appropriate precision — how exact is exact enough?: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Appropriate precision — how exact is exact enough?.",
      "content": "Accuracy — 8 items: 4 round-to-purpose tasks, 2 pick-the-sensible-report, 2 spot-overprecision; ≥7/8 · Explanation — \"Why is reporting a dog's mass as 18.4327 kg from a bathroom scale a kind of lie? Which digits does the scale actually know?\" · Transfer — One board length, three uses — craft project, furniture joint, firewood — choose and defend a precision for each.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.PRE.02",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Reading instruments to the smallest division",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 1,
      "id": "MEA.PRE.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Reading instruments to the smallest division: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Reading instruments to the smallest division.",
      "content": "An instrument's smallest marked division sets what you may honestly read: record to the nearest division, and accept that the last digit is where the uncertainty lives.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.PRE.02",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Reading instruments to the smallest division",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 1,
      "id": "MEA.PRE.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Reading instruments to the smallest division: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Reading instruments to the smallest division.",
      "content": "A millimeter ruler: the stick's end falls between 146 and 147 mm, nearer 147 → record 147 mm, understood as ±about half a millimeter.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.PRE.02",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Reading instruments to the smallest division",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 1,
      "id": "MEA.PRE.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Reading instruments to the smallest division: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Reading instruments to the smallest division into personal, civic/data, and career contexts.",
      "content": "Personal — Your kitchen scale ticks every 5 g: report the cereal portion as 185 g, not 183. · Civic/Data — Read the creek's flood gauge, marked in 10-cm bands, for the town's storm log. · Career — A science-lab technician reads the graduated cylinder at the meniscus, eye level, to the 1-mL line.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.PRE.02",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Reading instruments to the smallest division",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 1,
      "id": "MEA.PRE.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Reading instruments to the smallest division: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Reading instruments to the smallest division.",
      "content": "Accuracy — 8 items: 6 instrument reads with varied divisions (ruler, cylinder, dial), 2 state-the-uncertainty; ≥7/8 · Explanation — \"Two thermometers: marks every 1° versus every 0.1°. Why may the second report 36.4° while the first must say 36°? What would claiming 36.4° from the first imply?\" · Transfer — A tire-pressure gauge with 2-psi divisions: the honest reading between marks is 32 or 34, never 32.7.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.PRE.03",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Significant figures (intro)",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 2,
      "id": "MEA.PRE.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Significant figures (intro): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Significant figures (intro).",
      "content": "Significant figures count the digits that carry real measurement information: leading zeros never count (they only place the value), and trailing zeros count exactly when a decimal point vouches for them.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.PRE.03",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Significant figures (intro)",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 2,
      "id": "MEA.PRE.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Significant figures (intro): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Significant figures (intro).",
      "content": "0.00420 kg has 3 sig figs (4, 2, and the trailing 0). But 4200 m is ambiguous — 2, 3, or 4 sig figs — which writing it as 4.20 km (3 sig figs) resolves.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.PRE.03",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Significant figures (intro)",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 2,
      "id": "MEA.PRE.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Significant figures (intro): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Significant figures (intro) into personal, civic/data, and career contexts.",
      "content": "Personal — Your phone stopwatch shows 11.74 s for the sprint but the hand-timer says 12 s: how many digits does each deserve? · Civic/Data — A headline says \"23,000 attended\" — argue how many of those digits are real (about two). · Career — A surveyor records 145.30 m and means that trailing zero: the instrument vouched for it.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.PRE.03",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Significant figures (intro)",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 2,
      "id": "MEA.PRE.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Significant figures (intro): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Significant figures (intro).",
      "content": "Accuracy — 8 items: 4 count-the-sig-figs, 2 round-to-n-sig-figs, 2 rewrite-to-show-precision (4200 m → 4.20 km); ≥7/8 · Explanation — \"Why does 0.005 kg have one sig fig while 5.000 kg has four? Say what each zero is doing — placing the value or vouching for it.\" · Transfer — A chemistry-kit card asks for 0.082749 g rounded to 2 and to 3 sig figs: 0.083 and 0.0827.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.PRE.04",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Rounding rules in measurement",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 3,
      "id": "MEA.PRE.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Rounding rules in measurement: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Rounding rules in measurement.",
      "content": "Round once, at the end, to a precision the inputs support — rounding early plants errors that grow through the calculation, and chained rounding (2.45 → 2.5 → 3) is illegal.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.PRE.04",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Rounding rules in measurement",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 3,
      "id": "MEA.PRE.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Rounding rules in measurement: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Rounding rules in measurement.",
      "content": "Sides measured 4.6 and 3.8 cm: area = 4.6 × 3.8 = 17.48 → report 17 cm² (inputs had 2 sig figs). Rounding the inputs first gives 5 × 4 = 20 — about 14% too big.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.PRE.04",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Rounding rules in measurement",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 3,
      "id": "MEA.PRE.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Rounding rules in measurement: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Rounding rules in measurement into personal, civic/data, and career contexts.",
      "content": "Personal — Splitting a $17.35 bill three ways gives $5.7833…: round each share to $5.78 and decide who covers the leftover penny. · Civic/Data — The county sums trail segments at full precision, then rounds the total to \"12.7 mi\" — explain why not the other way around. · Career — A baker scaling a recipe by 2.5 keeps full grams through the math and rounds only the final flour weight.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.PRE.04",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Rounding rules in measurement",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 3,
      "id": "MEA.PRE.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Rounding rules in measurement: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Rounding rules in measurement.",
      "content": "Accuracy — 8 items: 4 compute-then-round tasks, 2 early-vs-late rounding comparisons, 2 round-half cases; ≥7/8 · Explanation — \"A student rounds 2.45 to 2.5, then to 3, 'rounding twice.' Why is chained rounding illegal, and what is 2.45 to the nearest whole?\" (2 — each rounding must start from the original.) · Transfer — Three lap times 41.27, 39.84, 40.55 s: total 121.66 → post 121.7 s, one decimal like the inputs.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.PRE.05",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Absolute error and tolerance",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 4,
      "id": "MEA.PRE.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Absolute error and tolerance: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Absolute error and tolerance.",
      "content": "Absolute error = |measured − true|, in the measurement's own units; a tolerance writes the allowed band as target ± allowance, and \"in spec\" simply means inside the band.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.PRE.05",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Absolute error and tolerance",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 4,
      "id": "MEA.PRE.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Absolute error and tolerance: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Absolute error and tolerance.",
      "content": "Bolt spec 50 mm ± 0.5 mm → acceptable range 49.5 to 50.5 mm. A bolt measuring 50.42 mm has error |50.42 − 50| = 0.42 ≤ 0.5 — it passes.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.PRE.05",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Absolute error and tolerance",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 4,
      "id": "MEA.PRE.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Absolute error and tolerance: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Absolute error and tolerance into personal, civic/data, and career contexts.",
      "content": "Personal — Your bake-sale bags say 200 g ± 10 g; a spot check at 193 g is in spec with 7 g of error. · Civic/Data — The fair's pumpkin-guess contest scores by absolute error: your 8.2 kg against a true 8.9 kg scores 0.7. · Career — A 3-D-printing technician rejects any bracket outside 120 ± 1 mm before it reaches assembly.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.PRE.05",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Absolute error and tolerance",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 4,
      "id": "MEA.PRE.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Absolute error and tolerance: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Absolute error and tolerance.",
      "content": "Accuracy — 8 items: 4 compute-error-and-judge-spec, 2 build-the-range-from-tolerance, 2 closest-guess rankings; ≥7/8 · Explanation — \"Two readings: 10.2 cm when the truth is 10, and 99.8 cm when the truth is 100. Same 0.2-cm error — are the mistakes equally serious? Why might the size of the thing matter?\" · Transfer — Comfort band 21 ± 1.5 °C: which of 19.2, 22.4, 19.6 °C is out of spec? (19.2 — error 1.8.)",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.PRE.06",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Relative error and percent error",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 5,
      "id": "MEA.PRE.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Relative error and percent error: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Relative error and percent error.",
      "content": "Relative error = absolute error ÷ true (accepted) value — it sizes a mistake against the thing measured, and ×100 gives percent error, which lets errors on unlike quantities be compared fairly.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.PRE.06",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Relative error and percent error",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 5,
      "id": "MEA.PRE.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Relative error and percent error: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Relative error and percent error.",
      "content": "A rope measured 9.6 m when it's truly 10.0 m: absolute error 0.4 m; relative error 0.4 ÷ 10 = 0.04 → 4% error.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.PRE.06",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Relative error and percent error",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 5,
      "id": "MEA.PRE.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Relative error and percent error: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Relative error and percent error into personal, civic/data, and career contexts.",
      "content": "Personal — Jellybean jar: your guess 410 vs actual 500 is 18% off; your friend's 460 is 8% — closer in the way that counts. · Civic/Data — Forecast said 30 mm of rain, the gauge caught 24: |30 − 24| ÷ 24 = 25% error on the actual. · Career — A quality engineer compares 2 mm of error on a 4-m beam (0.05%) with 2 mm on a 10-cm bracket (2%) — same millimeters, 40× the severity.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.PRE.06",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Relative error and percent error",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 5,
      "id": "MEA.PRE.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Relative error and percent error: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Relative error and percent error.",
      "content": "Accuracy — 8 items: 4 percent-error computations, 2 compare-two-errors fairly, 2 absolute-vs-relative judgment calls; ≥7/8 · Explanation — \"Why does percent error divide by the true value and not by your own measurement? What breaks if everyone divides by their own guess?\" (Answers stop being comparable — and bad guesses flatter themselves.) · Transfer — Science fair: density measured 0.92 g/cm³ against an accepted 1.00 → 8% error; inside the rubric's 10% bar?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.PRE.07",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Accumulated error in multi-step work",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 6,
      "id": "MEA.PRE.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Accumulated error in multi-step work: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Accumulated error in multi-step work.",
      "content": "Errors travel: when measurements are added, their worst-case absolute errors add too, and early rounding compounds through later steps — so carry full digits and round once.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.PRE.07",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Accumulated error in multi-step work",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 6,
      "id": "MEA.PRE.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Accumulated error in multi-step work: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Accumulated error in multi-step work.",
      "content": "Three boards, each 2.0 m ± 0.05 m, laid end to end: nominal 6.0 m, but worst case ±0.15 m — the uncertainty tripled even though each board looked tight.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.PRE.07",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Accumulated error in multi-step work",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 6,
      "id": "MEA.PRE.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Accumulated error in multi-step work: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Accumulated error in multi-step work into personal, civic/data, and career contexts.",
      "content": "Personal — Summing three measured wall gaps for one shelf board — and why the cut needs wiggle room. · Civic/Data — A relay's four hand-timed splits, each ±0.2 s, explain why their sum can miss the official time by up to 0.8 s. · Career — A cabinetmaker overcuts each of six drawer fronts by 1 mm; across the bank that's a visible 6-mm gap.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.PRE.07",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Accumulated error in multi-step work",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 6,
      "id": "MEA.PRE.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Accumulated error in multi-step work: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Accumulated error in multi-step work.",
      "content": "Accuracy — 8 items: 4 worst-case bands for sums, 2 early-vs-late rounding chains, 2 how-many-steps-until-it-matters; ≥7/8 · Explanation — \"Flaw: 'Each of our five steps was off by at most 2%, so the final answer is off by at most 2%.' Argue the direction of the truth without computing exactly.\" · Transfer — Scaling a recipe ×8 after rounding flour to the nearest 10 g first: the ±5 g becomes ±40 g — enough to change the bread.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.PRE.08",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Upper and lower bounds",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 7,
      "id": "MEA.PRE.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Upper and lower bounds: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Upper and lower bounds.",
      "content": "A value rounded to the nearest unit hides an interval: \"36 cm to the nearest cm\" means 35.5 ≤ true < 36.5 — bounds drag that hidden interval into the open before you build on the number.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.PRE.08",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Upper and lower bounds",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 7,
      "id": "MEA.PRE.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Upper and lower bounds: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Upper and lower bounds.",
      "content": "Shelf \"36 cm\" and gap \"36 cm,\" both to the nearest cm: the shelf could be 36.4 and the gap 35.6 — the fit is not guaranteed.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.PRE.08",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Upper and lower bounds",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 7,
      "id": "MEA.PRE.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Upper and lower bounds: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Upper and lower bounds into personal, civic/data, and career contexts.",
      "content": "Personal — Your bag weighs \"25 kg\" on a nearest-kg scale against a hard 25-kg airline limit — it might truly be 25.4. · Civic/Data — A car logged at 50 km/h (nearest km/h) in a 50 zone: explain why enforcement margins exist. · Career — An architect specs clearance around \"900 mm\" door parts because each may really be 899.5 to 900.5.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.PRE.08",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Upper and lower bounds",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 7,
      "id": "MEA.PRE.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Upper and lower bounds: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Upper and lower bounds.",
      "content": "Accuracy — 8 items: 4 state-the-bounds, 2 will-it-surely-fit judgments, 2 bounds-after-addition; ≥7/8 · Explanation — \"Why is the interval written 35.5 ≤ x < 36.5, with ≤ on one side and < on the other? Which number would round up to 37 instead?\" (36.5, under the half-up convention.) · Transfer — Four fence panels, each \"2.0 m\" to the nearest 0.1 m: the total lies in [7.8, 8.2) — so a 7.9-m gap is not surely spanned.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.PRE.09",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Precision in recipes, medicine, and manufacturing",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 8,
      "id": "MEA.PRE.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Precision in recipes, medicine, and manufacturing: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Precision in recipes, medicine, and manufacturing.",
      "content": "Fields set precision by consequence: a stew forgives ±10 g, machined parts hold ±0.1 mm, pharmacy-grade work is tighter still — matching the tolerance to the stakes is the real judgment skill.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.PRE.09",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Precision in recipes, medicine, and manufacturing",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 8,
      "id": "MEA.PRE.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Precision in recipes, medicine, and manufacturing: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Precision in recipes, medicine, and manufacturing.",
      "content": "Cookie flour at 250 g ± 10 g is a 4% tolerance — fine. A machine bushing at 25 mm ± 0.1 mm is 0.4% — ten times stricter, because parts must interchange.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.PRE.09",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Precision in recipes, medicine, and manufacturing",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 8,
      "id": "MEA.PRE.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Precision in recipes, medicine, and manufacturing: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Precision in recipes, medicine, and manufacturing into personal, civic/data, and career contexts.",
      "content": "Personal — Doubling brownies: flour forgives sloppiness, but ±2 g on 4 g of baking soda is a 50% error — the small ingredients bite. · Civic/Data — Why inspectors seal the farmers'-market scales yearly: tiny per-sale errors scale to real money across a season. · Career — A pharmacy technician's balance reads to 0.001 g while the bakery's reads to 1 g — describe the stakes ladder that explains the gap (no dosing math).",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.PRE.09",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Precision in recipes, medicine, and manufacturing",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 8,
      "id": "MEA.PRE.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Precision in recipes, medicine, and manufacturing: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Precision in recipes, medicine, and manufacturing.",
      "content": "Accuracy — 8 items: 4 express-tolerances-as-percents, 2 rank-contexts-by-strictness, 2 pick-the-instrument-for-the-job; ≥7/8 · Explanation — \"A 5-g error: trivial in a 2-kg stew (0.25%), ruinous in a 50-g perfume formula (10%). Same grams — what changed? Use relative error to say it precisely.\" · Transfer — Draft tolerances for a novel spec sheet — skateboard bearing diameter, hoodie length, juice-bottle fill — and defend each choice.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.PRE.10",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Reporting measurements honestly",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 9,
      "id": "MEA.PRE.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Reporting measurements honestly: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Reporting measurements honestly.",
      "content": "An honest report carries the value, its units, its precision (sig figs or ±), and how it was measured — never more digits than the method supports, never hiding the uncertainty that exists.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.PRE.10",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Reporting measurements honestly",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 9,
      "id": "MEA.PRE.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Reporting measurements honestly: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Reporting measurements honestly.",
      "content": "A plank measured with a millimeter tape: report \"1.247 m ± 0.001 m (steel tape)\" — not \"1.2470000 m\" (fake digits), and not \"about 1 m\" (information thrown away).",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.PRE.10",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Reporting measurements honestly",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 9,
      "id": "MEA.PRE.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Reporting measurements honestly: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Reporting measurements honestly into personal, civic/data, and career contexts.",
      "content": "Personal — The fishing story: \"62 cm ± 1 cm\" beats \"over half a meter, easily\" — and people believe it more, not less. · Civic/Data — A poll reads \"52% ± 3 points\": say what the ± admits, and why a 1-point lead inside it isn't a lead. · Career — An engineer signs the test report only when every number carries units, method, and uncertainty — otherwise it doesn't ship.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.PRE.10",
      "clusterId": "MEA.PRE",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Reporting measurements honestly",
      "clusterTitle": "Precision & Error (MEA.PRE)",
      "band": "5–8",
      "hardLevel": 9,
      "id": "MEA.PRE.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Reporting measurements honestly: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Reporting measurements honestly.",
      "content": "Accuracy — 8 items: 4 rewrite-the-report-correctly, 2 judge-the-claim (too precise / too vague), 2 attach-the-right-± from instrument info; ≥7/8 · Explanation — \"Spot the flaw in the lab line 'mass = 3.4500000 kg (bathroom scale)': which digits are fiction, and what should the line say?\" · Transfer — Rewrite a product page claiming \"weighs exactly 1.234567 kg, battery lasts precisely 10 hours\" into honest, bounded claims.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.SAV.01",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Volume by counting unit cubes",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 0,
      "id": "MEA.SAV.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Volume by counting unit cubes: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Volume by counting unit cubes.",
      "content": "Volume is the count of unit cubes that fill a solid (cm³, m³) — counted layer by layer, with hidden cubes counting just as much as visible ones.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.SAV.01",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Volume by counting unit cubes",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 0,
      "id": "MEA.SAV.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Volume by counting unit cubes: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Volume by counting unit cubes.",
      "content": "A block stack 4 cubes long and 3 wide: one layer holds 12 cubes; 2 layers high → 24 cubes = 24 cm³.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.SAV.01",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Volume by counting unit cubes",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 0,
      "id": "MEA.SAV.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Volume by counting unit cubes: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Volume by counting unit cubes into personal, civic/data, and career contexts.",
      "content": "Personal — Count how many 1-cm dice fit your small gift box by filling one layer and counting layers. · Civic/Data — Label the classroom cubbies by capacity in unit blocks so the supply audit is fair. · Career — A warehouse trainee counts cube cartons on a pallet: cartons per layer times layers.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.SAV.01",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Volume by counting unit cubes",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 0,
      "id": "MEA.SAV.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Volume by counting unit cubes: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Volume by counting unit cubes.",
      "content": "Accuracy — 8 items: 4 counts from isometric drawings, 2 layer-reasoning counts, 2 compare-two-stacks; ≥7/8 · Explanation — \"An isometric drawing shows 9 visible cubes and Lena reports V = 9. Why might hidden cubes make the true count bigger, and what extra view settles it?\" · Transfer — A staircase-shaped solid with layers of 6, 4, and 2 cubes: 12 cubes total.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.SAV.02",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Volume of rectangular prisms (l×w×h)",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 1,
      "id": "MEA.SAV.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Volume of rectangular prisms (l×w×h): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Volume of rectangular prisms (l×w×h).",
      "content": "V = l × w × h, which is really (area of base) × height: the bottom layer holds l × w cubes and there are h layers — and \"base × height\" is the idea that generalizes to every prism.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.SAV.02",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Volume of rectangular prisms (l×w×h)",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 1,
      "id": "MEA.SAV.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Volume of rectangular prisms (l×w×h): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Volume of rectangular prisms (l×w×h).",
      "content": "A lunchbox 20 × 12 × 8 cm: base 20 × 12 = 240 cm²; 240 × 8 = 1920 cm³.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.SAV.02",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Volume of rectangular prisms (l×w×h)",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 1,
      "id": "MEA.SAV.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Volume of rectangular prisms (l×w×h): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Volume of rectangular prisms (l×w×h) into personal, civic/data, and career contexts.",
      "content": "Personal — Will a 1.5-L (1500 cm³) bag of rice fit your 10 × 12 × 14 cm jar? Capacity 1680 cm³ — yes. · Civic/Data — The school's new sandbox, 3 m × 2 m × 0.25 m, needs 1.5 m³ of sand on the order form. · Career — An aquarium-shop worker rates a 60 × 30 × 40 cm tank: 72,000 cm³ = 72 L.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.SAV.02",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Volume of rectangular prisms (l×w×h)",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 1,
      "id": "MEA.SAV.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Volume of rectangular prisms (l×w×h): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Volume of rectangular prisms (l×w×h).",
      "content": "Accuracy — 8 items: 4 direct computations, 2 missing-edge problems, 2 cm³↔L applications; ≥7/8 · Explanation — \"Why is 'area of base × height' the same thing as l × w × h, and why does the unit come out cm³? Explain with layers of cubes.\" · Transfer — A 0.5-m³ moving box has base 0.8 m × 0.5 m: its height is 0.5 ÷ 0.4 = 1.25 m.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.SAV.03",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Volume with fractional edges",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 2,
      "id": "MEA.SAV.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Volume with fractional edges: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Volume with fractional edges.",
      "content": "V = lwh works unchanged for fractional edges — packing with half-unit cubes shows why: the formula multiplies the fractions exactly instead of rounding the box to whole numbers.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.SAV.03",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Volume with fractional edges",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 2,
      "id": "MEA.SAV.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Volume with fractional edges: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Volume with fractional edges.",
      "content": "A box 4 × 2½ × 3 cm: 4 × 2.5 × 3 = 30 cm³. Check with ½-cm cubes: 8 × 5 × 6 = 240 small cubes, and 8 of them make 1 cm³ → 240 ÷ 8 = 30 ✓.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.SAV.03",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Volume with fractional edges",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 2,
      "id": "MEA.SAV.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Volume with fractional edges: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Volume with fractional edges into personal, civic/data, and career contexts.",
      "content": "Personal — Your pencil case, 15 × 10 × 4.5 cm, holds 675 cm³ — compare with a friend's cube-shaped one. · Civic/Data — The community raised bed, 2 m × 0.75 m × 0.4 m, takes 0.6 m³ of soil — order with the delivery minimum in mind. · Career — A soap maker's mold is 3 × 3 × 1.5 cm per bar: 13.5 cm³ each, so a 24-bar batch pours 324 cm³.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.SAV.03",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Volume with fractional edges",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 2,
      "id": "MEA.SAV.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Volume with fractional edges: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Volume with fractional edges.",
      "content": "Accuracy — 8 items: 4 fractional-edge volumes (fraction and decimal forms), 2 fill-to-a-fraction problems, 2 missing-edge with fractions; ≥7/8 · Explanation — \"Why does counting in ½-cm cubes give a number 8 times bigger than the cm³ answer? What does that say about how volume scales when the unit halves?\" · Transfer — A 40 × 25 × 30 cm tank filled to ¾ of its height: 40 × 25 × 22.5 = 22,500 cm³ = 22.5 L.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.SAV.04",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Surface area from nets",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 0,
      "id": "MEA.SAV.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Surface area from nets: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Surface area from nets.",
      "content": "Unfold the solid into its net and surface area becomes pure 2-D bookkeeping: the total area of all faces, with no face missed and none counted twice.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.SAV.04",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Surface area from nets",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 0,
      "id": "MEA.SAV.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Surface area from nets: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Surface area from nets.",
      "content": "A cube with edge 5 cm: the net is 6 squares of 5 × 5 = 25 cm² each → SA = 6 × 25 = 150 cm².",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.SAV.04",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Surface area from nets",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 0,
      "id": "MEA.SAV.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Surface area from nets: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Surface area from nets into personal, civic/data, and career contexts.",
      "content": "Personal — Flatten a cereal box along its seams and total the panels to see how much cardboard you've been recycling. · Civic/Data — Art-class fundraiser: total the felt needed to cover each cube-shaped stool from its traced net. · Career — A packaging designer sums a die-cut net's panels before quoting the card stock per box.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.SAV.04",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Surface area from nets",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 0,
      "id": "MEA.SAV.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Surface area from nets: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Surface area from nets.",
      "content": "Accuracy — 8 items: 4 SA-from-net computations, 2 match-net-to-solid, 2 find-the-missing-face-area; ≥7/8 · Explanation — \"Two students unfold the same box into different-looking nets and get the same total. Why must any correct net give the same surface area?\" · Transfer — Net of a triangular prism: two 6-4 triangles (12 cm² each) plus 5 × 10, 5 × 10, and 6 × 10 rectangles → 24 + 160 = 184 cm².",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.SAV.05",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Surface area of prisms",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 1,
      "id": "MEA.SAV.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Surface area of prisms: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Surface area of prisms.",
      "content": "SA of a prism = 2 × base area + lateral area, where the lateral area is base perimeter × height — because the side wall unrolls into one long rectangle.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.SAV.05",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Surface area of prisms",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 1,
      "id": "MEA.SAV.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Surface area of prisms: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Surface area of prisms.",
      "content": "A box 8 × 3 × 5 cm: 2(8×3) + 2(8×5) + 2(3×5) = 48 + 80 + 30 = 158 cm². Lateral check: base perimeter 22 × height 5 = 110, plus two 24-cm² bases = 158 ✓.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.SAV.05",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Surface area of prisms",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 1,
      "id": "MEA.SAV.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Surface area of prisms: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Surface area of prisms into personal, civic/data, and career contexts.",
      "content": "Personal — Varnish for a 90 × 45 × 50 cm toy chest — total all six faces before buying the tin. · Civic/Data — Weatherproof the little free library box: surface area tells you if one sealant can covers it. · Career — A sheet-metal worker prices duct runs as perimeter × length — open tubes have no ends to add.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.SAV.05",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Surface area of prisms",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 1,
      "id": "MEA.SAV.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Surface area of prisms: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Surface area of prisms.",
      "content": "Accuracy — 8 items: 4 full-prism SA, 2 lateral-only (open-top) variants, 2 triangular-prism SA; ≥7/8 · Explanation — \"Why does base perimeter × height capture all the side faces in one multiplication? And when is the '2 × base' term legitimately dropped?\" (Open-top tanks, ducts.) · Transfer — Minimum cardboard for a 20 × 15 × 10 cm juice carton: 2(300 + 200 + 150) = 1300 cm².",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.SAV.06",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Volume of triangular prisms and cylinders",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 3,
      "id": "MEA.SAV.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Volume of triangular prisms and cylinders: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Volume of triangular prisms and cylinders.",
      "content": "Every prism and cylinder obeys V = (base area) × height — the base may be a triangle or a circle instead of a rectangle, but the stack-of-identical-layers logic is untouched.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.SAV.06",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Volume of triangular prisms and cylinders",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 3,
      "id": "MEA.SAV.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Volume of triangular prisms and cylinders: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Volume of triangular prisms and cylinders.",
      "content": "Cylinder with r = 5 cm, h = 12 cm: base = π × 5² ≈ 78.5 cm²; V ≈ 78.5 × 12 = 942 cm³.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.SAV.06",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Volume of triangular prisms and cylinders",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 3,
      "id": "MEA.SAV.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Volume of triangular prisms and cylinders: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Volume of triangular prisms and cylinders into personal, civic/data, and career contexts.",
      "content": "Personal — Which holds more: the tall tumbler (r 3 cm, h 16 cm ≈ 452 cm³) or the squat mug (r 4.5 cm, h 8 cm ≈ 509 cm³)? The mug. · Civic/Data — The town's cylindrical rain barrel, r 0.3 m and h 1 m, stores about 0.28 m³ ≈ 283 L per storm. · Career — A candle maker's triangular-prism mold (base ½ × 6 × 5 = 15 cm², length 10 cm) takes 150 cm³ of wax per candle.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.SAV.06",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Volume of triangular prisms and cylinders",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 3,
      "id": "MEA.SAV.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Volume of triangular prisms and cylinders: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Volume of triangular prisms and cylinders.",
      "content": "Accuracy — 8 items: 4 cylinders (r or d given), 2 triangular prisms, 2 find-the-height inversions; ≥7/8 · Explanation — \"Why does one formula, V = base × height, cover boxes, triangular prisms, and cylinders alike? What property of these solids makes it work?\" (Identical cross-section all the way up.) · Transfer — A tent shaped as a triangular prism: base ½ × 2 m × 1.5 m = 1.5 m², length 3 m → 4.5 m³ of air for the campers.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.SAV.07",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Surface area of cylinders",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 4,
      "id": "MEA.SAV.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Surface area of cylinders: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Surface area of cylinders.",
      "content": "A cylinder's label unrolls into a rectangle of height h and width 2πr (the circumference), so SA = 2πr² + 2πrh — and for open cans you drop the missing circle.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.SAV.07",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Surface area of cylinders",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 4,
      "id": "MEA.SAV.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Surface area of cylinders: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Surface area of cylinders.",
      "content": "r = 4 cm, h = 10 cm: ends 2 × π × 4² ≈ 100.5; side 2π × 4 × 10 ≈ 251.3; SA ≈ 351.9 ≈ 352 cm².",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.SAV.07",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Surface area of cylinders",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 4,
      "id": "MEA.SAV.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Surface area of cylinders: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Surface area of cylinders into personal, civic/data, and career contexts.",
      "content": "Personal — Will one sheet of wrapping paper cover the cylindrical poster tube? Unroll its label rectangle and check. · Civic/Data — Repainting the park's cylindrical water tank: side plus top only — the bottom sits on concrete. · Career — A label printer quotes soup-can labels as circumference × label height, thousands at a time.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.SAV.07",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Surface area of cylinders",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 4,
      "id": "MEA.SAV.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Surface area of cylinders: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Surface area of cylinders.",
      "content": "Accuracy — 8 items: 4 closed cylinders, 2 open variants (no top / no ends), 2 label-area-only; ≥7/8 · Explanation — \"Spot the flaw: Theo uses 2πr² for the side wall and 2πrh for the ends. What does each term actually measure, and why is the label's width exactly 2πr?\" · Transfer — A ceramic pencil cup (open top), r = 3 cm, h = 9 cm: π × 9 + 2π × 27 ≈ 28.3 + 169.6 ≈ 198 cm² to glaze.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.SAV.08",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Volume of pyramids and cones (relationship to prisms)",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 4,
      "id": "MEA.SAV.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Volume of pyramids and cones (relationship to prisms): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Volume of pyramids and cones (relationship to prisms).",
      "content": "A pyramid or cone holds exactly one-third of the prism or cylinder sharing its base and height — pour it three times to fill the big one — so V = ⅓ × base area × height.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.SAV.08",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Volume of pyramids and cones (relationship to prisms)",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 4,
      "id": "MEA.SAV.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Volume of pyramids and cones (relationship to prisms): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Volume of pyramids and cones (relationship to prisms).",
      "content": "Cone with r = 6 cm, h = 10 cm: the matching cylinder holds π × 36 × 10 ≈ 1130.4 cm³; the cone holds ⅓ of that ≈ 376.8 ≈ 377 cm³.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.SAV.08",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Volume of pyramids and cones (relationship to prisms)",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 4,
      "id": "MEA.SAV.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Volume of pyramids and cones (relationship to prisms): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Volume of pyramids and cones (relationship to prisms) into personal, civic/data, and career contexts.",
      "content": "Personal — Same radius, same height: the ice-cream cup holds three times the cone — choose accordingly on a hot day. · Civic/Data — The playground's cone-shaped gravel pile, r 2 m and h 1.5 m, is ⅓ × π × 4 × 1.5 ≈ 6.3 m³ for the reorder. · Career — A glass artist's square pyramid paperweight (base 6 cm, h 9 cm) uses ⅓ × 36 × 9 = 108 cm³ of glass.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.SAV.08",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Volume of pyramids and cones (relationship to prisms)",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 4,
      "id": "MEA.SAV.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Volume of pyramids and cones (relationship to prisms): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Volume of pyramids and cones (relationship to prisms).",
      "content": "Accuracy — 8 items: 4 cones/pyramids from dimensions, 2 compare-to-matching-prism, 2 find-the-height inversions; ≥7/8 · Explanation — \"Describe the pour-three-times experiment, and explain why 'same base AND same height' is essential before you may claim the ⅓.\" · Transfer — A conical sand-timer bulb, r = 3 cm and h = 4 cm, holds ⅓ × π × 9 × 4 ≈ 37.7 cm³ of sand.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.SAV.09",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Spheres (formula use)",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 5,
      "id": "MEA.SAV.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Spheres (formula use): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Spheres (formula use).",
      "content": "Spheres come with given formulas — V = 4⁄3πr³ and SA = 4πr² — both driven by the radius alone, so doubling r multiplies volume by 8 but surface area only by 4.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.SAV.09",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Spheres (formula use)",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 5,
      "id": "MEA.SAV.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Spheres (formula use): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Spheres (formula use).",
      "content": "Sphere with r = 3 cm: V = 4⁄3 × π × 27 = 36π ≈ 113.1 cm³, and SA = 4π × 9 = 36π ≈ 113.1 cm² — numerically equal only at r = 3.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.SAV.09",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Spheres (formula use)",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 5,
      "id": "MEA.SAV.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Spheres (formula use): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Spheres (formula use) into personal, civic/data, and career contexts.",
      "content": "Personal — A basketball with r ≈ 12 cm holds about 7230 cm³ ≈ 7.2 L of air — compare with your lungs' ~6 L. · Civic/Data — Paint for the museum's spherical sculpture, r = 1.5 m: SA = 4π × 2.25 ≈ 28.3 m². · Career — A chocolatier's truffle, r = 1.5 cm, takes 4⁄3π × 3.375 ≈ 14.1 cm³ of ganache — a 50-truffle batch needs ≈707 cm³.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.SAV.09",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Spheres (formula use)",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 5,
      "id": "MEA.SAV.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Spheres (formula use): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Spheres (formula use).",
      "content": "Accuracy — 8 items: 4 volume, 2 surface area, 2 d-given traps (halve before cubing); ≥7/8 · Explanation — \"Why does doubling the radius multiply a sphere's volume by 8 but its surface area by only 4? Point at the exponents and say what each one is counting.\" · Transfer — A weather balloon inflated to r = 60 cm: V = 4⁄3π × 216,000 ≈ 904,000 cm³ ≈ 0.9 m³.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.SAV.10",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Choosing surface area vs volume in context",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 6,
      "id": "MEA.SAV.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Choosing surface area vs volume in context: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Choosing surface area vs volume in context.",
      "content": "Volume answers \"how much fits or fills\"; surface area answers \"how much covers or wraps\" — the question's verb (fill, hold, paint, wrap, coat) picks the measure before any formula starts.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.SAV.10",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Choosing surface area vs volume in context",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 6,
      "id": "MEA.SAV.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Choosing surface area vs volume in context: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Choosing surface area vs volume in context.",
      "content": "A 4-cm-edge cube gift: wrapping needs SA = 6 × 16 = 96 cm² of paper, while it holds V = 64 cm³ of candy — different questions, numbers, and units.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.SAV.10",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Choosing surface area vs volume in context",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 6,
      "id": "MEA.SAV.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Choosing surface area vs volume in context: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Choosing surface area vs volume in context into personal, civic/data, and career contexts.",
      "content": "Personal — Terrarium build: glass panels are a surface-area bill, the soil fill is a volume bill — one project, both measures. · Civic/Data — Community pool report: liters to fill it is volume; the winter cover tarp is surface area. · Career — A beverage manufacturer minimizes can metal (SA) while holding the 330-mL fill (V) fixed — the classic design tension.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.SAV.10",
      "clusterId": "MEA.SAV",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Choosing surface area vs volume in context",
      "clusterTitle": "Surface Area & Volume (MEA.SAV)",
      "band": "5–8",
      "hardLevel": 6,
      "id": "MEA.SAV.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Choosing surface area vs volume in context: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Choosing surface area vs volume in context.",
      "content": "Accuracy — 8 items: 4 choose-the-measure-then-compute, 2 two-part problems needing both, 2 unit-sanity checks (cm² vs cm³); ≥7/8 · Explanation — \"Flaw: 'This box is 5000 cm³, so buy 5000 cm² of wrapping paper.' Why can't volume stand in for surface area? Exhibit two boxes of equal volume with different SA.\" (10×10×10: V 1000, SA 600; 25×10×4: V 1000, SA 780.) · Transfer — A candy company switches from spheres to cubes of equal volume (64 cm³): the cube needs 96 cm² of foil, the sphere (r ≈ 2.5 cm) only ≈77 cm² — explain who pays for the corners.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.TIM.01",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Days, weeks, months, seasons",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 0,
      "id": "MEA.TIM.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Days, weeks, months, seasons: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Days, weeks, months, seasons.",
      "content": "Time runs in nested repeating cycles — 7 days make a week, days stack into months, 12 months make a year of seasons — and knowing each sequence lets you say what comes before, after, and how the cycle restarts.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.TIM.01",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Days, weeks, months, seasons",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 0,
      "id": "MEA.TIM.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Days, weeks, months, seasons: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Days, weeks, months, seasons.",
      "content": "Today is Thursday and soccer practice is in 3 days. Count on: Friday (1), Saturday (2), Sunday (3) — practice is on Sunday.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.TIM.01",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Days, weeks, months, seasons",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 0,
      "id": "MEA.TIM.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Days, weeks, months, seasons: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Days, weeks, months, seasons into personal, civic/data, and career contexts.",
      "content": "Personal — Work out which day of the week your birthday lands on this year using this month's calendar page. · Civic/Data — Class calendar job: each morning, move the marker to today's date and announce the day and month. · Career — A librarian runs story time every Tuesday; figure out how many story times happen in the next two weeks (2).",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.TIM.01",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Days, weeks, months, seasons",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 0,
      "id": "MEA.TIM.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Days, weeks, months, seasons: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Days, weeks, months, seasons.",
      "content": "Accuracy — 8 items: order days and months (4), before/after questions (2), match seasons to months (2); ≥7/8 · Explanation — \"Mara says the month after December is 'month thirteen.' What's wrong with that? Explain how the months cycle back around.\" · Transfer — Given a calendar page for an unfamiliar month, answer \"what day is 3 days after the 29th?\"",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.TIM.02",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Telling time — hour and half hour",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 1,
      "id": "MEA.TIM.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Telling time — hour and half hour: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Telling time — hour and half hour.",
      "content": "On an analog clock the short hand names the hour and the long hand shows how far through it you are: straight up means o'clock, straight down means half past.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.TIM.02",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Telling time — hour and half hour",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 1,
      "id": "MEA.TIM.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Telling time — hour and half hour: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Telling time — hour and half hour.",
      "content": "The hour hand sits between 3 and 4 and the minute hand points at the 6: it is half past 3, written 3:30.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.TIM.02",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Telling time — hour and half hour",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 1,
      "id": "MEA.TIM.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Telling time — hour and half hour: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Telling time — hour and half hour into personal, civic/data, and career contexts.",
      "content": "Personal — Your bedtime story starts at half past 7; check the living-room clock to see if it's time yet. · Civic/Data — The class schedule says recess at 10:00; pick which of three clock cards shows it. · Career — A baker's shop sign says \"fresh bread at half past 8\" — set the cardboard clock in the window to match.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.TIM.02",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Telling time — hour and half hour",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 1,
      "id": "MEA.TIM.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Telling time — hour and half hour: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Telling time — hour and half hour.",
      "content": "Accuracy — 8 items: read 4 analog times (hour/half-hour), set 2 clock faces, match 2 digital↔analog pairs; ≥7/8 · Explanation — \"The hour hand is halfway between 6 and 7, the minute hand on 6. Sam reads it as 7:30 'because the hour hand is almost at 7.' Find the flaw.\" · Transfer — Read the half-past time on a watch face that has tick marks but no printed numbers.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.TIM.03",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Telling time — five minutes and minute",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 2,
      "id": "MEA.TIM.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Telling time — five minutes and minute: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Telling time — five minutes and minute.",
      "content": "The clock numbers do double duty: each numeral marks five minutes for the long hand (the 9 means 45 minutes), and single tick marks count the leftover minutes.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.TIM.03",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Telling time — five minutes and minute",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 2,
      "id": "MEA.TIM.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Telling time — five minutes and minute: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Telling time — five minutes and minute.",
      "content": "Minute hand on the 9: 9 × 5 = 45, so it's 4:45. Minute hand 2 ticks past the 9: 45 + 2 = 47, so 4:47.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.TIM.03",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Telling time — five minutes and minute",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 2,
      "id": "MEA.TIM.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Telling time — five minutes and minute: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Telling time — five minutes and minute into personal, civic/data, and career contexts.",
      "content": "Personal — Read the kitchen clock to the minute to decide whether you can still catch the 8:35 school bus. · Civic/Data — Match the train-station clock to the posted timetable and explain why misreading 3:05 as 3:50 matters. · Career — A swim coach starts a new heat every 5 minutes; read the pool clock to call the next start.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.TIM.03",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Telling time — five minutes and minute",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 2,
      "id": "MEA.TIM.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Telling time — five minutes and minute: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Telling time — five minutes and minute.",
      "content": "Accuracy — 8 items: 4 reads to five minutes, 2 reads to the minute, 2 set-the-hands; ≥7/8 · Explanation — \"Why does the 9 on the clock mean 45 minutes instead of 9 minutes? What is each number really counting?\" · Transfer — Read a clock with Roman numerals to the nearest minute.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.TIM.04",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "AM/PM and the 24-hour clock",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 3,
      "id": "MEA.TIM.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "AM/PM and the 24-hour clock: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of AM/PM and the 24-hour clock.",
      "content": "The day splits into two 12-hour halves labeled AM and PM, while the 24-hour clock counts straight through — add 12 to any afternoon or evening hour (3:00 PM = 15:00).",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.TIM.04",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "AM/PM and the 24-hour clock",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 3,
      "id": "MEA.TIM.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "AM/PM and the 24-hour clock: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for AM/PM and the 24-hour clock.",
      "content": "7:20 PM in 24-hour time: 7 + 12 = 19, so 19:20. Going back: 14:05 means 14 − 12 = 2, so 2:05 PM.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.TIM.04",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "AM/PM and the 24-hour clock",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 3,
      "id": "MEA.TIM.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "AM/PM and the 24-hour clock: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer AM/PM and the 24-hour clock into personal, civic/data, and career contexts.",
      "content": "Personal — Set your alarm for 7:00 AM, and explain what would happen if you picked 7:00 PM by mistake. · Civic/Data — The library door says 09:00–17:30; decide whether it's open after dinner (17:30 is 5:30 PM, so no). · Career — An airport gate agent reads 16:45 on the departures board and announces it to passengers as 4:45 PM.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.TIM.04",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "AM/PM and the 24-hour clock",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 3,
      "id": "MEA.TIM.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "AM/PM and the 24-hour clock: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond AM/PM and the 24-hour clock.",
      "content": "Accuracy — 8 items: 4 conversions each direction, 2 AM/PM judgments (\"school assembly: 10 AM or 10 PM?\"), 2 timetable reads; ≥7/8 · Explanation — \"Leo converts 12:30 PM to 24-hour time and writes 24:30. Find the flaw.\" (Noon is already 12; only 1 PM–11 PM add 12.) · Transfer — From a bus timetable printed in 24-hour time, pick the first bus after 3:15 PM.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.TIM.05",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Elapsed time within an hour",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 4,
      "id": "MEA.TIM.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Elapsed time within an hour: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Elapsed time within an hour.",
      "content": "To find minutes elapsed, count up from the start time to the end time in friendly jumps (to the next five, then by fives and tens) — clock arithmetic is jump-counting, not digit subtraction.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.TIM.05",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Elapsed time within an hour",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 4,
      "id": "MEA.TIM.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Elapsed time within an hour: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Elapsed time within an hour.",
      "content": "From 3:40 to 4:05 — jump 3:40 → 4:00 is 20 minutes, then 4:00 → 4:05 is 5 more: 25 minutes total.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.TIM.05",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Elapsed time within an hour",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 4,
      "id": "MEA.TIM.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Elapsed time within an hour: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Elapsed time within an hour into personal, civic/data, and career contexts.",
      "content": "Personal — The pasta went in at 5:48 and comes out at 6:00; how many minutes do you have to set the table (12)? · Civic/Data — Fill in the fire-drill log: class left at 10:35 and returned at 10:52, so the drill took 17 minutes. · Career — A pizza maker promises a 25-minute bake; the pie went in at 4:50, so it comes out at 5:15.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.TIM.05",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Elapsed time within an hour",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 4,
      "id": "MEA.TIM.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Elapsed time within an hour: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Elapsed time within an hour.",
      "content": "Accuracy — 8 items: 4 find-the-elapsed, 2 find-the-end-time, 2 find-the-start; ≥7/8 · Explanation — \"Ava subtracts 4:05 − 3:40 like money, gets 0.65, and says 65 minutes. What's the flaw?\" (An hour has 60 minutes, not 100 — clock digits aren't decimals.) · Transfer — A video paused at 0:12 now shows 0:47; how many seconds of it played (35)?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.TIM.06",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Elapsed time across hours",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 5,
      "id": "MEA.TIM.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Elapsed time across hours: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Elapsed time across hours.",
      "content": "Break any interval at the o'clocks: minutes up to the next hour, whole hours across, leftover minutes at the end — three easy pieces instead of one impossible subtraction.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.TIM.06",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Elapsed time across hours",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 5,
      "id": "MEA.TIM.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Elapsed time across hours: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Elapsed time across hours.",
      "content": "9:45 AM to 1:20 PM — 9:45 → 10:00 is 15 min; 10:00 → 1:00 is 3 h; 1:00 → 1:20 is 20 min. Total: 3 h 35 min.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.TIM.06",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Elapsed time across hours",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 5,
      "id": "MEA.TIM.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Elapsed time across hours: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Elapsed time across hours into personal, civic/data, and career contexts.",
      "content": "Personal — A movie starts at 6:50 and runs 1 h 45 min; will you be out before your 8:30 pickup? (Ends 8:35 — no.) · Civic/Data — The school fair runs 10:30 AM to 2:15 PM; how long is a full volunteer shift (3 h 45 min)? · Career — A dog walker's pay sheet shows a job from 11:40 to 1:10 — bill for 1 h 30 min.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.TIM.06",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Elapsed time across hours",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 5,
      "id": "MEA.TIM.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Elapsed time across hours: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Elapsed time across hours.",
      "content": "Accuracy — 8 items: 4 across-the-hour intervals, 2 crossing noon, 2 end-time problems; ≥7/8 · Explanation — \"Mia says 8:50 to 11:10 is 3 h 40 min because 11 − 8 = 3 and 50 − 10 = 40. Find both errors.\" (It's 2 h 20 min; you can't subtract the digits independently.) · Transfer — A sleepover sleep log: lights out 9:30 PM, up at 6:15 AM — how long asleep (8 h 45 min)?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.TIM.07",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Time word problems and schedules",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 6,
      "id": "MEA.TIM.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Time word problems and schedules: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Time word problems and schedules.",
      "content": "Schedule questions chain elapsed-time pieces: work forward from a start, backward from a deadline, or down a timetable — while keeping AM/PM and the order of events straight.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.TIM.07",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Time word problems and schedules",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 6,
      "id": "MEA.TIM.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Time word problems and schedules: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Time word problems and schedules.",
      "content": "Practice ends at 5:15 PM and lasts 50 minutes. Work backward: 15 min back is 5:00, then 35 more back is 4:25 — it starts at 4:25 PM.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.TIM.07",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Time word problems and schedules",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 6,
      "id": "MEA.TIM.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Time word problems and schedules: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Time word problems and schedules into personal, civic/data, and career contexts.",
      "content": "Personal — Dinner is at 6:00; planning a 40-minute game plus 25 minutes of homework means starting by 4:55. · Civic/Data — Use the school bell schedule to work out which class you're sitting in at 11:50. · Career — A school-bus route sheet lists stops every 4 minutes starting 7:05; the driver checks that stop 9 lands at 7:37 (8 gaps × 4 min after the first stop).",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.TIM.07",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Time word problems and schedules",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 6,
      "id": "MEA.TIM.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Time word problems and schedules: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Time word problems and schedules.",
      "content": "Accuracy — 8 items: 3 forward, 3 backward, 2 timetable reads; ≥7/8 · Explanation — \"A camp schedule shows Lunch 12:00–12:45 and Swim 12:40–1:30. Why can't both be right as written? What's the fix?\" · Transfer — From a ferry timetable in 24-hour time, pick the latest ferry that still makes a 14:00 appointment given a 25-minute crossing (13:20 arrives 13:45).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.TIM.08",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Time zones (intro)",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 7,
      "id": "MEA.TIM.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Time zones (intro): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Time zones (intro).",
      "content": "Clocks around the world differ by fixed whole-hour offsets: it's the same moment everywhere, but the label changes — add hours going toward \"ahead\" places, subtract toward \"behind\" ones (offsets given, not memorized).",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.TIM.08",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Time zones (intro)",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 7,
      "id": "MEA.TIM.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Time zones (intro): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Time zones (intro).",
      "content": "New York is 3 hours ahead of Los Angeles. A game airs at 7:30 PM New York time: 7:30 − 3:00 = 4:30 PM in Los Angeles.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.TIM.08",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Time zones (intro)",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 7,
      "id": "MEA.TIM.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Time zones (intro): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Time zones (intro) into personal, civic/data, and career contexts.",
      "content": "Personal — It's 5:00 PM at your house and Grandma's town is 2 hours behind; is 3:00 PM her nap time or a good call time? · Civic/Data — The Olympics broadcast guide lists events in the host city's time; convert tonight's final to your local clock. · Career — A hotel front desk sets its wall of world clocks (London 5 hours ahead of New York) so guests can call home politely.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.TIM.08",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Time zones (intro)",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 7,
      "id": "MEA.TIM.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Time zones (intro): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Time zones (intro).",
      "content": "Accuracy — 8 items: 4 single conversions each direction, 2 \"what time is it there now,\" 2 two-city comparisons; ≥7/8 · Explanation — \"Why can it already be Tuesday in Sydney while it's still Monday in Chicago? Use 'ahead' and 'behind' in your answer.\" · Transfer — Given a screenshot of three world clocks, pick a call time that lands between 8 AM and 8 PM in at least two of the cities.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.TIM.09",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Calendars — duration between dates",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 7,
      "id": "MEA.TIM.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Calendars — duration between dates: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Calendars — duration between dates.",
      "content": "Days between dates are counted as jumps, not boxes — use the week structure (count by 7s) and month lengths to leap, instead of tapping every calendar square.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.TIM.09",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Calendars — duration between dates",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 7,
      "id": "MEA.TIM.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Calendars — duration between dates: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Calendars — duration between dates.",
      "content": "March 28 to April 11 — March has 31 days, so 28 → 31 is 3 days; then 11 more into April: 3 + 11 = 14 days, exactly 2 weeks.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.TIM.09",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Calendars — duration between dates",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 7,
      "id": "MEA.TIM.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Calendars — duration between dates: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Calendars — duration between dates into personal, civic/data, and career contexts.",
      "content": "Personal — Count the days until your birthday when it sits on next month's calendar page. · Civic/Data — A library book borrowed May 22 is due in 21 days; 9 days finish May (31 − 22), so it's due June 12. · Career — A vet's reminder card schedules puppy boosters every 28 days from April 3; April has only 30 days, so the next visit is May 1.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.TIM.09",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Calendars — duration between dates",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 7,
      "id": "MEA.TIM.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Calendars — duration between dates: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Calendars — duration between dates.",
      "content": "Accuracy — 8 items: 4 date-to-date counts (some crossing a month), 2 due-date problems, 2 day-of-week predictions using 7s; ≥7/8 · Explanation — \"Tom counts both the start box and the end box on the calendar and gets 15 days from March 28 to April 11. Why is his answer one too many?\" · Transfer — A science-fair project is due 6 weeks after Sept 10; show it lands on Oct 22 (20 days finish September, 22 more land in October).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.TIM.10",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Estimating durations",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 8,
      "id": "MEA.TIM.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Estimating durations: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Estimating durations.",
      "content": "Benchmarks turn time guessing into comparison — a song ≈ 3 minutes, a soccer practice ≈ 1 hour — so you can judge how long things take, pick sensible units, and sanity-check schedules.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.TIM.10",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Estimating durations",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 8,
      "id": "MEA.TIM.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Estimating durations: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Estimating durations.",
      "content": "Evening plan: homework 25 min + piano 30 min + dinner 40 min = 95 min — call it about 1½ hours, so starting at 5:00 means free by about 6:35.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.TIM.10",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Estimating durations",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 8,
      "id": "MEA.TIM.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Estimating durations: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Estimating durations into personal, civic/data, and career contexts.",
      "content": "Personal — Decide whether shower, dressing, and breakfast realistically fit the 35 minutes before the bus. · Civic/Data — A town-meeting agenda gives 5 items \"about 10 minutes each\" in a 45-minute slot; estimate whether it fits (≈50 min — it doesn't). · Career — A school photographer books 4 minutes per class for 12 classes and pads to about an hour for lineup time (48 min + slack).",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.TIM.10",
      "clusterId": "MEA.TIM",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Estimating durations",
      "clusterTitle": "Time & Calendars (MEA.TIM)",
      "band": "K–4",
      "hardLevel": 8,
      "id": "MEA.TIM.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Estimating durations: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Estimating durations.",
      "content": "Accuracy — 8 items: 4 pick-the-sensible-estimate (90 s vs 90 min for an assembly), 2 sum-and-round plans, 2 unit choices; ≥7/8 · Explanation — \"Why is 'about 10 minutes' a better answer than '9 minutes 47 seconds' for your walk to school — and when would the exact version actually matter?\" · Transfer — Airport plan: 20-min security + 15-min walk + 10-min buffer before a 9:40 boarding means leaving check-in by 8:55.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.UNI.01",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Comparing lengths directly",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 0,
      "id": "MEA.UNI.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Comparing lengths directly: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Comparing lengths directly.",
      "content": "To compare lengths fairly, line the objects up at a common starting edge — \"longer\" means sticking out past the other; no numbers are needed yet, but the fair start is non-negotiable.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.UNI.01",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Comparing lengths directly",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 0,
      "id": "MEA.UNI.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Comparing lengths directly: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Comparing lengths directly.",
      "content": "Two pencils with their ends flush against the desk edge: the red one reaches past the blue one, so red is longer — and swapping their positions doesn't change the answer.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.UNI.01",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Comparing lengths directly",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 0,
      "id": "MEA.UNI.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Comparing lengths directly: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Comparing lengths directly into personal, civic/data, and career contexts.",
      "content": "Personal — Heels together against the wall: whose shoe is longer, yours or your sister's? · Civic/Data — Class job: order three crayons shortest to longest for the supply-tray labels. · Career — A shoe-store helper checks two laces tip-to-tip before bagging them as a pair.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.UNI.01",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Comparing lengths directly",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 0,
      "id": "MEA.UNI.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Comparing lengths directly: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Comparing lengths directly.",
      "content": "Accuracy — 8 items: 4 direct comparisons, 2 order-three-objects, 2 \"is this comparison fair?\" judgments; ≥7/8 · Explanation — \"Two straws look equal until Jo slides one forward and declares it longer. What's the flaw in Jo's comparison?\" (No common baseline — the head start isn't length.) · Transfer — Compare two ribbons taped to the wall at different heights using a piece of string as the go-between.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.UNI.02",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Measuring with non-standard units",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 1,
      "id": "MEA.UNI.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Measuring with non-standard units: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Measuring with non-standard units.",
      "content": "Length can be counted in copies of any repeated unit — paper clips, hand spans — laid end to end with no gaps or overlaps; the count means nothing until you name the unit.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.UNI.02",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Measuring with non-standard units",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 1,
      "id": "MEA.UNI.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Measuring with non-standard units: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Measuring with non-standard units.",
      "content": "A book measured in paper clips: clips laid end to end with no gaps, counted 1 through 6 — the book is about 6 clips long.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.UNI.02",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Measuring with non-standard units",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 1,
      "id": "MEA.UNI.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Measuring with non-standard units: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Measuring with non-standard units into personal, civic/data, and career contexts.",
      "content": "Personal — Measure your bed in hand spans to brag precisely to a friend. · Civic/Data — Measure the classroom rug in floor tiles to plan how many kids fit for reading circle. · Career — A carpenter's helper marks a shelf in pencil-lengths — and learns why the boss frowns at \"pencils\" as a unit.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.UNI.02",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Measuring with non-standard units",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 1,
      "id": "MEA.UNI.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Measuring with non-standard units: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Measuring with non-standard units.",
      "content": "Accuracy — 8 items: 4 unit counts from pictures (checking gaps/overlaps), 2 measure-with-objects tasks, 2 \"which measurement was done correctly?\"; ≥7/8 · Explanation — \"Two kids measure the same desk: 8 of Dad's shoes but 12 of Mia's shoes. Why are both right, and why do the counts differ?\" (Bigger unit, smaller count.) · Transfer — Predict before counting: measured in linking cubes vs crayons, which count for the table will be bigger, and why?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.UNI.03",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Centimeters and meters",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 2,
      "id": "MEA.UNI.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Centimeters and meters: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Centimeters and meters.",
      "content": "Centimeters and meters are agreed-on units so everyone gets the same number for the same object; 100 cm = 1 m, and ruler measuring starts at the 0 mark — not at the ruler's edge.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.UNI.03",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Centimeters and meters",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 2,
      "id": "MEA.UNI.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Centimeters and meters: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Centimeters and meters.",
      "content": "A pencil lies from 0 to 13 on the centimeter ruler: 13 cm. Two of them end to end: 13 + 13 = 26 cm — still short of half a meter (50 cm).",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.UNI.03",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Centimeters and meters",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 2,
      "id": "MEA.UNI.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Centimeters and meters: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Centimeters and meters into personal, civic/data, and career contexts.",
      "content": "Personal — Measure your hand width in centimeters to pick the right glove size online. · Civic/Data — Keep the class height chart in centimeters on the door frame for the school nurse's records. · Career — A junior gardener spaces seedlings 30 cm apart along the bed, checking with a meter stick.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.UNI.03",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Centimeters and meters",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 2,
      "id": "MEA.UNI.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Centimeters and meters: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Centimeters and meters.",
      "content": "Accuracy — 8 items: 4 ruler reads, 2 draw-a-line-of-given-length, 2 cm↔m facts (e.g., 100 cm = 1 m); ≥7/8 · Explanation — \"Ben lines the object against the metal end of the ruler, where 0 sits 1 cm in, and reads 15 cm. Why is his 15 really 14, and what should he line up?\" · Transfer — Measure with a broken ruler that starts at 3: an object spanning 3 to 17 is 14 cm.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.UNI.04",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Inches, feet, yards",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 2,
      "id": "MEA.UNI.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Inches, feet, yards: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Inches, feet, yards.",
      "content": "Customary length units follow the same measuring rules with a different family: 12 inches = 1 foot, 3 feet = 1 yard — useful because much of the built world around you is labeled this way.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.UNI.04",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Inches, feet, yards",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 2,
      "id": "MEA.UNI.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Inches, feet, yards: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Inches, feet, yards.",
      "content": "A skateboard deck runs from 0 to 31 on the inch tape: 31 in = 2 ft 7 in, since 2 ft = 24 in and 31 − 24 = 7.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.UNI.04",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Inches, feet, yards",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 2,
      "id": "MEA.UNI.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Inches, feet, yards: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Inches, feet, yards into personal, civic/data, and career contexts.",
      "content": "Personal — Mark your height in feet and inches on the garage door frame next to last year's mark. · Civic/Data — Lay out the field-day long-jump pit with markings every foot. · Career — A hardware-store helper checks a customer's \"4 feet of chain\" against the yardstick: one yard plus one more foot.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.UNI.04",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Inches, feet, yards",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 2,
      "id": "MEA.UNI.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Inches, feet, yards: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Inches, feet, yards.",
      "content": "Accuracy — 8 items: 4 tape/ruler reads (whole and half inches), 2 in↔ft↔yd facts, 2 measure-and-record tasks; ≥7/8 · Explanation — \"Why is '5' useless as an answer for the table's length? Compare what 5 inches and 5 feet would each mean.\" · Transfer — On a football field marked in yards, how many feet is the 10-yard line from the goal line (30 ft)?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.UNI.05",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Mass — grams and kilograms",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 0,
      "id": "MEA.UNI.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Mass — grams and kilograms: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Mass — grams and kilograms.",
      "content": "Mass measures how much stuff is there — felt as heaviness, tested on a balance — not how big it looks; 1000 g = 1 kg, and a huge pillow can mass less than a small brick.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.UNI.05",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Mass — grams and kilograms",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 0,
      "id": "MEA.UNI.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Mass — grams and kilograms: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Mass — grams and kilograms.",
      "content": "A 250-g apple and a 750-g melon together: 250 + 750 = 1000 g — exactly 1 kg on the scale.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.UNI.05",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Mass — grams and kilograms",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 0,
      "id": "MEA.UNI.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Mass — grams and kilograms: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Mass — grams and kilograms into personal, civic/data, and career contexts.",
      "content": "Personal — Use the kitchen scale to measure the cookie recipe's 200 g of sugar instead of guessing. · Civic/Data — Food-drive rule: each donation box must stay under 10 kg so volunteers can lift it safely — weigh before sealing. · Career — A produce clerk bags 2 kg of onions using the scale, not eyeballing.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.UNI.05",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Mass — grams and kilograms",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 0,
      "id": "MEA.UNI.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Mass — grams and kilograms: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Mass — grams and kilograms.",
      "content": "Accuracy — 8 items: 4 scale reads, 2 g↔kg facts (1000 g = 1 kg), 2 choose-the-likely-mass (puppy: 4 g, 4 kg, 400 kg?); ≥7/8 · Explanation — \"A balloon is far bigger than a key, yet the balance tips to the key. Explain how that can be.\" (Mass is amount of matter, not size.) · Transfer — Balance puzzle: one 500-g weight balances 5 identical toy cars, so each car is 100 g.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.UNI.06",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Capacity — milliliters and liters",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 1,
      "id": "MEA.UNI.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Capacity — milliliters and liters: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Capacity — milliliters and liters.",
      "content": "Capacity is how much a container can hold; 1000 mL = 1 L, and shape lies — a tall skinny glass can hold less than a short wide jar, so trust the units, not the silhouette.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.UNI.06",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Capacity — milliliters and liters",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 1,
      "id": "MEA.UNI.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Capacity — milliliters and liters: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Capacity — milliliters and liters.",
      "content": "A 1-L bottle fills four 250-mL cups: 4 × 250 = 1000 mL = 1 L exactly.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.UNI.06",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Capacity — milliliters and liters",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 1,
      "id": "MEA.UNI.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Capacity — milliliters and liters: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Capacity — milliliters and liters into personal, civic/data, and career contexts.",
      "content": "Personal — Mix juice: 300 mL of concentrate plus 700 mL of water exactly fills the 1-L jug. · Civic/Data — The class waters the school garden with 500-mL scoops: 4 scoops fill the 2-L watering can. · Career — A smoothie-shop worker pours 350-mL mediums from a 2-L blender jug: 5 full cups with 250 mL left over.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.UNI.06",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Capacity — milliliters and liters",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 1,
      "id": "MEA.UNI.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Capacity — milliliters and liters: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Capacity — milliliters and liters.",
      "content": "Accuracy — 8 items: 4 jug/beaker reads, 2 mL↔L facts, 2 choose-the-likely-capacity (bathtub: 2 L, 200 L, 2000 L?); ≥7/8 · Explanation — \"The tall glass looks bigger but holds 200 mL; the short jar holds 300 mL. Why does taller fool people, and what should you trust instead?\" · Transfer — An aquarium takes 10 pours of a 2-L pitcher to fill — its capacity is 20 L.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.UNI.07",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Choosing the right unit",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 3,
      "id": "MEA.UNI.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Choosing the right unit: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Choosing the right unit.",
      "content": "Match the unit's size to the thing measured — mm/cm/m/km, g/kg, mL/L, in/ft/yd — so the number comes out easy to say, compare, and believe; the wrong unit buries meaning in zeros.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.UNI.07",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Choosing the right unit",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 3,
      "id": "MEA.UNI.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Choosing the right unit: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Choosing the right unit.",
      "content": "The hallway is 1200 cm or 12 m — same length, but 12 m is the sensible report. For a ladybug, switch the other way: 9 mm, not 0.000009 km.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.UNI.07",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Choosing the right unit",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 3,
      "id": "MEA.UNI.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Choosing the right unit: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Choosing the right unit into personal, civic/data, and career contexts.",
      "content": "Personal — Would you record your dog's mass as 12,000 g or 12 kg on its tag? Defend the choice. · Civic/Data — Explain why the park sign says the trail is 3 km rather than 300,000 cm. · Career — A delivery driver logs package masses in kilograms so the day's manifest stays readable.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.UNI.07",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Choosing the right unit",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 3,
      "id": "MEA.UNI.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Choosing the right unit: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Choosing the right unit.",
      "content": "Accuracy — 8 items: 4 pick-the-unit, 2 pick-the-instrument, 2 spot-the-absurd-claim (\"the bus is 11 m tall\"); ≥7/8 · Explanation — \"A vet chart says the puppy is '3.4' with no unit. Give two readings (3.4 g, 3.4 kg), say which is absurd and why naming the unit kills the ambiguity.\" · Transfer — Fill in sensible units for an animal fact file: giraffe height (m), coin mass (g), juice carton (L).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.UNI.08",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Reading scales and instruments (rulers, balances, jugs)",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 4,
      "id": "MEA.UNI.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Reading scales and instruments (rulers, balances, jugs): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Reading scales and instruments (rulers, balances, jugs).",
      "content": "Every instrument is a number line in costume — find two labeled marks, divide the gap by the tick count to learn what one tick is worth, then read where the pointer or level sits.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.UNI.08",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Reading scales and instruments (rulers, balances, jugs)",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 4,
      "id": "MEA.UNI.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Reading scales and instruments (rulers, balances, jugs): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Reading scales and instruments (rulers, balances, jugs).",
      "content": "A jug labeled every 100 mL with 4 spaces between labels: each tick is 100 ÷ 4 = 25 mL. Water at the second tick past 300 reads 300 + 2 × 25 = 350 mL.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.UNI.08",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Reading scales and instruments (rulers, balances, jugs)",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 4,
      "id": "MEA.UNI.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Reading scales and instruments (rulers, balances, jugs): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Reading scales and instruments (rulers, balances, jugs) into personal, civic/data, and career contexts.",
      "content": "Personal — Read the kitchen scale's needle for pancake flour when it lands between the printed numbers. · Civic/Data — Read the class rain gauge after a storm — between 2 and 3 cm, closer to 3 — and log it for the weather chart. · Career — A deli worker slices ham until the scale needle sits exactly on 250 g.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.UNI.08",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Reading scales and instruments (rulers, balances, jugs)",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 4,
      "id": "MEA.UNI.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Reading scales and instruments (rulers, balances, jugs): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Reading scales and instruments (rulers, balances, jugs).",
      "content": "Accuracy — 8 items: 6 instrument reads with varied tick values (ruler, balance, jug, thermometer), 2 work-out-the-tick-value first; ≥7/8 · Explanation — \"Lia assumes every tick equals 1 degree, but one thermometer ticks by 2. Explain the check she must do before reading any scale.\" · Transfer — Read an analog luggage scale with 0.5-kg divisions — an instrument she's never seen.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.UNI.09",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Temperature scales",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 5,
      "id": "MEA.UNI.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Temperature scales: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Temperature scales.",
      "content": "Thermometers measure hot and cold in °C or °F, each pinned by anchor points (water freezes at 0 °C / 32 °F, boils at 100 °C / 212 °F) — higher number means hotter, but the two scales label the same warmth differently.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.UNI.09",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Temperature scales",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 5,
      "id": "MEA.UNI.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Temperature scales: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Temperature scales.",
      "content": "Morning 14 °C, afternoon 23 °C: the day warmed by 23 − 14 = 9 °C.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.UNI.09",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Temperature scales",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 5,
      "id": "MEA.UNI.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Temperature scales: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Temperature scales into personal, civic/data, and career contexts.",
      "content": "Personal — Pick the coat: the forecast says 8 °C, not 28 °C — which morning is which? · Civic/Data — Pool rules say the water must reach 20 °C; the thermometer reads 17 °C, so it needs 3 more degrees. · Career — A greenhouse worker keeps the tomato house between 18 °C and 27 °C, checking the dial each round.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.UNI.09",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Temperature scales",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 5,
      "id": "MEA.UNI.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Temperature scales: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Temperature scales.",
      "content": "Accuracy — 8 items: 4 thermometer reads (varied ticks), 2 warmer/colder differences, 2 sensible-temperature judgments (hot soup: 7 °C or 70 °C?); ≥7/8 · Explanation — \"Why doesn't 30 °C mean the same weather as 30 °F? Name the two anchor points that pin each scale down.\" · Transfer — Read a freezer thermometer at −18 °C and explain what \"below zero\" means on the scale.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "MEA.UNI.10",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Benchmarks for estimation (a liter is…, a kilogram is…)",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 6,
      "id": "MEA.UNI.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Benchmarks for estimation (a liter is…, a kilogram is…): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Benchmarks for estimation (a liter is…, a kilogram is…).",
      "content": "Carry mental anchors — a door ≈ 2 m, a paper clip ≈ 1 g, a big water bottle = 1 L, a bag of sugar = 1 kg — so \"how long/heavy/full?\" becomes \"how many of the thing I know?\"",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "MEA.UNI.10",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Benchmarks for estimation (a liter is…, a kilogram is…)",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 6,
      "id": "MEA.UNI.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Benchmarks for estimation (a liter is…, a kilogram is…): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Benchmarks for estimation (a liter is…, a kilogram is…).",
      "content": "Estimate the gym door: a meter stick fits about twice up a normal door (≈2 m); the gym door looks half again taller, so ≈3 m.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "MEA.UNI.10",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Benchmarks for estimation (a liter is…, a kilogram is…)",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 6,
      "id": "MEA.UNI.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Benchmarks for estimation (a liter is…, a kilogram is…): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Benchmarks for estimation (a liter is…, a kilogram is…) into personal, civic/data, and career contexts.",
      "content": "Personal — Estimate your cat's mass in 1-kg sugar bags: feels like about 4 bags, so ≈4 kg. · Civic/Data — Plan water for the class hike: 8 kids at about half a liter each is ≈4 L to carry. · Career — A caterer eyeballs the soup pot against the 2-L bottle: about 5 bottles' worth, so ≈10 L.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "MEA.UNI.10",
      "clusterId": "MEA.UNI",
      "domain": "MEA",
      "domainName": "Measurement & Applied Quantity",
      "skillTitle": "Benchmarks for estimation (a liter is…, a kilogram is…)",
      "clusterTitle": "Units of Measure (MEA.UNI)",
      "band": "1–5",
      "hardLevel": 6,
      "id": "MEA.UNI.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Benchmarks for estimation (a liter is…, a kilogram is…): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Benchmarks for estimation (a liter is…, a kilogram is…).",
      "content": "Accuracy — 8 items: 6 estimate-then-check tasks across length, mass, capacity; 2 pick-the-best-benchmark; within stated tolerance on ≥7 · Explanation — \"Why is 'about 3 doors tall' a stronger estimate than 'maybe 6 m, it just feels right'? What makes a benchmark trustworthy?\" · Transfer — Estimate a watermelon's mass using the fact that a 1-L bottle of water is about 1 kg.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.ADD.01",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Addition as combining (sums to 10)",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 0,
      "id": "NUM.ADD.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Addition as combining (sums to 10): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Addition as combining (sums to 10).",
      "content": "Addition joins two groups into one total, and the total doesn't care which group comes first — combining 4 and 3 is the same act as combining 3 and 4.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.ADD.01",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Addition as combining (sums to 10)",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 0,
      "id": "NUM.ADD.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Addition as combining (sums to 10): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Addition as combining (sums to 10).",
      "content": "4 red counters and 3 blue: start at 4, count on \"5, 6, 7\" → 4 + 3 = 7. Bond check: 4 and 3 are a known split of 7.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.ADD.01",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Addition as combining (sums to 10)",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 0,
      "id": "NUM.ADD.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Addition as combining (sums to 10): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Addition as combining (sums to 10) into personal, civic/data, and career contexts.",
      "content": "Personal — 4 toy dinosaurs plus 3 more from your cousin — how big is the herd now? · Civic/Data — 6 children on the rug, 4 more join for the read-aloud — total for the helper chart. · Career — A park ranger counts 5 ducks and 4 geese on the pond: 9 birds for the log.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.ADD.01",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Addition as combining (sums to 10)",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 0,
      "id": "NUM.ADD.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Addition as combining (sums to 10): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Addition as combining (sums to 10).",
      "content": "Accuracy — 6 items: sums to 10 as objects, pictures, and bare facts, both orders; ≥5/6 · Explanation — Why does 4 + 3 give the same total as 3 + 4? Show it with the two groups. · Transfer — A domino shows 4 pips and 3 pips — how many in all without recounting from 1?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.ADD.02",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Subtraction as taking away and comparing",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 1,
      "id": "NUM.ADD.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Subtraction as taking away and comparing: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Subtraction as taking away and comparing.",
      "content": "Subtraction answers two different questions with one operation: \"how many are left?\" (take away) and \"how many more?\" (compare) — both are 9 − 4.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.ADD.02",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Subtraction as taking away and comparing",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 1,
      "id": "NUM.ADD.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Subtraction as taking away and comparing: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Subtraction as taking away and comparing.",
      "content": "9 grapes, eat 4: 9 − 4 = 5 left. Compare meaning: Ana has 9, Ben has 4 — line them up; Ana has 5 more. Same fact, two stories.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.ADD.02",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Subtraction as taking away and comparing",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 1,
      "id": "NUM.ADD.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Subtraction as taking away and comparing: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Subtraction as taking away and comparing into personal, civic/data, and career contexts.",
      "content": "Personal — 9 balloons at your party, 4 pop — how many still flying? · Civic/Data — The book cart held 10 books; 6 are shelved — how many more to go? · Career — A baker made 8 bagels and sold 3 — how many remain in the case?",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.ADD.02",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Subtraction as taking away and comparing",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 1,
      "id": "NUM.ADD.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Subtraction as taking away and comparing: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Subtraction as taking away and comparing.",
      "content": "Accuracy — 6 items: take-away and comparison problems within 10, mixed; ≥5/6 · Explanation — Tom solves \"Ana has 9, Ben has 4, how many more has Ana?\" with 9 + 4 — find the flaw and say which picture fits. · Transfer — In a board game you're on square 9 and slide back 4 — where do you land?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.ADD.03",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fact families and inverse relationship",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 2,
      "id": "NUM.ADD.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Fact families and inverse relationship: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Fact families and inverse relationship.",
      "content": "Addition and subtraction undo each other: one bond like 3, 5, 8 generates four facts (3+5, 5+3, 8−3, 8−5), so a known sum answers a subtraction for free.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.ADD.03",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fact families and inverse relationship",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 2,
      "id": "NUM.ADD.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Fact families and inverse relationship: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Fact families and inverse relationship.",
      "content": "Family of 3, 5, 8: 3 + 5 = 8, 5 + 3 = 8, 8 − 3 = 5, 8 − 5 = 3. To solve 8 − 5, ask \"5 plus what makes 8?\" — 3.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.ADD.03",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fact families and inverse relationship",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 2,
      "id": "NUM.ADD.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Fact families and inverse relationship: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Fact families and inverse relationship into personal, civic/data, and career contexts.",
      "content": "Personal — You know 6 + 7 = 13, so when 7 of your 13 grapes are eaten you instantly know 6 are left. · Civic/Data — Class of 15: 8 bought lunch, so 15 − 8 = 7 packed — check it with 8 + 7. · Career — A coach with 12 jerseys hands out 5: 7 left, because 5 + 7 = 12.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.ADD.03",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fact families and inverse relationship",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 2,
      "id": "NUM.ADD.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Fact families and inverse relationship: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Fact families and inverse relationship.",
      "content": "Accuracy — 6 items: complete fact families, use a given sum to solve a subtraction; ≥5/6 · Explanation — Why does knowing 5 + 3 = 8 let you solve 8 − 5 without counting anything? · Transfer — 14 socks belong in the drawer and 8 are in the wash — use the family of 8, 6, 14.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.ADD.04",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Make-a-ten strategy",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 3,
      "id": "NUM.ADD.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Make-a-ten strategy: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Make-a-ten strategy.",
      "content": "Ten is the friendliest number: split one addend to complete a ten, then add what's left — 8 + 5 becomes 10 + 3. This is bonds-to-ten put to work.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.ADD.04",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Make-a-ten strategy",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 3,
      "id": "NUM.ADD.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Make-a-ten strategy: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Make-a-ten strategy.",
      "content": "8 + 5: take 2 from the 5 to fill 8 up to 10; 3 remains; 10 + 3 = 13.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.ADD.04",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Make-a-ten strategy",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 3,
      "id": "NUM.ADD.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Make-a-ten strategy: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Make-a-ten strategy into personal, civic/data, and career contexts.",
      "content": "Personal — 8 crayons in the tin, 5 new ones — slide 2 in to make a full row of 10, then 3 more. · Civic/Data — 9 kids seated, 6 arrive: 9 + 1 + 5 = 15 for the lunch count. · Career — A shelf stocker adds 7 cans to a row of 8: 8 + 2 + 5 = 15 fills the facing.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.ADD.04",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Make-a-ten strategy",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 3,
      "id": "NUM.ADD.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Make-a-ten strategy: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Make-a-ten strategy.",
      "content": "Accuracy — 6 items: sums bridging ten (7+6, 9+4…), show the split used; ≥5/6 · Explanation — Ria does 8 + 5 by moving 2 across but still adds the whole 5, getting 15 — find the double-counted piece. · Transfer — On a number line, jump 9 + 7 by landing on 10 first — where do you stop?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.ADD.05",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Addition and subtraction within 100 (no regrouping)",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 4,
      "id": "NUM.ADD.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Addition and subtraction within 100 (no regrouping): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Addition and subtraction within 100 (no regrouping).",
      "content": "With friendly digits, two-digit numbers add and subtract place by place — tens with tens, ones with ones — because place value keeps the parts separate.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.ADD.05",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Addition and subtraction within 100 (no regrouping)",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 4,
      "id": "NUM.ADD.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Addition and subtraction within 100 (no regrouping): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Addition and subtraction within 100 (no regrouping).",
      "content": "34 + 25: tens 30 + 20 = 50, ones 4 + 5 = 9, so 59. Likewise 57 − 23: 50 − 20 = 30, 7 − 3 = 4 → 34.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.ADD.05",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Addition and subtraction within 100 (no regrouping)",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 4,
      "id": "NUM.ADD.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Addition and subtraction within 100 (no regrouping): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Addition and subtraction within 100 (no regrouping) into personal, civic/data, and career contexts.",
      "content": "Personal — You have 45 marbles and win 23 more — pouch total 68. · Civic/Data — Recycling drive: 52 bottles Monday + 36 Tuesday = 88 on the class graph. · Career — A florist starts with 67 roses and sells 24 — 43 left for the afternoon.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.ADD.05",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Addition and subtraction within 100 (no regrouping)",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 4,
      "id": "NUM.ADD.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Addition and subtraction within 100 (no regrouping): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Addition and subtraction within 100 (no regrouping).",
      "content": "Accuracy — 8 items: 2-digit ± 2-digit with no regrouping, horizontal and vertical forms; ≥7/8 · Explanation — Why is it legal to add the tens and the ones separately? What about 34 makes that work? · Transfer — Two chapters are 23 and 41 pages — total pages in tonight's reading.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.ADD.06",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Regrouping in addition",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 5,
      "id": "NUM.ADD.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Regrouping in addition: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Regrouping in addition.",
      "content": "When ones overflow past 9, ten of them bundle into one new ten — regrouping is the bundling idea from place value happening mid-calculation.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.ADD.06",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Regrouping in addition",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 5,
      "id": "NUM.ADD.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Regrouping in addition: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Regrouping in addition.",
      "content": "47 + 38: ones 7 + 8 = 15 = 1 ten + 5 ones; write 5, carry the ten; tens 40 + 30 + 10 = 80 → 85.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.ADD.06",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Regrouping in addition",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 5,
      "id": "NUM.ADD.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Regrouping in addition: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Regrouping in addition into personal, civic/data, and career contexts.",
      "content": "Personal — 36 trading cards plus a 47-card gift — does your 80-slot binder fit all 83? · Civic/Data — Food drive: 48 cans last week + 36 this week = 84 toward the goal poster. · Career — A carpenter uses 29 nails on one frame and 34 on another — 63 from the box.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.ADD.06",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Regrouping in addition",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 5,
      "id": "NUM.ADD.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Regrouping in addition: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Regrouping in addition.",
      "content": "Accuracy — 8 items: 2-digit sums with one regroup, 2 review items from .05 mixed in; ≥7/8 · Explanation — A student writes 47 + 38 = 715 — say exactly what they did with the 15 and why bundling fixes it. · Transfer — Step counter: 56 steps to the gate + 38 to the corner — total before crossing.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.ADD.07",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Regrouping in subtraction",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 6,
      "id": "NUM.ADD.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Regrouping in subtraction: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Regrouping in subtraction.",
      "content": "When the ones digit is too small to subtract from, unbundle one ten into ten ones — the number's value never changes, only its outfit (62 = 50 + 12).",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.ADD.07",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Regrouping in subtraction",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 6,
      "id": "NUM.ADD.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Regrouping in subtraction: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Regrouping in subtraction.",
      "content": "62 − 28: can't take 8 from 2, so unbundle: 62 = 50 + 12. Ones 12 − 8 = 4; tens 50 − 20 = 30 → 34. Check: 34 + 28 = 62. ✓",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.ADD.07",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Regrouping in subtraction",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 6,
      "id": "NUM.ADD.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Regrouping in subtraction: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Regrouping in subtraction into personal, civic/data, and career contexts.",
      "content": "Personal — You had 41 shells and gave 17 to a friend — 24 left in the bucket. · Civic/Data — 70 raffle tickets printed, 38 sold — 32 still at the office. · Career — A librarian's shelf of 83 books has 46 checked out — 37 remain.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.ADD.07",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Regrouping in subtraction",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 6,
      "id": "NUM.ADD.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Regrouping in subtraction: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Regrouping in subtraction.",
      "content": "Accuracy — 8 items: 2-digit differences with one unbundle, including zeros in the ones (70 − 38); ≥7/8 · Explanation — For 62 − 28 a student answers 46 by doing 8 − 2 in the ones — find the flaw and show the unbundle that fixes it. · Transfer — A 50-minute show has run 24 minutes — minutes left.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.ADD.08",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multi-digit addition and subtraction (algorithms)",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 7,
      "id": "NUM.ADD.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Multi-digit addition and subtraction (algorithms): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Multi-digit addition and subtraction (algorithms).",
      "content": "The column algorithm is regrouping made routine: align places, work right to left, and every little carried \"1\" is a ten or a hundred, not a one.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.ADD.08",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multi-digit addition and subtraction (algorithms)",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 7,
      "id": "NUM.ADD.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Multi-digit addition and subtraction (algorithms): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Multi-digit addition and subtraction (algorithms).",
      "content": "536 + 287: ones 6 + 7 = 13, write 3 carry 1; tens 3 + 8 + 1 = 12, write 2 carry 1; hundreds 5 + 2 + 1 = 8 → 823.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.ADD.08",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multi-digit addition and subtraction (algorithms)",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 7,
      "id": "NUM.ADD.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Multi-digit addition and subtraction (algorithms): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Multi-digit addition and subtraction (algorithms) into personal, civic/data, and career contexts.",
      "content": "Personal — Quiz-game nights: 347 points Friday + 285 Saturday = 632 for the weekend. · Civic/Data — Two schools recycled 614 and 379 cans: 993 together, and 614 − 379 = 235 apart. · Career — A warehouse holds 1,250 boxes and ships 478 — 772 left on the racks.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.ADD.08",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multi-digit addition and subtraction (algorithms)",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 7,
      "id": "NUM.ADD.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Multi-digit addition and subtraction (algorithms): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Multi-digit addition and subtraction (algorithms).",
      "content": "Accuracy — 8 items: 3–4 digit sums and differences, double regroups, 2 review items from .07; ≥7/8 · Explanation — In 536 + 287, why does the little carried 1 above the tens mean ten, not one? What is it a bundle of? · Transfer — A craft kit lists 824 beads; 356 are used — beads left for the next project.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.ADD.09",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Mental strategies and compensation",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 0,
      "id": "NUM.ADD.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Mental strategies and compensation: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Mental strategies and compensation.",
      "content": "You can adjust a calculation to a friendlier one and repay the change: 64 − 29 becomes 64 − 30 + 1. Knowing why you add the 1 back is the skill.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.ADD.09",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Mental strategies and compensation",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 0,
      "id": "NUM.ADD.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Mental strategies and compensation: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Mental strategies and compensation.",
      "content": "64 − 29: take 30 → 34; you took 1 too many, give it back → 35. Also 98 + 47: 100 + 47 = 147, repay 2 → 145.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.ADD.09",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Mental strategies and compensation",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 0,
      "id": "NUM.ADD.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Mental strategies and compensation: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Mental strategies and compensation into personal, civic/data, and career contexts.",
      "content": "Personal — Trading 29 of your 76 marbles: think \"minus 30, plus 1\" → 47 while the trade happens. · Civic/Data — Fair tickets: 198 sold yesterday + 56 today ≈ 200 + 56 − 2 = 254 announced from the booth. · Career — A market-stall seller adds 99 + 45 apples as 100 + 44 = 144 without paper.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.ADD.09",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Mental strategies and compensation",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 0,
      "id": "NUM.ADD.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Mental strategies and compensation: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Mental strategies and compensation.",
      "content": "Accuracy — 8 items: mental sums/differences near round numbers, learner names the adjustment used; ≥7/8 · Explanation — In 64 − 29 = 64 − 30 + 1, why is the final step *adding* 1 when the problem is subtraction? · Transfer — 301 − 198 in your head by shifting both numbers (add 2 to each) — what's the difference?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.ADD.10",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Two-step word problems (additive)",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 8,
      "id": "NUM.ADD.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Two-step word problems (additive): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Two-step word problems (additive).",
      "content": "Real problems chain two additive actions; the answer to step one becomes the input to step two, so the order of the story constrains the order of the math.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.ADD.10",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Two-step word problems (additive)",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 8,
      "id": "NUM.ADD.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Two-step word problems (additive): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Two-step word problems (additive).",
      "content": "You have 32 stickers, give away 15, then earn 28: 32 − 15 = 17, then 17 + 28 = 45 stickers.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.ADD.10",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Two-step word problems (additive)",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 8,
      "id": "NUM.ADD.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Two-step word problems (additive): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Two-step word problems (additive) into personal, civic/data, and career contexts.",
      "content": "Personal — Pocket money: start with $12, spend $5 on a comic, earn $7 raking leaves — end with $14. · Civic/Data — Can drive goal 120: collected 53, then 29 more — 82 in, so 38 still needed. · Career — A bus driver has 26 riders; 9 step off and 12 board — 29 continue downtown.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.ADD.10",
      "clusterId": "NUM.ADD",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Two-step word problems (additive)",
      "clusterTitle": "Addition & Subtraction (NUM.ADD)",
      "band": "K–3",
      "hardLevel": 8,
      "id": "NUM.ADD.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Two-step word problems (additive): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Two-step word problems (additive).",
      "content": "Accuracy — 8 items: two-step problems mixing join/separate/compare, 2 single-step decoys; ≥7/8 · Explanation — For the sticker problem a student computes 15 + 28 = 43, then tries 32 − 43 — explain where the plan broke and why step order matters. · Transfer — Elevator load: 18 people aboard, 7 exit, 9 enter — how many ride up?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.CNT.01",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Counting to 10 with one-to-one correspondence",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 0,
      "id": "NUM.CNT.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Counting to 10 with one-to-one correspondence: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Counting to 10 with one-to-one correspondence.",
      "content": "Counting is tagging — each object gets exactly one number word, in order, with no skips or double-counts. Saying the sequence is not the same as counting things.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.CNT.01",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Counting to 10 with one-to-one correspondence",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 0,
      "id": "NUM.CNT.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Counting to 10 with one-to-one correspondence: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Counting to 10 with one-to-one correspondence.",
      "content": "A row of 7 toy cars: touch each car once while saying \"1, 2, 3, 4, 5, 6, 7\" — one word per car, stop at the last car. Seven cars.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.CNT.01",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Counting to 10 with one-to-one correspondence",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 0,
      "id": "NUM.CNT.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Counting to 10 with one-to-one correspondence: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Counting to 10 with one-to-one correspondence into personal, civic/data, and career contexts.",
      "content": "Personal — Set the table: one fork for each of 6 family members, touch-counting as you place them. · Civic/Data — Count the children at circle time, one gentle shoulder tap each, so the teacher knows everyone is here. · Career — A baker counts 8 muffins into a box, one number word per muffin, so no box goes out short.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.CNT.01",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Counting to 10 with one-to-one correspondence",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 0,
      "id": "NUM.CNT.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Counting to 10 with one-to-one correspondence: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Counting to 10 with one-to-one correspondence.",
      "content": "Accuracy — 6 items: count sets of 3–10 in rows, circles, and scattered layouts; ≥5/6 · Explanation — A puppet counts 5 blocks but skips one and announces \"4!\" — say what the puppet did wrong and why the answer changed. · Transfer — Count 9 stair steps while climbing them (counting actions, not objects).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.CNT.02",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Cardinality — \"how many\" as the last count",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 1,
      "id": "NUM.CNT.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Cardinality — \"how many\" as the last count: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Cardinality — \"how many\" as the last count.",
      "content": "The last number said tells how many are in the whole set — and that number stays the same if nothing is added or removed, even when the objects are rearranged.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.CNT.02",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Cardinality — \"how many\" as the last count",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 1,
      "id": "NUM.CNT.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Cardinality — \"how many\" as the last count: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Cardinality — \"how many\" as the last count.",
      "content": "Count 6 crayons: \"1, 2, 3, 4, 5, 6.\" Asked \"how many crayons?\" — answer 6 without recounting. Spread them into a circle: still 6.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.CNT.02",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Cardinality — \"how many\" as the last count",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 1,
      "id": "NUM.CNT.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Cardinality — \"how many\" as the last count: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Cardinality — \"how many\" as the last count into personal, civic/data, and career contexts.",
      "content": "Personal — Count 5 apples into the fruit bowl, then tell a parent how many are there without counting again. · Civic/Data — Class vote: count 9 raised hands for story time and report \"9\" to the teacher. · Career — A librarian counts 7 returned books and writes 7 on the return slip — the last count is the total.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.CNT.02",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Cardinality — \"how many\" as the last count",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 1,
      "id": "NUM.CNT.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Cardinality — \"how many\" as the last count: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Cardinality — \"how many\" as the last count.",
      "content": "Accuracy — 6 items: count, then answer \"how many,\" including after the set is rearranged; ≥5/6 · Explanation — Maya counted 8 shells, then spread them out and says she must recount — explain why the number cannot have changed. · Transfer — Listen to 6 drum beats and say how many you heard.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.CNT.03",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Counting to 100 by ones and tens",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 2,
      "id": "NUM.CNT.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Counting to 100 by ones and tens: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Counting to 100 by ones and tens.",
      "content": "The counting sequence runs to 100 with a repeating pattern: after each \"-nine\" a new ten starts. Counting by tens rides the same structure ten times faster.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.CNT.03",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Counting to 100 by ones and tens",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 2,
      "id": "NUM.CNT.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Counting to 100 by ones and tens: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Counting to 100 by ones and tens.",
      "content": "By tens: 10, 20, 30, 40, 50, 60, 70, 80, 90, 100. By ones across a decade: 38, 39, then 40 — a new ten starts — then 41, 42.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.CNT.03",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Counting to 100 by ones and tens",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 2,
      "id": "NUM.CNT.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Counting to 100 by ones and tens: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Counting to 100 by ones and tens into personal, civic/data, and career contexts.",
      "content": "Personal — Hide-and-seek: count to 50 out loud without stumbling at 29 → 30. · Civic/Data — The class 100-days-of-school chain: add today's link and read the day number aloud. · Career — A farmer packs eggs in cartons of ten and counts cartons: 10, 20, 30, 40 eggs.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.CNT.03",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Counting to 100 by ones and tens",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 2,
      "id": "NUM.CNT.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Counting to 100 by ones and tens: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Counting to 100 by ones and tens.",
      "content": "Accuracy — 6 items: continue sequences across decade turns (…58, 59, __), fill tens patterns (30, 40, __); ≥5/6 · Explanation — Sam says after 59 comes \"fifty-ten\" — what number really comes next, and why does the pattern start a new name? · Transfer — Count 100 hops by tens, saying only the decade numbers.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.CNT.04",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Comparing collections (more, fewer, same)",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 0,
      "id": "NUM.CNT.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Comparing collections (more, fewer, same): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Comparing collections (more, fewer, same).",
      "content": "Pairing objects one-to-one settles \"more, fewer, or the same\" — leftovers mean more. How spread out things look does not decide it.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.CNT.04",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Comparing collections (more, fewer, same)",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 0,
      "id": "NUM.CNT.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Comparing collections (more, fewer, same): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Comparing collections (more, fewer, same).",
      "content": "8 red cubes and 6 blue cubes: pair each red with a blue. Two reds have no partner, so red has more — 8 is more than 6, 6 is fewer than 8.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.CNT.04",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Comparing collections (more, fewer, same)",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 0,
      "id": "NUM.CNT.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Comparing collections (more, fewer, same): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Comparing collections (more, fewer, same) into personal, civic/data, and career contexts.",
      "content": "Personal — Who got more grapes, you (8) or your sister (6)? Line them up in pairs to prove it. · Civic/Data — The snack chart shows 9 chose apples and 7 chose bananas — which snack got more votes? · Career — A bus driver checks 10 seats against 8 riders — are there more seats or more riders?",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.CNT.04",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Comparing collections (more, fewer, same)",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 0,
      "id": "NUM.CNT.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Comparing collections (more, fewer, same): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Comparing collections (more, fewer, same).",
      "content": "Accuracy — 6 items: compare sets to 10 shown as objects, pictures, and mixed arrangements; ≥5/6 · Explanation — Jo says the long spread-out row of 5 cubes has more than the squeezed row of 7 — find the flaw in judging by length. · Transfer — More boys or girls in the lunch line? Pair them up instead of counting.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.CNT.05",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Number symbols 0–20 — reading and writing",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 2,
      "id": "NUM.CNT.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Number symbols 0–20 — reading and writing: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Number symbols 0–20 — reading and writing.",
      "content": "Each quantity has a written symbol; reading and writing numerals to 20 connects counts to print. Teen numbers are written with the 1 first because they are \"ten and some more.\"",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.CNT.05",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Number symbols 0–20 — reading and writing",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 2,
      "id": "NUM.CNT.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Number symbols 0–20 — reading and writing: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Number symbols 0–20 — reading and writing.",
      "content": "Count 13 acorns: \"…11, 12, 13.\" Write 13 — a 1 then a 3. Shown the card \"16,\" read it as \"sixteen\" and count out 16 counters to match.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.CNT.05",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Number symbols 0–20 — reading and writing",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 2,
      "id": "NUM.CNT.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Number symbols 0–20 — reading and writing: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Number symbols 0–20 — reading and writing into personal, civic/data, and career contexts.",
      "content": "Personal — Write your reading-night total, the numeral 16, on the chart at home. · Civic/Data — Find today's date, the numeral 14, on the classroom calendar and read it aloud. · Career — A mail carrier matches the numeral 18 on a letter to the 18 painted on the house.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.CNT.05",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Number symbols 0–20 — reading and writing",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 2,
      "id": "NUM.CNT.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Number symbols 0–20 — reading and writing: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Number symbols 0–20 — reading and writing.",
      "content": "Accuracy — 6 items: read numerals 0–20, write numerals for counted sets, match numeral ↔ quantity; ≥5/6 · Explanation — Ben wrote \"31\" for thirteen — what got mixed up, and which digit should come first? · Transfer — On a walk, read the house numbers up to 20 and write down the one where you stop.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.CNT.06",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Ordering numbers to 20",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 3,
      "id": "NUM.CNT.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Ordering numbers to 20: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Ordering numbers to 20.",
      "content": "Numbers to 20 have a fixed order — each number is one more than the one before — so any set of them can be arranged from smallest to largest.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.CNT.06",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Ordering numbers to 20",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 3,
      "id": "NUM.CNT.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Ordering numbers to 20: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Ordering numbers to 20.",
      "content": "Cards 12, 8, 17: 8 is smallest, 12 comes next, 17 is largest → 8, 12, 17, because 8 < 12 < 17.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.CNT.06",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Ordering numbers to 20",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 3,
      "id": "NUM.CNT.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Ordering numbers to 20: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Ordering numbers to 20 into personal, civic/data, and career contexts.",
      "content": "Personal — Arrange birthday cards numbered 6, 9, 13 on the shelf from youngest to oldest cousin. · Civic/Data — Put the cubby tags 11, 15, and 8 back in order so the row reads correctly. · Career — A deli helper calls waiting-line tickets in order — 8 must be served before 11.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.CNT.06",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Ordering numbers to 20",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 3,
      "id": "NUM.CNT.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Ordering numbers to 20: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Ordering numbers to 20.",
      "content": "Accuracy — 6 items: order 3–4 numbers within 20, find the number between two others, spot the out-of-place number; ≥5/6 · Explanation — Pia put 9 after 12 \"because 9 is a bigger digit than 1\" — explain why 12 is still more than 9. · Transfer — Order three game scores — 14, 7, 20 — from a board game leaderboard.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.CNT.07",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Counting on from a known number",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 3,
      "id": "NUM.CNT.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Counting on from a known number: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Counting on from a known number.",
      "content": "When you already know how many are in a group, you can keep counting from that number instead of starting at 1 — the known count stands for the whole group.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.CNT.07",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Counting on from a known number",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 3,
      "id": "NUM.CNT.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Counting on from a known number: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Counting on from a known number.",
      "content": "A jar holds 5 marbles (already counted). Drop in 3 more: count on \"6, 7, 8\" — 8 marbles, no restarting at 1.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.CNT.07",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Counting on from a known number",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 3,
      "id": "NUM.CNT.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Counting on from a known number: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Counting on from a known number into personal, civic/data, and career contexts.",
      "content": "Personal — 6 toy cars are in the box; add 3 from the floor, counting \"7, 8, 9.\" · Civic/Data — Attendance: 10 children on the rug, 2 walk in late — count on \"11, 12\" present. · Career — A grocery clerk has bagged 5 cans and adds 3 more, counting \"6, 7, 8.\"",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.CNT.07",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Counting on from a known number",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 3,
      "id": "NUM.CNT.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Counting on from a known number: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Counting on from a known number.",
      "content": "Accuracy — 6 items: count on 1–4 more from a stated amount, shown and hidden groups; ≥5/6 · Explanation — Why don't you need to recount the 5 marbles already in the jar? What does the \"5\" already tell you? · Transfer — You've read to page 12; count on three more pages: 13, 14, 15.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.CNT.08",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Skip counting by 2s and 5s",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 4,
      "id": "NUM.CNT.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Skip counting by 2s and 5s: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Skip counting by 2s and 5s.",
      "content": "Counting equal groups by 2s or 5s reaches the same total as counting by ones, faster — every jump adds the same amount and no object is missed.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.CNT.08",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Skip counting by 2s and 5s",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 4,
      "id": "NUM.CNT.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Skip counting by 2s and 5s: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Skip counting by 2s and 5s.",
      "content": "10 shoes in pairs: \"2, 4, 6, 8, 10\" — five jumps of 2 make 10. Fingers on four hands by 5s: \"5, 10, 15, 20.\"",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.CNT.08",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Skip counting by 2s and 5s",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 4,
      "id": "NUM.CNT.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Skip counting by 2s and 5s: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Skip counting by 2s and 5s into personal, civic/data, and career contexts.",
      "content": "Personal — Count the socks from the laundry basket by 2s as you pair them. · Civic/Data — Tally the class \"high-fives chart\" by 5s — each tally bundle is one hand. · Career — A florist bundles tulips in 5s and counts bunches: 5, 10, 15, 20.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.CNT.08",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Skip counting by 2s and 5s",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 4,
      "id": "NUM.CNT.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Skip counting by 2s and 5s: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Skip counting by 2s and 5s.",
      "content": "Accuracy — 6 items: continue 2s and 5s patterns, count paired/bundled pictures; ≥5/6 · Explanation — Ali counts shoes \"2, 4, 5, 6\" — find the broken jump and explain why every jump must be the same size. · Transfer — Count the crayons in 4 unopened packs of 5 without opening them.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.CNT.09",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Decomposing numbers to 10 (number bonds)",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 0,
      "id": "NUM.CNT.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Decomposing numbers to 10 (number bonds): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Decomposing numbers to 10 (number bonds).",
      "content": "Every number to 10 can be split into parts in several ways (7 is 5+2, 6+1, 4+3…), and the parts rebuild the whole — the seed of all addition and subtraction.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.CNT.09",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Decomposing numbers to 10 (number bonds)",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 0,
      "id": "NUM.CNT.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Decomposing numbers to 10 (number bonds): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Decomposing numbers to 10 (number bonds).",
      "content": "7 counters split two ways at a time: 5 and 2, 4 and 3, 6 and 1, 7 and 0. On a ten-frame, 7 filled leaves 3 empty — 7 and 3 make 10.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.CNT.09",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Decomposing numbers to 10 (number bonds)",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 0,
      "id": "NUM.CNT.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Decomposing numbers to 10 (number bonds): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Decomposing numbers to 10 (number bonds) into personal, civic/data, and career contexts.",
      "content": "Personal — Share 6 strawberries between two plates and find all the fair-and-unfair ways: 5 and 1, 4 and 2, 3 and 3. · Civic/Data — 10 class pencils live in two cups — chart the pairs that make 10. · Career — A baker has 8 cupcakes in a 10-box: 2 spaces left, because 8 and 2 make 10.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.CNT.09",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Decomposing numbers to 10 (number bonds)",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 0,
      "id": "NUM.CNT.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Decomposing numbers to 10 (number bonds): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Decomposing numbers to 10 (number bonds).",
      "content": "Accuracy — 6 items: find missing parts of bonds to 10, show two splits of one number; ≥5/6 · Explanation — Dee says 6 and 3 make 10 — use a ten-frame to show why she is off by one. · Transfer — Hide 4 of your 10 fingers: how many are showing, and what bond is that?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.CNT.10",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Zero and the empty set",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 3,
      "id": "NUM.CNT.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Zero and the empty set: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Zero and the empty set.",
      "content": "Zero is the number of things in an empty set — a real answer to \"how many,\" not just \"nothing,\" and it gets its own symbol and place in the count 3, 2, 1, 0.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.CNT.10",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Zero and the empty set",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 3,
      "id": "NUM.CNT.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Zero and the empty set: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Zero and the empty set.",
      "content": "Three plates: 2 cookies, 1 cookie, 0 cookies. The empty plate's count is written 0. Countdown as cookies are eaten: 3, 2, 1, 0 — zero means none left.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.CNT.10",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Zero and the empty set",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 3,
      "id": "NUM.CNT.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Zero and the empty set: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Zero and the empty set into personal, civic/data, and career contexts.",
      "content": "Personal — The cookie jar after snack time: how many left? Write 0 on the kitchen whiteboard. · Civic/Data — The class weather chart shows 0 rainy days this week — say what that 0 tells everyone. · Career — A parking helper sees 0 empty spaces and flips the sign to FULL.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.CNT.10",
      "clusterId": "NUM.CNT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Zero and the empty set",
      "clusterTitle": "Counting & Cardinality (NUM.CNT)",
      "band": "K–1",
      "hardLevel": 3,
      "id": "NUM.CNT.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Zero and the empty set: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Zero and the empty set.",
      "content": "Accuracy — 6 items: count sets including empty ones, place 0 in countdowns, read/write 0; ≥5/6 · Explanation — Ana skipped the empty fish bowl when recording how many fish in each bowl — why does that bowl still need a number? · Transfer — The equipment list asks how many balls are in an empty basket — record it.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.DEC.01",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Tenths and hundredths — decimal notation",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 1,
      "id": "NUM.DEC.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Tenths and hundredths — decimal notation: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Tenths and hundredths — decimal notation.",
      "content": "Decimals extend place value to the right of the ones: 0.1 = 1/10 and 0.01 = 1/100, so a decimal is just a fraction with a denominator of 10 or 100 written positionally.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.DEC.01",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Tenths and hundredths — decimal notation",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 1,
      "id": "NUM.DEC.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Tenths and hundredths — decimal notation: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Tenths and hundredths — decimal notation.",
      "content": "Write 3/10 and 47/100 as decimals: 3/10 = 0.3; 47/100 = 0.47. Then show 0.5 = 0.50 because 5/10 = 50/100 — trailing zeros don't change the value.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.DEC.01",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Tenths and hundredths — decimal notation",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 1,
      "id": "NUM.DEC.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Tenths and hundredths — decimal notation: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Tenths and hundredths — decimal notation into personal, civic/data, and career contexts.",
      "content": "Personal — your fitness tracker shows 0.6 km of a 1-km goal; say what fraction of the goal is done. · Civic/Data — a weather report lists 0.08 inches of rain; explain what that means in hundredths of an inch. · Career — a deli scale reads 0.75 lb of cheese; write it as a fraction of a pound for the label.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.DEC.01",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Tenths and hundredths — decimal notation",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 1,
      "id": "NUM.DEC.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Tenths and hundredths — decimal notation: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Tenths and hundredths — decimal notation.",
      "content": "Accuracy — 8 items converting tenths/hundredths both directions (2 place-value review) ≥7/8 · Explanation — why is 0.5 the same number as 0.50 but not the same as 0.05? · Transfer — read a car odometer's tenths digit and state the distance as a fraction.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.DEC.02",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Decimals on the number line",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 2,
      "id": "NUM.DEC.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Decimals on the number line: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Decimals on the number line.",
      "content": "Every decimal has a position: zoom between whole numbers for tenths, between tenths for hundredths. Position makes density visible — there is always another decimal in between.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.DEC.02",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Decimals on the number line",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 2,
      "id": "NUM.DEC.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Decimals on the number line: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Decimals on the number line.",
      "content": "Place 2.7 and 2.35 between 2 and 3: 2.35 sits halfway between 2.3 and 2.4. Which is closer to 2.5? Distances are 2.5 − 2.35 = 0.15 and 2.7 − 2.5 = 0.2, so 2.35 is closer.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.DEC.02",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Decimals on the number line",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 2,
      "id": "NUM.DEC.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Decimals on the number line: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Decimals on the number line into personal, civic/data, and career contexts.",
      "content": "Personal — mark your 2.45 m long-jump on a measuring tape between 2.4 and 2.5. · Civic/Data — place a 37.5 °C fever reading on a thermometer scale marked in whole degrees. · Career — a carpenter marks 1.85 m on a plank using a tape graduated in tenths.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.DEC.02",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Decimals on the number line",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 2,
      "id": "NUM.DEC.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Decimals on the number line: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Decimals on the number line.",
      "content": "Accuracy — 8 items placing/reading decimals on labeled and partially labeled lines (2 review) ≥7/8 · Explanation — find the flaw: a learner places 2.35 past 2.7 \"because 35 > 7\" · Transfer — locate a 4.08 s reaction time on a stopwatch scale.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.DEC.03",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Comparing and ordering decimals",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 3,
      "id": "NUM.DEC.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Comparing and ordering decimals: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Comparing and ordering decimals.",
      "content": "Compare decimals place by place from the left after padding to equal length; digit count alone says nothing about size.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.DEC.03",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Comparing and ordering decimals",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 3,
      "id": "NUM.DEC.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Comparing and ordering decimals: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Comparing and ordering decimals.",
      "content": "Order 0.4, 0.35, 0.405. Pad: 0.400, 0.350, 0.405. So 0.35 < 0.4 < 0.405.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.DEC.03",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Comparing and ordering decimals",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 3,
      "id": "NUM.DEC.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Comparing and ordering decimals: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Comparing and ordering decimals into personal, civic/data, and career contexts.",
      "content": "Personal — rank race times 12.31 s, 12.4 s, 12.305 s to find the fastest (12.305). · Civic/Data — order monthly rainfall totals 5.9, 5.85, 6.05 cm for a class weather chart. · Career — a quality inspector sorts part thicknesses 0.09, 0.1, 0.085 mm to find which is out of spec.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.DEC.03",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Comparing and ordering decimals",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 3,
      "id": "NUM.DEC.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Comparing and ordering decimals: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Comparing and ordering decimals.",
      "content": "Accuracy — 8 compare/order items with traps like 0.35 vs 0.4 (2 review) ≥7/8 · Explanation — spot the flaw: \"0.35 > 0.4 because 35 > 4\" · Transfer — order library books by Dewey decimals 512.4, 512.35, 512.405.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.DEC.04",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fraction–decimal equivalents",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 4,
      "id": "NUM.DEC.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Fraction–decimal equivalents: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Fraction–decimal equivalents.",
      "content": "A fraction converts to a decimal by rewriting it with denominator 10 or 100 (or by dividing); both notations name the same number.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.DEC.04",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fraction–decimal equivalents",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 4,
      "id": "NUM.DEC.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Fraction–decimal equivalents: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Fraction–decimal equivalents.",
      "content": "3/5 = 6/10 = 0.6; 7/20 = 35/100 = 0.35. Reverse: 0.84 = 84/100 = 21/25 after dividing top and bottom by 4.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.DEC.04",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fraction–decimal equivalents",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 4,
      "id": "NUM.DEC.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Fraction–decimal equivalents: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Fraction–decimal equivalents into personal, civic/data, and career contexts.",
      "content": "Personal — compare 3/4 of a pizza left at your house with 0.7 of one at a friend's by converting 3/4 to 0.75. · Civic/Data — a survey says 3/5 of students walk to school; write it as 0.6 for the data display. · Career — a machinist converts a 7/20-inch spec to 0.35 for a digital caliper.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.DEC.04",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fraction–decimal equivalents",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 4,
      "id": "NUM.DEC.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Fraction–decimal equivalents: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Fraction–decimal equivalents.",
      "content": "Accuracy — 8 conversions both directions, fifths/twentieths/quarters included (2 review) ≥7/8 · Explanation — why does multiplying 3/5 by 2/2 not change the number? · Transfer — convert a 9/25 win rate to a decimal for a game leaderboard.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.DEC.05",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Rounding decimals",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 5,
      "id": "NUM.DEC.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Rounding decimals: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Rounding decimals.",
      "content": "Round by looking at one digit to the right of the target place — and only that digit; rounding answers \"which gridline is nearest?\"",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.DEC.05",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Rounding decimals",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 5,
      "id": "NUM.DEC.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Rounding decimals: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Rounding decimals.",
      "content": "Round 3.276: to the nearest tenth, the hundredths digit is 7 (≥5), so 3.3; to the nearest hundredth, the thousandths digit is 6, so 3.28.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.DEC.05",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Rounding decimals",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 5,
      "id": "NUM.DEC.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Rounding decimals: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Rounding decimals into personal, civic/data, and career contexts.",
      "content": "Personal — your running app logs 4.86 km; report it to the nearest tenth for your training diary. · Civic/Data — the class average height 1.432 m is reported as 1.4 m in the school newsletter; judge what was lost. · Career — a meet official reports a 58.276 s swim as 58.28 s for the record book.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.DEC.05",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Rounding decimals",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 5,
      "id": "NUM.DEC.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Rounding decimals: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Rounding decimals.",
      "content": "Accuracy — 8 rounding items across tenths/hundredths/whole (2 review) ≥7/8 · Explanation — find the flaw: rounding 3.249 to the nearest tenth via 3.249 → 3.25 → 3.3 (double rounding) · Transfer — round a 7.495 L fuel reading sensibly for a logbook.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.DEC.06",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Adding and subtracting decimals",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 6,
      "id": "NUM.DEC.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Adding and subtracting decimals: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Adding and subtracting decimals.",
      "content": "Add and subtract decimals by aligning the decimal points — i.e., aligning place values — padding with zeros as needed.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.DEC.06",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Adding and subtracting decimals",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 6,
      "id": "NUM.DEC.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Adding and subtracting decimals: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Adding and subtracting decimals.",
      "content": "12.5 + 3.78: align as 12.50 + 3.78 = 16.28. Then the change from a $20 bill: 20.00 − 16.28 = 3.72.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.DEC.06",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Adding and subtracting decimals",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 6,
      "id": "NUM.DEC.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Adding and subtracting decimals: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Adding and subtracting decimals into personal, civic/data, and career contexts.",
      "content": "Personal — you hand over $20 for a $16.28 book; check the change. · Civic/Data — total a two-stage charity walk of 5.6 km + 4.75 km for the event banner. · Career — a barista totals milk used in a shift: 1.5 L + 0.75 L.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.DEC.06",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Adding and subtracting decimals",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 6,
      "id": "NUM.DEC.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Adding and subtracting decimals: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Adding and subtracting decimals.",
      "content": "Accuracy — 8 mixed add/subtract items with unequal decimal lengths (2 review, 1 estimation check) ≥7/8 · Explanation — spot the flaw: 5.4 + 2.35 computed right-aligned as 54 + 235 = 289 → \"2.89\" · Transfer — balance an aquarium log: 37.5 L − 2.85 L evaporated.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.DEC.07",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplying decimals by whole numbers",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 7,
      "id": "NUM.DEC.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Multiplying decimals by whole numbers: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Multiplying decimals by whole numbers.",
      "content": "A whole number of decimal groups: multiply as whole numbers, then place the decimal point using place-value reasoning (or distribute over ones and parts).",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.DEC.07",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplying decimals by whole numbers",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 7,
      "id": "NUM.DEC.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Multiplying decimals by whole numbers: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Multiplying decimals by whole numbers.",
      "content": "6 × 2.35 = 6 × 2 + 6 × 0.35 = 12 + 2.10 = 14.10. Check by whole-number product: 6 × 235 = 1410, two decimal places → 14.10.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.DEC.07",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplying decimals by whole numbers",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 7,
      "id": "NUM.DEC.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Multiplying decimals by whole numbers: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Multiplying decimals by whole numbers into personal, civic/data, and career contexts.",
      "content": "Personal — 4 friends each pay $3.75 for skate-night tickets; find the group total ($15.00). · Civic/Data — an 8-leg relay of 0.4 km legs: how far does the team run in all (3.2 km)? · Career — a florist prices 12 stems at $1.35 each for an order ($16.20).",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.DEC.07",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplying decimals by whole numbers",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 7,
      "id": "NUM.DEC.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Multiplying decimals by whole numbers: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Multiplying decimals by whole numbers.",
      "content": "Accuracy — 8 items, money and measurement contexts (2 review, 1 estimate-first) ≥7/8 · Explanation — why does 6 × 2.35 have two decimal places, not one? · Transfer — total the mass of 7 parcels at 1.45 kg each.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.DEC.08",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplying decimals by decimals",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 8,
      "id": "NUM.DEC.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Multiplying decimals by decimals: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Multiplying decimals by decimals.",
      "content": "A decimal times a decimal takes a part of a part, so the product can be smaller than both factors; decimal places in the product come from the factors' combined places.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.DEC.08",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplying decimals by decimals",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 8,
      "id": "NUM.DEC.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Multiplying decimals by decimals: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Multiplying decimals by decimals.",
      "content": "0.4 × 0.35: compute 4 × 35 = 140; three decimal places combined → 0.140 = 0.14. Note 0.14 is smaller than both 0.4 and 0.35.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.DEC.08",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplying decimals by decimals",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 8,
      "id": "NUM.DEC.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Multiplying decimals by decimals: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Multiplying decimals by decimals into personal, civic/data, and career contexts.",
      "content": "Personal — 0.6 of a 1.5 L bottle remains; how many liters is that (0.9 L)? · Civic/Data — 0.3 of the town's 2.4 km riverside trail is paved; report the paved length (0.72 km). · Career — a tailor buys 2.5 m of fabric at $4.80 per meter ($12.00).",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.DEC.08",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplying decimals by decimals",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 8,
      "id": "NUM.DEC.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Multiplying decimals by decimals: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Multiplying decimals by decimals.",
      "content": "Accuracy — 8 items including products less than 1 (2 review, 1 estimation) ≥7/8 · Explanation — why can multiplying make a number smaller here, when multiplying whole numbers never did? · Transfer — find the area of a 0.85 m × 0.6 m poster.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.DEC.09",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Dividing decimals",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 9,
      "id": "NUM.DEC.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Dividing decimals: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Dividing decimals.",
      "content": "Dividing by a decimal becomes whole-number division when you scale dividend and divisor by the same power of ten — the quotient is unchanged because the ratio is unchanged.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.DEC.09",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Dividing decimals",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 9,
      "id": "NUM.DEC.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Dividing decimals: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Dividing decimals.",
      "content": "7.2 ÷ 0.6: multiply both by 10 → 72 ÷ 6 = 12. Also 25.50 ÷ 3 = 8.50.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.DEC.09",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Dividing decimals",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 9,
      "id": "NUM.DEC.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Dividing decimals: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Dividing decimals into personal, civic/data, and career contexts.",
      "content": "Personal — three friends split a $25.50 pizza bill evenly ($8.50 each). · Civic/Data — the recycling depot moves 9.6 tonnes in 0.8-tonne truckloads; how many loads (12)? · Career — a gift-wrap clerk cuts 0.75 m ribbons from a 6 m roll; how many ribbons (8)?",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.DEC.09",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Dividing decimals",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 9,
      "id": "NUM.DEC.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Dividing decimals: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Dividing decimals.",
      "content": "Accuracy — 8 items mixing ÷ whole and ÷ decimal (2 review, 1 estimate-first) ≥7/8 · Explanation — why does multiplying both numbers by 10 leave the answer unchanged? · Transfer — how many 0.45 kg portions come from a 5.4 kg bag?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.DEC.10",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Decimal estimation and reasonableness",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 10,
      "id": "NUM.DEC.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Decimal estimation and reasonableness: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Decimal estimation and reasonableness.",
      "content": "Round to friendly numbers before computing to predict the size of an answer; a good estimate catches misplaced decimal points instantly.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.DEC.10",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Decimal estimation and reasonableness",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 10,
      "id": "NUM.DEC.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Decimal estimation and reasonableness: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Decimal estimation and reasonableness.",
      "content": "Estimate 19.8 × 5.1 ≈ 20 × 5 = 100; the exact answer is 100.98, so a calculator display of \"1009.8\" must be a decimal slip.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.DEC.10",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Decimal estimation and reasonableness",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 10,
      "id": "NUM.DEC.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Decimal estimation and reasonableness: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Decimal estimation and reasonableness into personal, civic/data, and career contexts.",
      "content": "Personal — eyeball your $48.72 cart as \"about $50\" before tapping to pay. · Civic/Data — a report claims 11.9 km of bike lanes built in 4.1 months; check that \"about 3 km per month\" is fair. · Career — a cashier sees the register demand $103.50 for ten $1.35 items and flags it (should be ≈ $13.50).",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.DEC.10",
      "clusterId": "NUM.DEC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Decimal estimation and reasonableness",
      "clusterTitle": "Decimals (NUM.DEC)",
      "band": "4–6",
      "hardLevel": 10,
      "id": "NUM.DEC.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Decimal estimation and reasonableness: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Decimal estimation and reasonableness.",
      "content": "Accuracy — 8 estimate-then-verify items across all four operations (2 review) ≥7/8 · Explanation — explain how the estimate exposes the register error without redoing the multiplication · Transfer — judge whether 0.52 × 81.3 ≈ 4.2 is plausible and say why not (≈ 40).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.EST.01",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Rounding as estimation strategy",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 2,
      "id": "NUM.EST.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Rounding as estimation strategy: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Rounding as estimation strategy.",
      "content": "Swap awkward numbers for nearby friendly ones before computing — the answer lands close enough to plan with, and you knew it without paper. *(Band ≈ 2–3.)*",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.EST.01",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Rounding as estimation strategy",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 2,
      "id": "NUM.EST.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Rounding as estimation strategy: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Rounding as estimation strategy.",
      "content": "About how many is 38 + 23? Round: 40 + 20 = 60. The exact sum, 61, confirms the estimate was close.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.EST.01",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Rounding as estimation strategy",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 2,
      "id": "NUM.EST.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Rounding as estimation strategy: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Rounding as estimation strategy into personal, civic/data, and career contexts.",
      "content": "Personal — will your 29 + 32 crayons fit in a 70-crayon box? About 30 + 30 = 60 — yes. · Civic/Data — the class food drive collected 48 + 31 cans; report \"about 80\" at assembly. · Career — a baker sees orders for 19 and 22 muffins and preps \"about 40.\"",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.EST.01",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Rounding as estimation strategy",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 2,
      "id": "NUM.EST.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Rounding as estimation strategy: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Rounding as estimation strategy.",
      "content": "Accuracy — 8 quick estimates to tens (2 rounding review) ≥7/8 · Explanation — why did we round 38 *up* but 23 *down*? What decides? · Transfer — estimate the books on two shelves of 27 and 44 for the class library count.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.EST.02",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Front-end estimation and adjusting",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 3,
      "id": "NUM.EST.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Front-end estimation and adjusting: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Front-end estimation and adjusting.",
      "content": "Add the biggest place first for a fast low estimate, then adjust upward with the leftovers — a two-pass strategy that beats one-shot rounding on stacked sums. *(Band ≈ 3.)*",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.EST.02",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Front-end estimation and adjusting",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 3,
      "id": "NUM.EST.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Front-end estimation and adjusting: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Front-end estimation and adjusting.",
      "content": "472 + 218: front-end gives 400 + 200 = 600; the leftovers 72 + 18 add about 90 more, so ≈ 690 — which is exact here (472 + 218 = 690).",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.EST.02",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Front-end estimation and adjusting",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 3,
      "id": "NUM.EST.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Front-end estimation and adjusting: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Front-end estimation and adjusting into personal, civic/data, and career contexts.",
      "content": "Personal — quick-total two book series at 305 and 287 pages for your reading log. · Civic/Data — the school fair adds ticket counts from two gates, 612 and 393, for the closing announcement. · Career — a grocer eyeballs crates of about 140 and 230 apples before confirming the delivery.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.EST.02",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Front-end estimation and adjusting",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 3,
      "id": "NUM.EST.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Front-end estimation and adjusting: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Front-end estimation and adjusting.",
      "content": "Accuracy — 8 front-end-then-adjust items (2 review) ≥7/8 · Explanation — why is the front-end answer always too small before adjusting? · Transfer — estimate total minutes of two movies, 94 and 127, for a sleepover plan.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.EST.03",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Compatible numbers",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 4,
      "id": "NUM.EST.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Compatible numbers: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Compatible numbers.",
      "content": "Choose substitute numbers that fit the operation — 298 ÷ 6 becomes 300 ÷ 6 — because a near number that divides cleanly beats the \"correct\" rounding. *(Band ≈ 3–4.)*",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.EST.03",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Compatible numbers",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 4,
      "id": "NUM.EST.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Compatible numbers: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Compatible numbers.",
      "content": "298 ÷ 6 ≈ 300 ÷ 6 = 50. For 23 × 19, use 23 × 20 = 460 (exact 437).",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.EST.03",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Compatible numbers",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 4,
      "id": "NUM.EST.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Compatible numbers: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Compatible numbers into personal, civic/data, and career contexts.",
      "content": "Personal — about how many 4-packs do 119 juice boxes make? 120 ÷ 4 = 30. · Civic/Data — 358 chairs set in rows of 6 for assembly: about 360 ÷ 6 = 60 rows. · Career — a produce clerk bags roughly 248 oranges in 5s and plans on about 50 bags.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.EST.03",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Compatible numbers",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 4,
      "id": "NUM.EST.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Compatible numbers: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Compatible numbers.",
      "content": "Accuracy — 8 estimates where the learner picks the compatible pair (2 review) ≥7/8 · Explanation — why is 300 ÷ 6 a better move than rounding 6 up to 10? What does \"compatible\" protect? · Transfer — estimate how many 8-slice pizzas feed 61 students.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.EST.04",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Estimating sums and differences",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 5,
      "id": "NUM.EST.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Estimating sums and differences: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Estimating sums and differences.",
      "content": "Round to a sensible place, combine, and keep track of whether your estimate ran high or low — direction matters when money or capacity is on the line. *(Band ≈ 4–5.)*",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.EST.04",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Estimating sums and differences",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 5,
      "id": "NUM.EST.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Estimating sums and differences: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Estimating sums and differences.",
      "content": "5,287 − 2,815 ≈ 5,300 − 2,800 = 2,500 (exact 2,472; estimate ran high because we pushed the gap wider on both ends).",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.EST.04",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Estimating sums and differences",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 5,
      "id": "NUM.EST.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Estimating sums and differences: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Estimating sums and differences into personal, civic/data, and career contexts.",
      "content": "Personal — will $20 cover items at $7.85, $5.20, and $6.50? Estimate 8 + 5 + 7 = 20 — tight; the exact $19.55 squeaks by. · Civic/Data — the town raised $8,140 toward a $9,995 goal; report \"about $1,900 short.\" · Career — a stockroom hand estimates what remains after a 1,480-unit shipment leaves a 5,210-unit inventory.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.EST.04",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Estimating sums and differences",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 5,
      "id": "NUM.EST.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Estimating sums and differences: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Estimating sums and differences.",
      "content": "Accuracy — 8 estimates with high/low judgment attached (2 review) ≥7/8 · Explanation — your estimate said $20 covers it, and it barely did — when must you re-check an estimate before trusting it? · Transfer — estimate the combined attendance gap of two games: 18,940 and 22,310 vs two 25,000 sellouts.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.EST.05",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Estimating products and quotients",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 6,
      "id": "NUM.EST.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Estimating products and quotients: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Estimating products and quotients.",
      "content": "One rounded factor shifts the product a little; two shift it more — round factors toward compatible pairs and state whether the true answer sits above or below. *(Band ≈ 4–6.)*",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.EST.05",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Estimating products and quotients",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 6,
      "id": "NUM.EST.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Estimating products and quotients: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Estimating products and quotients.",
      "content": "38 × 52 ≈ 40 × 50 = 2,000 (exact 1,976). 612 ÷ 29 ≈ 600 ÷ 30 = 20 (exact ≈ 21.1).",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.EST.05",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Estimating products and quotients",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 6,
      "id": "NUM.EST.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Estimating products and quotients: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Estimating products and quotients into personal, civic/data, and career contexts.",
      "content": "Personal — about how many words in your 12-page story at ~230 words per page (≈ 2,400)? · Civic/Data — fire-drill planning: 52 classrooms of about 28 students is roughly 1,500 people. · Career — an event coordinator seats 475 guests at tables of 8 and plans on about 60 tables.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.EST.05",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Estimating products and quotients",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 6,
      "id": "NUM.EST.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Estimating products and quotients: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Estimating products and quotients.",
      "content": "Accuracy — 8 product/quotient estimates with above/below calls (2 review) ≥7/8 · Explanation — both factors of 38 × 52 were rounded in opposite directions — why did the errors partly cancel? · Transfer — estimate the cost of 41 buses at $385 each for a district proposal.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.EST.06",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Reasonableness — catching impossible answers",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 7,
      "id": "NUM.EST.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Reasonableness — catching impossible answers: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Reasonableness — catching impossible answers.",
      "content": "Every computed answer gets a sanity check against a rough estimate; an answer 10× off or absurd in context is wrong no matter what the calculator says. *(Band ≈ 5–6.)*",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.EST.06",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Reasonableness — catching impossible answers",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 7,
      "id": "NUM.EST.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Reasonableness — catching impossible answers: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Reasonableness — catching impossible answers.",
      "content": "A worksheet claims 19.9 × 4.8 = 955.2. Estimate: 20 × 5 = 100 — the claim is ten times too big; the decimal slipped (true value 95.52).",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.EST.06",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Reasonableness — catching impossible answers",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 7,
      "id": "NUM.EST.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Reasonableness — catching impossible answers: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Reasonableness — catching impossible answers into personal, civic/data, and career contexts.",
      "content": "Personal — a split-the-bill app says each of 3 friends owes $112 on a $90 pizza order; explain how you know instantly it's wrong. · Civic/Data — a headline claims the average family of four drinks 400 L of milk a day; sanity-check it against a 1 L carton. · Career — a cashier's register demands $1,000 for ten $9.99 items; catch it before the customer does.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.EST.06",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Reasonableness — catching impossible answers",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 7,
      "id": "NUM.EST.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Reasonableness — catching impossible answers: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Reasonableness — catching impossible answers.",
      "content": "Accuracy — 8 accept/reject items with estimates as evidence (2 review) ≥7/8 · Explanation — explain how the 20 × 5 estimate convicts 955.2 without redoing the multiplication · Transfer — judge a claim that a 14.9 cm × 21.2 cm photo has area 3,158.8 cm² (≈ 15 × 21 ≈ 315).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.EST.07",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Orders of magnitude — is it tens, hundreds, thousands?",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 8,
      "id": "NUM.EST.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Orders of magnitude — is it tens, hundreds, thousands?: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Orders of magnitude — is it tens, hundreds, thousands?.",
      "content": "Before precision, get the right zip code: decide whether a quantity lives in the tens, thousands, or millions, because magnitude errors are the costliest errors. *(Band ≈ 6–7.)*",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.EST.07",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Orders of magnitude — is it tens, hundreds, thousands?",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 8,
      "id": "NUM.EST.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Orders of magnitude — is it tens, hundreds, thousands?: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Orders of magnitude — is it tens, hundreds, thousands?.",
      "content": "A school of 850 students over 180 school days logs 850 × 180 ≈ 150,000 student-days — a hundred-thousands quantity (exact 153,000), not tens of thousands.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.EST.07",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Orders of magnitude — is it tens, hundreds, thousands?",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 8,
      "id": "NUM.EST.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Orders of magnitude — is it tens, hundreds, thousands?: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Orders of magnitude — is it tens, hundreds, thousands? into personal, civic/data, and career contexts.",
      "content": "Personal — is your yearly screen time measured in tens, hundreds, or thousands of hours? At ~3 h/day it's about 1,100 — thousands. · Civic/Data — a post claims 2 million attendees at a 40,000-seat stadium over 20 events; show the ceiling is 800,000. · Career — a junior journalist must decide whether a bridge project is a $3 million or $3 billion story before publishing.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.EST.07",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Orders of magnitude — is it tens, hundreds, thousands?",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 8,
      "id": "NUM.EST.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Orders of magnitude — is it tens, hundreds, thousands?: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Orders of magnitude — is it tens, hundreds, thousands?.",
      "content": "Accuracy — 8 magnitude calls with one-line justifications (2 review) ≥7/8 · Explanation — why is being 10× off worse than being 20% off? Give a context where each matters · Transfer — estimate the magnitude of words read in a year of nightly 20-page reading.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.EST.08",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Estimation with fractions and percents",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 9,
      "id": "NUM.EST.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Estimation with fractions and percents: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Estimation with fractions and percents.",
      "content": "Benchmarks do the work: snap fractions to 0, 1/2, 1 and percents to 10%, 25%, 50% chunks, then scale — close enough to decide, fast enough to use mid-conversation. *(Band ≈ 6–7.)*",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.EST.08",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Estimation with fractions and percents",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 9,
      "id": "NUM.EST.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Estimation with fractions and percents: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Estimation with fractions and percents.",
      "content": "Estimate 24% of 79: about 1/4 of 80 = 20 (exact 18.96). Estimate 7/15 of 64: just under 1/2 of 64 → a bit under 32 (exact ≈ 29.9).",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.EST.08",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Estimation with fractions and percents",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 9,
      "id": "NUM.EST.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Estimation with fractions and percents: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Estimation with fractions and percents into personal, civic/data, and career contexts.",
      "content": "Personal — you got 23 of 48 quiz questions; call it \"about half\" and decide if retaking is worth it. · Civic/Data — \"52% of 8,124 voters\" — snap to half of 8,000 ≈ 4,000 to check the article's count. · Career — a server estimates a one-third discount on a $62 tab as about $21 while the customer waits.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.EST.08",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Estimation with fractions and percents",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 9,
      "id": "NUM.EST.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Estimation with fractions and percents: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Estimation with fractions and percents.",
      "content": "Accuracy — 8 benchmark estimates, fractions and percents mixed (2 review) ≥7/8 · Explanation — spot the flaw: estimating 7/15 of 64 as \"more than 32\" — which way does 7/15 sit relative to 1/2 and why? · Transfer — estimate the sale price of a $79.50 jacket at 27% off.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.EST.09",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fermi problems (how many piano tuners…)",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 10,
      "id": "NUM.EST.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Fermi problems (how many piano tuners…): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Fermi problems (how many piano tuners…).",
      "content": "Decompose an unknowable-sounding question into estimable factors, multiply, and aim for the right power of ten — the assumptions, stated openly, are the answer's warranty. *(Band ≈ 7–8.)*",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.EST.09",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fermi problems (how many piano tuners…)",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 10,
      "id": "NUM.EST.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Fermi problems (how many piano tuners…): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Fermi problems (how many piano tuners…).",
      "content": "Breaths in a year: ~15/min × 60 min × 24 h ≈ 21,600/day; × 365 ≈ 7.9 million — call it ~8 × 10⁶. Halving or doubling the breath rate still keeps the answer in the millions.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.EST.09",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fermi problems (how many piano tuners…)",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 10,
      "id": "NUM.EST.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Fermi problems (how many piano tuners…): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Fermi problems (how many piano tuners…) into personal, civic/data, and career contexts.",
      "content": "Personal — estimate the total hours of homework you'll do across K–12, factor by factor. · Civic/Data — estimate how many school buses your city needs from population, students per family, and bus capacity. · Career — a consultant sizes \"how many coffees does this 400-person office buy per year\" for a vendor pitch.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.EST.09",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fermi problems (how many piano tuners…)",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 10,
      "id": "NUM.EST.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Fermi problems (how many piano tuners…): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Fermi problems (how many piano tuners…).",
      "content": "Accuracy — 3 Fermi problems landing within one order of magnitude, factors shown · Explanation — identify which single assumption moves your bus answer most, and defend it · Transfer — estimate the pages in your school library without counting anything.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.EST.10",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Choosing exact vs estimate in context",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 11,
      "id": "NUM.EST.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Choosing exact vs estimate in context: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Choosing exact vs estimate in context.",
      "content": "The stakes pick the tool: estimate when speed and scale matter, compute exactly when money changes hands, doses are measured, or rules require it — and know which mode you're in. *(Band ≈ 7–8; cluster capstone.)*",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.EST.10",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Choosing exact vs estimate in context",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 11,
      "id": "NUM.EST.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Choosing exact vs estimate in context: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Choosing exact vs estimate in context.",
      "content": "A $73.86 dinner split three ways: estimate ≈ $75 ÷ 3 = $25 each to gut-check, then charge exactly 73.86 ÷ 3 = $24.62 — the estimate verifies the exact figure it can't replace.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.EST.10",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Choosing exact vs estimate in context",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 11,
      "id": "NUM.EST.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Choosing exact vs estimate in context: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Choosing exact vs estimate in context into personal, civic/data, and career contexts.",
      "content": "Personal — when \"about $25 each\" settles it with friends vs when the payment app must carry cents. · Civic/Data — explain why census stories report rounded figures while the apportionment math underneath runs exact. · Career — contrast a pharmacist (exact doses, always) with a caterer (estimated portions, always) and justify each norm by its failure cost.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.EST.10",
      "clusterId": "NUM.EST",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Choosing exact vs estimate in context",
      "clusterTitle": "Estimation & Number Properties (NUM.EST)",
      "band": "2–8",
      "hardLevel": 11,
      "id": "NUM.EST.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Choosing exact vs estimate in context: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Choosing exact vs estimate in context.",
      "content": "Accuracy — 8 choose-and-solve items, mode justified each time (2 review) ≥7/8 · Explanation — find the flaw: a nurse \"rounds 2.7 mL to about 3\" — why is estimation itself the error here? · Transfer — for a road trip, decide which of fuel budget, toll payment, and arrival time deserve exact treatment, then produce the numbers.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.EXP.01",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Powers with whole-number exponents",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 13,
      "id": "NUM.EXP.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Powers with whole-number exponents: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Powers with whole-number exponents.",
      "content": "An exponent counts repeated multiplication, not repeated addition: 3⁴ means 3 × 3 × 3 × 3, and base and exponent play totally different roles.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.EXP.01",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Powers with whole-number exponents",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 13,
      "id": "NUM.EXP.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Powers with whole-number exponents: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Powers with whole-number exponents.",
      "content": "3⁴ = 3 × 3 × 3 × 3 = 81 (not 12). Signs ride along: (−2)³ = (−2)(−2)(−2) = −8. Roles matter: 2⁵ = 32 but 5² = 25.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.EXP.01",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Powers with whole-number exponents",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 13,
      "id": "NUM.EXP.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Powers with whole-number exponents: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Powers with whole-number exponents into personal, civic/data, and career contexts.",
      "content": "Personal — a chain text goes to 3 people, each forwarding to 3 more: count people reached after four rounds (3⁴ = 81). · Civic/Data — a water-quality story says bacteria double every hour: verify \"over 1,000-fold in 10 hours\" (2¹⁰ = 1,024). · Career — an IT tech explains why one byte holds 2⁸ = 256 values.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.EXP.01",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Powers with whole-number exponents",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 13,
      "id": "NUM.EXP.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Powers with whole-number exponents: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Powers with whole-number exponents.",
      "content": "Accuracy — 8 evaluations incl. negative bases and base/exponent swaps (2 review) ≥7/8 · Explanation — spot the flaw: \"3⁴ = 12\" — what operation did the student count? · Transfer — find how many great-great-grandparents you have (2⁴ = 16).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.EXP.02",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Squares and square roots",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 14,
      "id": "NUM.EXP.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Squares and square roots: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Squares and square roots.",
      "content": "Squaring a number gives the area of a square with that side; the square root reverses the question — \"what side gives this area?\"",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.EXP.02",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Squares and square roots",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 14,
      "id": "NUM.EXP.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Squares and square roots: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Squares and square roots.",
      "content": "13² = 169, so √169 = 13. A square garden of area 144 m² has sides of √144 = 12 m.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.EXP.02",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Squares and square roots",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 14,
      "id": "NUM.EXP.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Squares and square roots: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Squares and square roots into personal, civic/data, and career contexts.",
      "content": "Personal — your 225-tile square mosaic: how many tiles per side (15)? · Civic/Data — a petition says the new square plaza is 8,100 m²; find the fence length per side (90 m). · Career — a tiler quotes a 7.5 m × 7.5 m floor by computing 56.25 m².",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.EXP.02",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Squares and square roots",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 14,
      "id": "NUM.EXP.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Squares and square roots: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Squares and square roots.",
      "content": "Accuracy — 8 items pairing squares with roots through 15² (2 review) ≥7/8 · Explanation — spot the flaw: \"√25 = 12.5, because root means half\" · Transfer — find the side of a square solar array rated by its 196 m² footprint.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.EXP.03",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Cubes and cube roots",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 15,
      "id": "NUM.EXP.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Cubes and cube roots: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Cubes and cube roots.",
      "content": "Cubing builds volume — n³ is a cube of edge n — and cube roots recover the edge; negatives survive cubing, unlike squaring.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.EXP.03",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Cubes and cube roots",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 15,
      "id": "NUM.EXP.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Cubes and cube roots: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Cubes and cube roots.",
      "content": "4³ = 64, so ∛64 = 4. A storage cube of volume 125 cm³ has edges of ∛125 = 5 cm. Also (−4)³ = −64, so ∛−64 = −4.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.EXP.03",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Cubes and cube roots",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 15,
      "id": "NUM.EXP.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Cubes and cube roots: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Cubes and cube roots into personal, civic/data, and career contexts.",
      "content": "Personal — count the mini-cubes in a 3 × 3 × 3 puzzle cube (27). · Civic/Data — the city spec calls for an 8 m³ cubic rain tank; find the edge length (2 m). · Career — a shipping packer works out how many 1-ft cube boxes fill a 3-ft cube crate (27).",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.EXP.03",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Cubes and cube roots",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 15,
      "id": "NUM.EXP.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Cubes and cube roots: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Cubes and cube roots.",
      "content": "Accuracy — 8 cube/cube-root items incl. one negative (2 review) ≥7/8 · Explanation — why does ∛−64 exist while √−64 has no real answer? · Transfer — find the edge of a 343 cm³ ice cube mold (7 cm).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.EXP.04",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Product and quotient rules for exponents",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 16,
      "id": "NUM.EXP.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Product and quotient rules for exponents: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Product and quotient rules for exponents.",
      "content": "Same-base powers combine by counting factors: multiplying adds exponents, dividing subtracts them — the rules are bookkeeping, not magic.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.EXP.04",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Product and quotient rules for exponents",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 16,
      "id": "NUM.EXP.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Product and quotient rules for exponents: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Product and quotient rules for exponents.",
      "content": "2³ × 2⁴ stacks 3 + 4 factors of 2: 2⁷ = 128. Quotient: 5⁶ ÷ 5⁴ cancels four factors, leaving 5² = 25.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.EXP.04",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Product and quotient rules for exponents",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 16,
      "id": "NUM.EXP.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Product and quotient rules for exponents: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Product and quotient rules for exponents into personal, civic/data, and career contexts.",
      "content": "Personal — a meme doubles in views daily: after 3 days then 4 more, show views grew by 2³ × 2⁴ = 2⁷. · Civic/Data — compare a $10⁹ program with a $10⁶ one: 10⁹ ÷ 10⁶ = 10³, a thousand times larger. · Career — a data-center tech counts drives: 2⁵ racks × 2⁶ drives each = 2¹¹ = 2,048.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.EXP.04",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Product and quotient rules for exponents",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 16,
      "id": "NUM.EXP.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Product and quotient rules for exponents: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Product and quotient rules for exponents.",
      "content": "Accuracy — 8 rule applications incl. mixed wrong-base traps (2 review) ≥7/8 · Explanation — spot the flaw: \"2³ × 2⁴ = 4⁷\" — what got multiplied that shouldn't be? · Transfer — simplify a biology growth model's 10⁴ × 10² cells per dish ÷ 10³ dishes.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.EXP.05",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Zero and negative exponents",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 17,
      "id": "NUM.EXP.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Zero and negative exponents: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Zero and negative exponents.",
      "content": "Extending the ÷-by-the-base pattern below 2¹ forces 2⁰ = 1 and 2⁻ⁿ = 1/2ⁿ; negative exponents mean reciprocals, never negative numbers.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.EXP.05",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Zero and negative exponents",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 17,
      "id": "NUM.EXP.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Zero and negative exponents: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Zero and negative exponents.",
      "content": "Walk the pattern down: 2³ = 8, 2² = 4, 2¹ = 2, 2⁰ = 1, 2⁻¹ = 1/2, 2⁻² = 1/4. So 10⁻³ = 1/1,000 = 0.001.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.EXP.05",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Zero and negative exponents",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 17,
      "id": "NUM.EXP.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Zero and negative exponents: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Zero and negative exponents into personal, civic/data, and career contexts.",
      "content": "Personal — a camera's 1/256 s shutter speed is 2⁻⁸ s; explain the notation to a friend. · Civic/Data — a water report cites contaminants in \"parts per thousand (10⁻³)\"; interpret the exponent. · Career — a chemist reads a 10⁻² molar concentration label and states it as a decimal.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.EXP.05",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Zero and negative exponents",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 17,
      "id": "NUM.EXP.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Zero and negative exponents: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Zero and negative exponents.",
      "content": "Accuracy — 8 evaluations across positive, zero, negative exponents (2 review) ≥7/8 · Explanation — use the quotient rule on 2³ ÷ 2³ to argue why 2⁰ must be 1, then find the flaw in \"2⁰ = 0\" · Transfer — order 5⁻¹, 5⁰, 0.5, and 5¹ on a number line.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.EXP.06",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Powers of ten and metric thinking",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 18,
      "id": "NUM.EXP.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Powers of ten and metric thinking: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Powers of ten and metric thinking.",
      "content": "Powers of ten are the gears of the decimal and metric systems: multiplying by 10ⁿ shifts the point n places, and metric prefixes are exponents in disguise.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.EXP.06",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Powers of ten and metric thinking",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 18,
      "id": "NUM.EXP.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Powers of ten and metric thinking: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Powers of ten and metric thinking.",
      "content": "4.7 × 10³ = 4,700. Converting 2.3 km to millimeters stacks two 10³ steps: 2.3 × 10³ m = 2.3 × 10⁶ mm = 2,300,000 mm.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.EXP.06",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Powers of ten and metric thinking",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 18,
      "id": "NUM.EXP.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Powers of ten and metric thinking: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Powers of ten and metric thinking into personal, civic/data, and career contexts.",
      "content": "Personal — your 128 GB phone holds about 1.28 × 10¹¹ bytes; unpack the exponent. · Civic/Data — a debt graphic mixes billions (10⁹) and trillions (10¹²); show the 1,000× gap the labels hide. · Career — a lab assistant runs three 10× dilutions and records the concentration drop as 10⁻³.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.EXP.06",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Powers of ten and metric thinking",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 18,
      "id": "NUM.EXP.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Powers of ten and metric thinking: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Powers of ten and metric thinking.",
      "content": "Accuracy — 8 shift-and-convert items (2 review) ≥7/8 · Explanation — why does multiplying by 10³ move the decimal point exactly three places? Tie to place value · Transfer — convert a 5.2 × 10⁴ m cable length to kilometers (52 km).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.EXP.07",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Scientific notation — writing",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 19,
      "id": "NUM.EXP.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Scientific notation — writing: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Scientific notation — writing.",
      "content": "Scientific notation standardizes any number as c × 10ⁿ with 1 ≤ c < 10, so sizes can be read off the exponent at a glance.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.EXP.07",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Scientific notation — writing",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 19,
      "id": "NUM.EXP.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Scientific notation — writing: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Scientific notation — writing.",
      "content": "93,000,000 = 9.3 × 10⁷ (point moves 7 places). Small numbers go negative: 0.00052 = 5.2 × 10⁻⁴.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.EXP.07",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Scientific notation — writing",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 19,
      "id": "NUM.EXP.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Scientific notation — writing: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Scientific notation — writing into personal, civic/data, and career contexts.",
      "content": "Personal — write a viral video's 2,400,000,000 views as 2.4 × 10⁹ for a fan post. · Civic/Data — a misprint claims a red blood cell is 7 × 10³ m wide; propose the correct exponent (10⁻⁶ m) and explain the catch. · Career — an astronomy intern logs the Earth–Sun distance as 1.5 × 10⁸ km.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.EXP.07",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Scientific notation — writing",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 19,
      "id": "NUM.EXP.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Scientific notation — writing: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Scientific notation — writing.",
      "content": "Accuracy — 8 conversions both directions, large and small (2 review) ≥7/8 · Explanation — 93 × 10⁶ equals 9.3 × 10⁷ — explain why only one counts as scientific notation and why the convention helps comparison · Transfer — rewrite a bacterium's 0.0000021 m length in scientific notation.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.EXP.08",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Scientific notation — computing",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 20,
      "id": "NUM.EXP.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Scientific notation — computing: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Scientific notation — computing.",
      "content": "Multiply or divide the coefficients and apply exponent rules to the tens; to add or subtract, align the exponents first — then re-normalize the answer.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.EXP.08",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Scientific notation — computing",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 20,
      "id": "NUM.EXP.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Scientific notation — computing: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Scientific notation — computing.",
      "content": "(3 × 10⁵) × (2 × 10⁴) = 6 × 10⁹. Addition needs alignment: 3 × 10⁵ + 2 × 10⁴ = 30 × 10⁴ + 2 × 10⁴ = 32 × 10⁴ = 3.2 × 10⁵.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.EXP.08",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Scientific notation — computing",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 20,
      "id": "NUM.EXP.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Scientific notation — computing: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Scientific notation — computing into personal, civic/data, and career contexts.",
      "content": "Personal — total storage for 4 × 10³ photos at 3 × 10⁶ bytes each (1.2 × 10¹⁰ bytes). · Civic/Data — divide a $4 × 10¹² federal budget by 3.3 × 10⁸ people to get roughly 1.2 × 10⁴ dollars each. · Career — an epidemiologist averages 2.1 × 10⁶ tests over 3 × 10² days (7 × 10³ per day).",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.EXP.08",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Scientific notation — computing",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 20,
      "id": "NUM.EXP.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Scientific notation — computing: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Scientific notation — computing.",
      "content": "Accuracy — 8 computations incl. one addition trap and one re-normalization (2 review) ≥7/8 · Explanation — spot the flaw: adding the exponents in 3 × 10⁵ + 2 × 10⁴ to get 5 × 10⁹ · Transfer — find how many 5 × 10²-seat trains move 6 × 10⁴ fans (1.2 × 10² trains).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.EXP.09",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Estimating roots between integers",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 21,
      "id": "NUM.EXP.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Estimating roots between integers: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Estimating roots between integers.",
      "content": "Trap a root between consecutive perfect squares (or cubes), then refine by testing tenths — roots of non-perfect squares are irrational, so estimation is the working tool.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.EXP.09",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Estimating roots between integers",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 21,
      "id": "NUM.EXP.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Estimating roots between integers: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Estimating roots between integers.",
      "content": "√40: 6² = 36 and 7² = 49, so 6 < √40 < 7. Refine: 6.3² = 39.69, 6.4² = 40.96, so √40 ≈ 6.3.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.EXP.09",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Estimating roots between integers",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 21,
      "id": "NUM.EXP.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Estimating roots between integers: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Estimating roots between integers into personal, civic/data, and career contexts.",
      "content": "Personal — a square poster has area 90 in²; pin its side between 9 and 10 inches before buying a frame. · Civic/Data — a 500 m² square plaza in the redevelopment plan: estimate the side as ≈ 22.4 m (22² = 484, 23² = 529). · Career — a deck builder sizes a square 150 ft² deck at ≈ 12.2 ft per side (12² = 144).",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.EXP.09",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Estimating roots between integers",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 21,
      "id": "NUM.EXP.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Estimating roots between integers: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Estimating roots between integers.",
      "content": "Accuracy — 8 root estimates to the nearest tenth, square and cube (2 review) ≥7/8 · Explanation — why must √40 lie closer to 6 than to 7? Argue from 6.5² = 42.25 without a calculator · Transfer — estimate ∛100 between consecutive integers (4³ = 64, 5³ = 125 → between 4 and 5).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.EXP.10",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Exponential growth vs linear growth (intro)",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 22,
      "id": "NUM.EXP.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Exponential growth vs linear growth (intro): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Exponential growth vs linear growth (intro).",
      "content": "Linear growth adds the same amount each step; exponential growth multiplies by the same factor — and repeated multiplication eventually overtakes any repeated addition.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.EXP.10",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Exponential growth vs linear growth (intro)",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 22,
      "id": "NUM.EXP.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Exponential growth vs linear growth (intro): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Exponential growth vs linear growth (intro).",
      "content": "Start at 100. Plan A adds 50/week: week 4 gives 100 + 4 × 50 = 300. Plan B multiplies by 1.5/week: week 4 gives 100 × 1.5⁴ = 506.25 ≈ 506. B already leads by week 2 (225 vs 200).",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.EXP.10",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Exponential growth vs linear growth (intro)",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 22,
      "id": "NUM.EXP.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Exponential growth vs linear growth (intro): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Exponential growth vs linear growth (intro) into personal, civic/data, and career contexts.",
      "content": "Personal — followers from 1,000: +200/month vs ×1.2/month — which account is ahead at month 12 and why does the gap explode? · Civic/Data — early epidemic counts: cases doubling every 3 days vs \"100 new cases a day\" — explain why small early numbers mislead. · Career — a financial adviser sketches simple vs compound savings for a client and labels which curve is which.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.EXP.10",
      "clusterId": "NUM.EXP",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Exponential growth vs linear growth (intro)",
      "clusterTitle": "Exponents & Roots (NUM.EXP)",
      "band": "7–8",
      "hardLevel": 22,
      "id": "NUM.EXP.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Exponential growth vs linear growth (intro): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Exponential growth vs linear growth (intro).",
      "content": "Accuracy — 8 items classifying and extending both growth types (2 review, 1 estimation) ≥7/8 · Explanation — why must ×1.5 weekly eventually beat +50 weekly from any starting point? · Transfer — decide whether a video game's score table (200, 400, 800, 1,600…) is linear or exponential and predict the next entry.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.FAC.01",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Factors and factor pairs",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 0,
      "id": "NUM.FAC.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Factors and factor pairs: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Factors and factor pairs.",
      "content": "A factor divides a number with nothing left over, and factors arrive in pairs (3 × 8 = 24 gives both 3 and 8) — so hunting in order up to the \"meeting point\" finds them all.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.FAC.01",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Factors and factor pairs",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 0,
      "id": "NUM.FAC.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Factors and factor pairs: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Factors and factor pairs.",
      "content": "Factors of 24: 1 × 24, 2 × 12, 3 × 8, 4 × 6 — then 5 fails and 6 is already used. Factors: 1, 2, 3, 4, 6, 8, 12, 24.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.FAC.01",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Factors and factor pairs",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 0,
      "id": "NUM.FAC.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Factors and factor pairs: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Factors and factor pairs into personal, civic/data, and career contexts.",
      "content": "Personal — Arrange 18 brownies in equal rows on the bake-sale tray — list every row size that works. · Civic/Data — A PE teacher splits 36 students into equal teams — which team sizes are even possible? · Career — An events crew sets 40 chairs in equal rows — the factor pairs of 40 are the layout menu.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.FAC.01",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Factors and factor pairs",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 0,
      "id": "NUM.FAC.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Factors and factor pairs: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Factors and factor pairs.",
      "content": "Accuracy — 8 items: list all factors of numbers to 60, complete factor pairs, spot a non-factor; ≥7/8 · Explanation — Why do factors come in pairs, and why does 36 end up with one unpaired factor? · Transfer — Which rectangle arrays can display exactly 30 stamps?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.FAC.02",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiples and common multiples",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 1,
      "id": "NUM.FAC.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Multiples and common multiples: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Multiples and common multiples.",
      "content": "Multiples are a number's skip-count list running forever; two lists share common multiples, and the places they first meet matter in cycle problems.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.FAC.02",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiples and common multiples",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 1,
      "id": "NUM.FAC.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Multiples and common multiples: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Multiples and common multiples.",
      "content": "Multiples of 3: 3, 6, 9, 12, 15, 18… of 5: 5, 10, 15, 20, 25, 30… Common so far: 15 and 30 — they first meet at 15.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.FAC.02",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiples and common multiples",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 1,
      "id": "NUM.FAC.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Multiples and common multiples: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Multiples and common multiples into personal, civic/data, and career contexts.",
      "content": "Personal — You swim every 3rd day, your friend every 4th — day 12 is your first shared pool day. · Civic/Data — Trash pickup every 2 days, recycling every 5 — both trucks come on day 10. · Career — A nurse checks patient A every 4 hours and patient B every 6 — both checks align at hour 12.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.FAC.02",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiples and common multiples",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 1,
      "id": "NUM.FAC.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Multiples and common multiples: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Multiples and common multiples.",
      "content": "Accuracy — 8 items: extend multiple lists, find first common multiples, \"is 51 a multiple of 3?\"; ≥7/8 · Explanation — Jay lists 30 as a common multiple of 4 and 6 — check both lists and explain exactly where the claim fails. · Transfer — Two strings of party lights blink every 2 s and every 3 s — when do they flash together?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.FAC.03",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Divisibility rules (2, 3, 5, 9, 10)",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 2,
      "id": "NUM.FAC.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Divisibility rules (2, 3, 5, 9, 10): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Divisibility rules (2, 3, 5, 9, 10).",
      "content": "A number's digits broadcast its divisors: last digit settles 2, 5, 10; digit sum settles 3 and 9 — fast tests that replace trial division.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.FAC.03",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Divisibility rules (2, 3, 5, 9, 10)",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 2,
      "id": "NUM.FAC.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Divisibility rules (2, 3, 5, 9, 10): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Divisibility rules (2, 3, 5, 9, 10).",
      "content": "432: ends in 2 → divisible by 2; digit sum 4+3+2 = 9 → divisible by 3 and 9; doesn't end in 0 or 5 → not by 5 or 10. (So also by 6: it passed 2 and 3.)",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.FAC.03",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Divisibility rules (2, 3, 5, 9, 10)",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 2,
      "id": "NUM.FAC.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Divisibility rules (2, 3, 5, 9, 10): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Divisibility rules (2, 3, 5, 9, 10) into personal, civic/data, and career contexts.",
      "content": "Personal — Can 51 trading cards split evenly among 3 friends? Digit sum 6 says yes — 17 each. · Civic/Data — 215 raffle tickets into books of 5: ends in 5, so exactly 43 books. · Career — A warehouse packer checks whether 522 cans fill crates of 9: 5+2+2 = 9, so yes — 58 crates.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.FAC.03",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Divisibility rules (2, 3, 5, 9, 10)",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 2,
      "id": "NUM.FAC.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Divisibility rules (2, 3, 5, 9, 10): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Divisibility rules (2, 3, 5, 9, 10).",
      "content": "Accuracy — 8 items: test 2/3/5/9/10 on 2–4 digit numbers, justify each verdict by rule; ≥7/8 · Explanation — Using 10 = 9 + 1 and 100 = 99 + 1, explain why adding the digits detects divisibility by 3. · Transfer — Is locker code 471 divisible by 3? Test it, then verify (471 ÷ 3 = 157).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.FAC.04",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Prime and composite numbers",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 3,
      "id": "NUM.FAC.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Prime and composite numbers: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Prime and composite numbers.",
      "content": "A prime has exactly two factors, 1 and itself; a composite has more. To certify a prime you only need to rule out divisors up to its square root.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.FAC.04",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Prime and composite numbers",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 3,
      "id": "NUM.FAC.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Prime and composite numbers: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Prime and composite numbers.",
      "content": "Is 29 prime? Not even; 2+9 = 11, not a multiple of 3; doesn't end in 0/5; and 5² = 25 < 29 < 36 = 6², so testing 2, 3, 5 suffices → prime. By contrast 27 = 3 × 9, composite.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.FAC.04",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Prime and composite numbers",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 3,
      "id": "NUM.FAC.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Prime and composite numbers: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Prime and composite numbers into personal, civic/data, and career contexts.",
      "content": "Personal — 13 cookies can't be shared equally by any group but 1 or 13 — prime explains the squabble. · Civic/Data — A class of 23 can't break into equal teams of any size — the roster number is prime. · Career — A florist with 17 roses can't make matching bunches bigger than one — prime stock forces singles.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.FAC.04",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Prime and composite numbers",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 3,
      "id": "NUM.FAC.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Prime and composite numbers: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Prime and composite numbers.",
      "content": "Accuracy — 8 items: classify numbers to 100, including traps 51, 57, 91; ≥7/8 · Explanation — Why is 1 neither prime nor composite, even though it divides everything? · Transfer — Certify whether 31 is prime by naming exactly which divisors you must test and why you may stop there.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.FAC.05",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Prime factorization",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 4,
      "id": "NUM.FAC.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Prime factorization: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Prime factorization.",
      "content": "Every composite number breaks into a unique product of primes — its multiplication fingerprint — no matter which factor tree you grow.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.FAC.05",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Prime factorization",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 4,
      "id": "NUM.FAC.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Prime factorization: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Prime factorization.",
      "content": "60 = 2 × 30 = 2 × 2 × 15 = 2 × 2 × 3 × 5, so 60 = 2² × 3 × 5.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.FAC.05",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Prime factorization",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 4,
      "id": "NUM.FAC.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Prime factorization: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Prime factorization into personal, civic/data, and career contexts.",
      "content": "Personal — Factor your 48-brick set: 2⁴ × 3 reveals every equal-stack option at a glance. · Civic/Data — 100 fair tickets = 2² × 5² — why batches of 4, 25, or 50 pack with none left over. · Career — A tile setter factors a 90-tile shipment (2 × 3² × 5) to see every full-row layout.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.FAC.05",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Prime factorization",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 4,
      "id": "NUM.FAC.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Prime factorization: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Prime factorization.",
      "content": "Accuracy — 8 items: factor numbers to 100 into primes, rebuild a number from its primes; ≥7/8 · Explanation — Two students grow different factor trees for 60 — explain why the leaves must match in the end. · Transfer — Find the prime fingerprint of 84 from scratch (2² × 3 × 7).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.FAC.06",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Greatest common factor",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 5,
      "id": "NUM.FAC.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Greatest common factor: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Greatest common factor.",
      "content": "The GCF is the largest number dividing both — the biggest \"shared building block,\" found by intersecting factor lists or overlapping prime fingerprints.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.FAC.06",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Greatest common factor",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 5,
      "id": "NUM.FAC.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Greatest common factor: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Greatest common factor.",
      "content": "GCF(24, 36): 24 = 2³ × 3 and 36 = 2² × 3²; shared primes 2² × 3 = 12.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.FAC.06",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Greatest common factor",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 5,
      "id": "NUM.FAC.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Greatest common factor: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Greatest common factor into personal, civic/data, and career contexts.",
      "content": "Personal — Pack 16 granola bars and 24 clementines into identical hiking bags — GCF 8 bags, no leftovers. · Civic/Data — A community garden splits 30 maple and 45 oak seedlings into identical planting kits — 15 kits. · Career — A caterer turns 56 sliders and 42 skewers into matching platters — 14 platters of 4 and 3.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.FAC.06",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Greatest common factor",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 5,
      "id": "NUM.FAC.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Greatest common factor: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Greatest common factor.",
      "content": "Accuracy — 8 items: GCF of pairs to 100 by lists and by primes, one triple; ≥7/8 · Explanation — \"GCF(24, 36) = 6 because 6 divides both\" — explain why *a* common factor isn't *the greatest*, and how to be sure. · Transfer — Cut two ribbons, 32 cm and 40 cm, into equal pieces as long as possible — piece length?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.FAC.07",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Least common multiple",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 2,
      "id": "NUM.FAC.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Least common multiple: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Least common multiple.",
      "content": "The LCM is the first place two multiple lists meet — built from each prime at its highest power, which is why it's usually smaller than the product.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.FAC.07",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Least common multiple",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 2,
      "id": "NUM.FAC.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Least common multiple: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Least common multiple.",
      "content": "LCM(6, 8): lists 6, 12, 18, 24 and 8, 16, 24 meet at 24. By primes: 6 = 2 × 3, 8 = 2³ → 2³ × 3 = 24.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.FAC.07",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Least common multiple",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 2,
      "id": "NUM.FAC.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Least common multiple: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Least common multiple into personal, civic/data, and career contexts.",
      "content": "Personal — Two game apps drop bonuses every 9 and 12 days — both land together on day 36. · Civic/Data — Crosswalk signals cycle every 40 s and 60 s — they sync every 120 s for the traffic study. · Career — Factory machines need service every 30 and 45 days — one combined shutdown every 90 days.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.FAC.07",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Least common multiple",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 2,
      "id": "NUM.FAC.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Least common multiple: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Least common multiple.",
      "content": "Accuracy — 8 items: LCM of pairs by lists and by primes, one \"which is smaller, LCM or product?\" probe; ≥7/8 · Explanation — \"LCM(6, 8) = 48 because 6 × 8\" — find the double-counted prime and show why 24 already works. · Transfer — Gym every 6 days, pool every 9 — in how many days do both fall together?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.FAC.08",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Even/odd and parity arguments",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 0,
      "id": "NUM.FAC.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Even/odd and parity arguments: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Even/odd and parity arguments.",
      "content": "Even numbers pair up completely; odds leave one out. That single leftover powers real arguments: odd + odd must be even because the two leftovers pair with each other.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.FAC.08",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Even/odd and parity arguments",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 0,
      "id": "NUM.FAC.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Even/odd and parity arguments: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Even/odd and parity arguments.",
      "content": "7 + 9: 7 = 3 pairs + 1, 9 = 4 pairs + 1; the two spare ones form a pair → 8 pairs = 16, even.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.FAC.08",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Even/odd and parity arguments",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 0,
      "id": "NUM.FAC.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Even/odd and parity arguments: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Even/odd and parity arguments into personal, civic/data, and career contexts.",
      "content": "Personal — Can you and your sibling split 47 stickers exactly evenly? Parity answers before any dividing. · Civic/Data — A buddy system for 27 students on a trip — why exactly one child is always unpaired. · Career — A banquet server seats couples at two-seat tables: 38 guests → 19 tables, zero singles.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.FAC.08",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Even/odd and parity arguments",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 0,
      "id": "NUM.FAC.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Even/odd and parity arguments: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Even/odd and parity arguments.",
      "content": "Accuracy — 8 items: classify, predict parity of sums/products (odd×odd, even+odd…) without computing; ≥7/8 · Explanation — Prove with the pairing picture why odd + odd is always even, not just for 7 + 9. · Transfer — 13 players show up for a pairs tournament — argue from parity, not trial, why someone must sit out.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.FAC.09",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Exponent notation for repeated factors",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 0,
      "id": "NUM.FAC.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Exponent notation for repeated factors: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Exponent notation for repeated factors.",
      "content": "An exponent counts how many times a factor repeats: 2⁵ means 2 × 2 × 2 × 2 × 2 = 32 — multiplication compressed, and the native language of prime fingerprints.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.FAC.09",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Exponent notation for repeated factors",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 0,
      "id": "NUM.FAC.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Exponent notation for repeated factors: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Exponent notation for repeated factors.",
      "content": "2 × 2 × 2 × 2 × 2 = 2⁵ = 32. In reverse: 72 = 2 × 2 × 2 × 3 × 3 = 2³ × 3².",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.FAC.09",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Exponent notation for repeated factors",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 0,
      "id": "NUM.FAC.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Exponent notation for repeated factors: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Exponent notation for repeated factors into personal, civic/data, and career contexts.",
      "content": "Personal — Fold a sheet of paper 6 times — 2⁶ = 64 layers (try it; the paper fights back). · Civic/Data — A chain message forwarded to 3 people, 4 rounds deep, reaches 3⁴ = 81 inboxes. · Career — A lab tech logs a culture of 10³ = 1,000 cells per milliliter on the day sheet.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.FAC.09",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Exponent notation for repeated factors",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 0,
      "id": "NUM.FAC.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Exponent notation for repeated factors: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Exponent notation for repeated factors.",
      "content": "Accuracy — 8 items: evaluate small powers, convert repeated products ↔ exponent form, write factorizations with exponents; ≥7/8 · Explanation — \"2⁵ = 10 because 2 × 5\" — explain the difference between repeated multiplication and multiplying, with the value gap as evidence. · Transfer — Write 5 × 5 × 5 in exponent form and evaluate it for a volume label (5³ = 125).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.FAC.10",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Applying GCF/LCM in problems",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 6,
      "id": "NUM.FAC.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Applying GCF/LCM in problems: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Applying GCF/LCM in problems.",
      "content": "The decision is the skill: splitting things into identical groups calls for GCF; waiting for cycles to line up calls for LCM. Read the problem's action, then pick the tool.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.FAC.10",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Applying GCF/LCM in problems",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 6,
      "id": "NUM.FAC.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Applying GCF/LCM in problems: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Applying GCF/LCM in problems.",
      "content": "Cups come 12 to a pack, plates 9 to a pack. First equal count: LCM(12, 9) = 36 → buy 3 packs of cups and 4 of plates, zero leftovers.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.FAC.10",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Applying GCF/LCM in problems",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 6,
      "id": "NUM.FAC.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Applying GCF/LCM in problems: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Applying GCF/LCM in problems into personal, civic/data, and career contexts.",
      "content": "Personal — Build identical party bags from 20 bouncy balls and 30 stickers — GCF 10 bags of 2 and 3. · Civic/Data — Two food trucks visit every 4 and 10 days — mark day 20, their first shared visit, on the town calendar. · Career — A print buyer aligns paper (reams of 500) with envelope boxes of 200 — first match at 1,000 of each.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.FAC.10",
      "clusterId": "NUM.FAC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Applying GCF/LCM in problems",
      "clusterTitle": "Factors, Multiples & Primes (NUM.FAC)",
      "band": "4–6",
      "hardLevel": 6,
      "id": "NUM.FAC.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Applying GCF/LCM in problems: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Applying GCF/LCM in problems.",
      "content": "Accuracy — 8 items: mixed word problems where only the GCF/LCM choice differs, learner names the tool; ≥7/8 · Explanation — For one grouping and one cycle problem, explain how the story's action told you GCF vs LCM before any computing. · Transfer — Hot dogs in packs of 10, buns in packs of 8 — fewest of each to come out exactly even (40 and 40)?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.FRC.01",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fractions as equal parts of a whole",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 0,
      "id": "NUM.FRC.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Fractions as equal parts of a whole: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Fractions as equal parts of a whole.",
      "content": "A fraction names equal-sized parts of one whole: the bottom number counts the parts the whole is cut into, the top counts the parts you mean. Unequal cuts have no fraction name.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.FRC.01",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fractions as equal parts of a whole",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 0,
      "id": "NUM.FRC.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Fractions as equal parts of a whole: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Fractions as equal parts of a whole.",
      "content": "A chocolate bar scored into 4 equal pieces: eat 3 → you ate 3/4 of the bar; 1/4 remains. Cut unevenly, the pieces aren't fourths at all.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.FRC.01",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fractions as equal parts of a whole",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 0,
      "id": "NUM.FRC.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Fractions as equal parts of a whole: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Fractions as equal parts of a whole into personal, civic/data, and career contexts.",
      "content": "Personal — Cut a sandwich into two truly equal halves so neither sibling cries foul. · Civic/Data — The school garden is split into 4 equal beds; your class tends 1/4 of it. · Career — A pizzaiolo cuts every pie into 8 equal slices so each slice sells for the same price.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.FRC.01",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fractions as equal parts of a whole",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 0,
      "id": "NUM.FRC.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Fractions as equal parts of a whole: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Fractions as equal parts of a whole.",
      "content": "Accuracy — 8 items: name shaded fractions, shade a stated fraction, accept/reject unequal partitions; ≥7/8 · Explanation — Lia cuts a bar into 4 unequal pieces and calls each one 1/4 — explain what \"fourth\" requires and why her labels fail. · Transfer — Fold a square napkin into 8 equal parts and name what one part is.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.FRC.02",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Unit fractions and the number line",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 1,
      "id": "NUM.FRC.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Unit fractions and the number line: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Unit fractions and the number line.",
      "content": "Cutting the 0-to-1 stretch into b equal jumps makes each jump 1/b; counting a of those jumps lands on a/b. Fractions are numbers with addresses, not just pie pictures.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.FRC.02",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Unit fractions and the number line",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 1,
      "id": "NUM.FRC.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Unit fractions and the number line: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Unit fractions and the number line.",
      "content": "Cut 0–1 into 3 equal jumps: each jump is 1/3. Two jumps from 0 land at 2/3; three jumps land exactly on 1, because 3/3 = 1.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.FRC.02",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Unit fractions and the number line",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 1,
      "id": "NUM.FRC.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Unit fractions and the number line: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Unit fractions and the number line into personal, civic/data, and career contexts.",
      "content": "Personal — Mark 1/3 and 2/3 fill-lines on your water bottle for the soccer game. · Civic/Data — The park's trail map posts markers each 1/4 mile — read where 3/4 sits on the trail line. · Career — A carpenter marks a board in fourths to drill evenly spaced holes.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.FRC.02",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Unit fractions and the number line",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 1,
      "id": "NUM.FRC.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Unit fractions and the number line: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Unit fractions and the number line.",
      "content": "Accuracy — 8 items: place and read fractions on 0–1 lines with varied denominators, including a/a = 1; ≥7/8 · Explanation — Why does 3/3 land exactly on 1 and not just near it? · Transfer — Find the 3/4-inch mark on a ruler before cutting tape.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.FRC.03",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fractions of a set",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 0,
      "id": "NUM.FRC.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Fractions of a set: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Fractions of a set.",
      "content": "A fraction can act on a collection: 1/4 of 12 means split 12 into 4 equal groups and take one — so \"of\" triggers dividing by the bottom, then multiplying by the top.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.FRC.03",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fractions of a set",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 0,
      "id": "NUM.FRC.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Fractions of a set: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Fractions of a set.",
      "content": "1/4 of 12 marbles: 12 ÷ 4 = 3, so 1/4 is 3 marbles — and 3/4 of 12 is 3 × 3 = 9.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.FRC.03",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fractions of a set",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 0,
      "id": "NUM.FRC.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Fractions of a set: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Fractions of a set into personal, civic/data, and career contexts.",
      "content": "Personal — Share 1/3 of your 15 candies with a friend — 5 leave the bag. · Civic/Data — The travel survey says 1/2 of the 28 students walk to school — 14 walkers on the chart. · Career — A shopkeeper puts 1/4 of a 20-apple crate on display — 5 apples out front.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.FRC.03",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fractions of a set",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 0,
      "id": "NUM.FRC.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Fractions of a set: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Fractions of a set.",
      "content": "Accuracy — 8 items: unit and non-unit fractions of sets to 50, one find-the-whole reversal; ≥7/8 · Explanation — Why does finding 1/4 of 12 start with dividing by 4 — what do the 4 groups stand for? · Transfer — 2/5 of the 20 birds on a wire fly off — how many left the wire?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.FRC.04",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Equivalent fractions — visual models",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 0,
      "id": "NUM.FRC.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Equivalent fractions — visual models: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Equivalent fractions — visual models.",
      "content": "Cutting every piece in half doubles the count of pieces without moving the shaded edge: 1/2, 2/4, and 4/8 are the same amount wearing different names.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.FRC.04",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Equivalent fractions — visual models",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 0,
      "id": "NUM.FRC.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Equivalent fractions — visual models: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Equivalent fractions — visual models.",
      "content": "Fold a paper strip in half and shade one part: 1/2. Fold again — the shading now covers 2 of 4 parts; again — 4 of 8. Same length shaded: 1/2 = 2/4 = 4/8.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.FRC.04",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Equivalent fractions — visual models",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 0,
      "id": "NUM.FRC.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Equivalent fractions — visual models: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Equivalent fractions — visual models into personal, civic/data, and career contexts.",
      "content": "Personal — Your 1/2 of the brownie pan equals your friend's 2/4 — prove the trade is fair before agreeing. · Civic/Data — Two club posters show half-shaded and 4/8-shaded progress bars — the class debates whether they report the same thing. · Career — A quilter swaps one 1/4-block triangle for two 1/8-block triangles and the pattern still fits.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.FRC.04",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Equivalent fractions — visual models",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 0,
      "id": "NUM.FRC.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Equivalent fractions — visual models: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Equivalent fractions — visual models.",
      "content": "Accuracy — 8 items: match equivalent pairs from area and line models, generate one equivalent by re-cutting; ≥7/8 · Explanation — Why does folding halves into eighths change the count of pieces but not the amount shaded? · Transfer — Shade two grids to show 3/4 = 6/8 for a poster.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.FRC.05",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Equivalent fractions — multiply/divide rule",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 1,
      "id": "NUM.FRC.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Equivalent fractions — multiply/divide rule: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Equivalent fractions — multiply/divide rule.",
      "content": "Multiplying or dividing top and bottom by the same number re-cuts the pieces without changing the amount — the arithmetic shadow of the folding you already trust.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.FRC.05",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Equivalent fractions — multiply/divide rule",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 1,
      "id": "NUM.FRC.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Equivalent fractions — multiply/divide rule: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Equivalent fractions — multiply/divide rule.",
      "content": "2/3 = (2 × 4)/(3 × 4) = 8/12. In reverse, 6/8 = (6 ÷ 2)/(8 ÷ 2) = 3/4.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.FRC.05",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Equivalent fractions — multiply/divide rule",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 1,
      "id": "NUM.FRC.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Equivalent fractions — multiply/divide rule: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Equivalent fractions — multiply/divide rule into personal, civic/data, and career contexts.",
      "content": "Personal — Trade gummy worms: show your 2/5 of a pack equals 4/10, so the swap is even. · Civic/Data — The election poster says 20/30 of voters chose recess games — the article says 2/3; check they agree. · Career — A tiler logs 9/12 of the wall grouted and writes 3/4 on the day sheet — same wall, simpler name.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.FRC.05",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Equivalent fractions — multiply/divide rule",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 1,
      "id": "NUM.FRC.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Equivalent fractions — multiply/divide rule: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Equivalent fractions — multiply/divide rule.",
      "content": "Accuracy — 8 items: fill missing numerators/denominators both directions (2/3 = __/12, 6/8 = 3/__); ≥7/8 · Explanation — \"2/3 = 4/5 because I added 2 to the top and bottom\" — show with twelfths why adding breaks the value but multiplying keeps it. · Transfer — A sticker chart needs 5/6 written in eighteenths — find 15/18.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.FRC.06",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Simplifying fractions",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 2,
      "id": "NUM.FRC.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Simplifying fractions: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Simplifying fractions.",
      "content": "Dividing top and bottom by a common factor — best of all, the greatest one — renames a fraction in lowest terms: the same number with the smallest possible vocabulary.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.FRC.06",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Simplifying fractions",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 2,
      "id": "NUM.FRC.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Simplifying fractions: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Simplifying fractions.",
      "content": "20/24: GCF(20, 24) = 4, so 20/24 = 5/6. Stepwise works too: ÷2 → 10/12, ÷2 → 5/6 — same destination.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.FRC.06",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Simplifying fractions",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 2,
      "id": "NUM.FRC.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Simplifying fractions: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Simplifying fractions into personal, civic/data, and career contexts.",
      "content": "Personal — You ate 8/12 of your grapes — tell your dad \"2/3\" and watch him understand instantly. · Civic/Data — 16/20 of surveyed kids want longer recess — the report headlines it as 4/5. · Career — A mechanic reads the dipstick at 12/16 and marks 3/4 on the service ticket.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.FRC.06",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Simplifying fractions",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 2,
      "id": "NUM.FRC.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Simplifying fractions: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Simplifying fractions.",
      "content": "Accuracy — 8 items: reduce to lowest terms, flag already-simplified traps (9/16), one GCF-vs-stepwise comparison; ≥7/8 · Explanation — Why does dividing top and bottom by the same number leave the amount unchanged — what happened to the pieces? · Transfer — Simplify your puzzle progress, 14/21 done, for the family group chat.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.FRC.07",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Comparing fractions (common denominators and benchmarks)",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 2,
      "id": "NUM.FRC.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Comparing fractions (common denominators and benchmarks): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Comparing fractions (common denominators and benchmarks).",
      "content": "Fractions compare honestly only as same-size pieces — rename to a common denominator — or by judging each against a benchmark like 1/2. Bigger digits don't mean bigger fractions.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.FRC.07",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Comparing fractions (common denominators and benchmarks)",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 2,
      "id": "NUM.FRC.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Comparing fractions (common denominators and benchmarks): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Comparing fractions (common denominators and benchmarks).",
      "content": "3/5 vs 2/3: rename in fifteenths — 9/15 vs 10/15 — so 2/3 is larger. Benchmark route: 5/8 > 1/2 while 3/7 < 1/2, so 5/8 > 3/7 with no renaming.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.FRC.07",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Comparing fractions (common denominators and benchmarks)",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 2,
      "id": "NUM.FRC.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Comparing fractions (common denominators and benchmarks): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Comparing fractions (common denominators and benchmarks) into personal, civic/data, and career contexts.",
      "content": "Personal — Same-size juice bottles: yours is 2/5 full, hers 3/10 — whose has more left? · Civic/Data — Two identical club rooms: chess is 5/8 full, art 4/9 — which club is fuller for the newsletter? · Career — Two painters report 7/10 and 11/15 of equal walls done — thirtieths reveal who's ahead (21/30 vs 22/30).",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.FRC.07",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Comparing fractions (common denominators and benchmarks)",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 2,
      "id": "NUM.FRC.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Comparing fractions (common denominators and benchmarks): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Comparing fractions (common denominators and benchmarks).",
      "content": "Accuracy — 8 items: compare and order with renaming and with benchmarks, learner shows which route; ≥7/8 · Explanation — \"3/5 > 2/3 because 3 > 2 and 5 > 3\" — dismantle the digit-comparison with fifteenths. · Transfer — Order the measuring scoops 3/8, 1/2, 5/8 for a science mix.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.FRC.08",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Mixed numbers and improper fractions",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 3,
      "id": "NUM.FRC.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Mixed numbers and improper fractions: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Mixed numbers and improper fractions.",
      "content": "Amounts past one whole have two names: improper (11/4) and mixed (2 3/4). Converting is regrouping wholes into parts — every whole carries denominator-many pieces.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.FRC.08",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Mixed numbers and improper fractions",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 3,
      "id": "NUM.FRC.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Mixed numbers and improper fractions: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Mixed numbers and improper fractions.",
      "content": "11/4: four fourths make a whole, so 11/4 = 4/4 + 4/4 + 3/4 = 2 3/4. Reverse: 3 2/5 = (3 × 5 + 2)/5 = 17/5.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.FRC.08",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Mixed numbers and improper fractions",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 3,
      "id": "NUM.FRC.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Mixed numbers and improper fractions: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Mixed numbers and improper fractions into personal, civic/data, and career contexts.",
      "content": "Personal — You drank 5/2 glasses of milk this week — tell your coach \"2 1/2.\" · Civic/Data — The bake sale moved 13/6 trays of cookies — the recap sheet wants 2 1/6. · Career — A deli scale reads 7/4 lb — the label prints 1 3/4 lb for the customer.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.FRC.08",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Mixed numbers and improper fractions",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 3,
      "id": "NUM.FRC.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Mixed numbers and improper fractions: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Mixed numbers and improper fractions.",
      "content": "Accuracy — 8 items: convert both directions, place mixed numbers on a number line past 1; ≥7/8 · Explanation — Where do the 8 fourths inside the \"2\" of 2 3/4 come from? Show why 2 3/4 and 11/4 must be the same point. · Transfer — Your running app logs 19/5 km this week — report it as kilometers and fifths (3 4/5).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.FRC.09",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fractions as division",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 4,
      "id": "NUM.FRC.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Fractions as division: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Fractions as division.",
      "content": "The fraction bar is a division sign: 3 ÷ 4 = 3/4 exactly. Sharing 3 things among 4 people gives each person 3/4 — no remainder language needed.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.FRC.09",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fractions as division",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 4,
      "id": "NUM.FRC.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Fractions as division: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Fractions as division.",
      "content": "3 subs shared by 4 friends: cut each sub into fourths; each friend takes one fourth from each sub → 3/4 of a sub each. Check: 4 × 3/4 = 3 subs. ✓",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.FRC.09",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fractions as division",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 4,
      "id": "NUM.FRC.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Fractions as division: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Fractions as division into personal, civic/data, and career contexts.",
      "content": "Personal — 5 cookies, 4 kids: 5 ÷ 4 = 5/4, so everyone gets 1 1/4 cookies and nobody fights. · Civic/Data — Field day: 3 watermelons for 12 students — 3/12 = 1/4 melon per child on the supply plan. · Career — A caterer splits 7 quiches across 8 tables — 7/8 of a quiche per table.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.FRC.09",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fractions as division",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 4,
      "id": "NUM.FRC.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Fractions as division: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Fractions as division.",
      "content": "Accuracy — 8 items: write sharing situations as fractions, convert a ÷ b ↔ a/b, one mixed-number result; ≥7/8 · Explanation — Why does sharing 3 among 4 give *exactly* 3/4 each — where did the remainder go? · Transfer — Share a 2 m string among 5 kite tails — how much per tail, as a fraction of a meter?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.FRC.10",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Benchmark fractions and estimation",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 0,
      "id": "NUM.FRC.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Benchmark fractions and estimation: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Benchmark fractions and estimation.",
      "content": "Compare the top to half the bottom and to the whole bottom: that instantly files any fraction near 0, 1/2, or 1 — the estimation reflex that catches nonsense answers later.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.FRC.10",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Benchmark fractions and estimation",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 0,
      "id": "NUM.FRC.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Benchmark fractions and estimation: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Benchmark fractions and estimation.",
      "content": "Is 5/9 more or less than 1/2? Half of 9 is 4.5 and 5 > 4.5, so 5/9 is just over 1/2. And 11/12 is one twelfth shy of 1 — call it \"almost 1.\"",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.FRC.10",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Benchmark fractions and estimation",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 0,
      "id": "NUM.FRC.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Benchmark fractions and estimation: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Benchmark fractions and estimation into personal, civic/data, and career contexts.",
      "content": "Personal — You've read 7/15 of a book — \"a bit under halfway\" is the honest report. · Civic/Data — A class poll finds 13/25 chose pizza — the newsletter fairly says \"about half.\" · Career — A farmer logs 19/20 of seedlings sprouted — \"nearly all\" goes in the field notes.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.FRC.10",
      "clusterId": "NUM.FRC",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Benchmark fractions and estimation",
      "clusterTitle": "Fraction Concepts (NUM.FRC)",
      "band": "2–5",
      "hardLevel": 0,
      "id": "NUM.FRC.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Benchmark fractions and estimation: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Benchmark fractions and estimation.",
      "content": "Accuracy — 8 items: file fractions near 0 / 1/2 / 1, pick the best estimate phrase, 2 review comparisons from .07; ≥7/8 · Explanation — \"7/12 is close to 1 because 7 and 12 are both big\" — explain the half-the-denominator test that exposes the flaw. · Transfer — The gauge shows 9/16 of a tank — more or less than half, and by a little or a lot?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.FRO.01",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Adding and subtracting like-denominator fractions",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 0,
      "id": "NUM.FRO.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Adding and subtracting like-denominator fractions: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Adding and subtracting like-denominator fractions.",
      "content": "Same denominators mean same-size pieces, so only the counts combine: 3 eighths + 2 eighths = 5 eighths. The denominator names the piece; it never adds.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.FRO.01",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Adding and subtracting like-denominator fractions",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 0,
      "id": "NUM.FRO.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Adding and subtracting like-denominator fractions: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Adding and subtracting like-denominator fractions.",
      "content": "3/8 + 2/8 = 5/8. And 7/8 − 3/8 = 4/8 = 1/2 after simplifying.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.FRO.01",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Adding and subtracting like-denominator fractions",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 0,
      "id": "NUM.FRO.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Adding and subtracting like-denominator fractions: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Adding and subtracting like-denominator fractions into personal, civic/data, and career contexts.",
      "content": "Personal — You ran 2/5 of the loop before school and 2/5 after — 4/5 of the loop done. · Civic/Data — Car-wash fundraiser: 4/10 of the goal by noon, 3/10 more by close — 7/10 on the tracker. · Career — A painter opens a can 7/8 full and uses 4/8 — 3/8 of a can left for touch-ups.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.FRO.01",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Adding and subtracting like-denominator fractions",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 0,
      "id": "NUM.FRO.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Adding and subtracting like-denominator fractions: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Adding and subtracting like-denominator fractions.",
      "content": "Accuracy — 8 items: like-denominator sums/differences, results simplified, 2 crossing one whole (5/6 + 4/6); ≥7/8 · Explanation — \"3/8 + 2/8 = 5/16\" — explain what the 8 counts and why adding denominators invents smaller pieces from nowhere. · Transfer — Practice log: 2/6 of an hour on scales, 3/6 on songs — total time as a fraction of an hour.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.FRO.02",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Adding and subtracting unlike denominators",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 1,
      "id": "NUM.FRO.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Adding and subtracting unlike denominators: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Adding and subtracting unlike denominators.",
      "content": "Different-size pieces can't combine until they're renamed as the same size — find a common denominator (a common multiple), convert, then add the counts.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.FRO.02",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Adding and subtracting unlike denominators",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 1,
      "id": "NUM.FRO.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Adding and subtracting unlike denominators: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Adding and subtracting unlike denominators.",
      "content": "1/4 + 1/6: LCD is 12 → 3/12 + 2/12 = 5/12.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.FRO.02",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Adding and subtracting unlike denominators",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 1,
      "id": "NUM.FRO.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Adding and subtracting unlike denominators: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Adding and subtracting unlike denominators into personal, civic/data, and career contexts.",
      "content": "Personal — Smoothie build: 1/2 cup yogurt + 1/3 cup juice = 5/6 cup in the blender. · Civic/Data — School garden: 1/3 planted with beans, 1/4 with carrots — 7/12 of the plot is in use. · Career — A plumber joins pipes of 3/4 m and 5/8 m — 1 3/8 m of run on the materials sheet.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.FRO.02",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Adding and subtracting unlike denominators",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 1,
      "id": "NUM.FRO.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Adding and subtracting unlike denominators: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Adding and subtracting unlike denominators.",
      "content": "Accuracy — 8 items: unlike-denominator sums/differences, LCD and any-common-denominator routes, 2 review from .01; ≥7/8 · Explanation — Why can't 1/4 + 1/6 be answered until both are twelfths — what exactly is wrong with 2/10? · Transfer — A garden plot is 1/2 flowers and 2/5 vegetables — what fraction is planted in all?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.FRO.03",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Adding and subtracting mixed numbers",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 2,
      "id": "NUM.FRO.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Adding and subtracting mixed numbers: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Adding and subtracting mixed numbers.",
      "content": "Mixed numbers add by parts — wholes with wholes, fractions with fractions — and when the fraction parts overflow or fall short, a whole regroups into denominator-size pieces.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.FRO.03",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Adding and subtracting mixed numbers",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 2,
      "id": "NUM.FRO.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Adding and subtracting mixed numbers: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Adding and subtracting mixed numbers.",
      "content": "2 3/4 + 1 1/2 = 2 3/4 + 1 2/4 → wholes 3, fractions 5/4 = 1 1/4 → 4 1/4.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.FRO.03",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Adding and subtracting mixed numbers",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 2,
      "id": "NUM.FRO.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Adding and subtracting mixed numbers: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Adding and subtracting mixed numbers into personal, civic/data, and career contexts.",
      "content": "Personal — Saturday hike: 2 1/2 mi to the falls, 1 2/3 mi to the lookout — 4 1/6 mi total. · Civic/Data — Bake-sale flour donations: 3 1/2 bags + 2 2/3 bags = 6 1/6 bags in the pantry log. · Career — A carpenter cuts 2 1/2 ft from a 6 1/4 ft board — 3 3/4 ft remains.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.FRO.03",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Adding and subtracting mixed numbers",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 2,
      "id": "NUM.FRO.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Adding and subtracting mixed numbers: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Adding and subtracting mixed numbers.",
      "content": "Accuracy — 8 items: mixed-number sums and differences, half requiring regrouping; ≥7/8 · Explanation — For 3 1/4 − 1 3/4 a student answers 2 1/2 by flipping to 3/4 − 1/4 — expose the flaw and show the regroup that gives 1 1/2. · Transfer — A 3 1/2-hour road trip has run 1 5/6 hours — time left?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.FRO.04",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplying a fraction by a whole number",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 0,
      "id": "NUM.FRO.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Multiplying a fraction by a whole number: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Multiplying a fraction by a whole number.",
      "content": "4 × 2/3 is four copies of two thirds — eight thirds in all. Whole-number multiplication still means repeated groups; only the group size is now a fraction.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.FRO.04",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplying a fraction by a whole number",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 0,
      "id": "NUM.FRO.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Multiplying a fraction by a whole number: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Multiplying a fraction by a whole number.",
      "content": "4 × 2/3 = 8/3 = 2 2/3 — four 2/3-cup scoops fill 2 2/3 cups.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.FRO.04",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplying a fraction by a whole number",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 0,
      "id": "NUM.FRO.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Multiplying a fraction by a whole number: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Multiplying a fraction by a whole number into personal, civic/data, and career contexts.",
      "content": "Personal — Lemonade stand prep: 5 friends each drink 3/4 cup — 3 3/4 cups before you even open. · Civic/Data — Relay day: 6 runners each cover 2/5 mi — a 2 2/5 mi course on the plan. · Career — A tailor cuts 8 patches at 5/8 yd each — exactly 5 yd of fabric.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.FRO.04",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplying a fraction by a whole number",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 0,
      "id": "NUM.FRO.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Multiplying a fraction by a whole number: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Multiplying a fraction by a whole number.",
      "content": "Accuracy — 8 items: whole × fraction and fraction × whole, mixed-number answers, one number-line model; ≥7/8 · Explanation — Why is 4 × 2/3 the same as (4 × 2)/3 — what stayed thirds the whole time? · Transfer — Cut 9 streamers of 2/3 m each — total meters of crepe paper?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.FRO.05",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplying fractions",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 1,
      "id": "NUM.FRO.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Multiplying fractions: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Multiplying fractions.",
      "content": "Multiply numerators and multiply denominators: 2/3 × 4/5 = 8/15. Taking a fraction *of* a fraction shrinks the result below either factor — \"times\" no longer means \"gets bigger.\"",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.FRO.05",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplying fractions",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 1,
      "id": "NUM.FRO.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Multiplying fractions: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Multiplying fractions.",
      "content": "2/3 × 4/5 = (2 × 4)/(3 × 5) = 8/15 — smaller than both 2/3 (10/15) and 4/5 (12/15).",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.FRO.05",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplying fractions",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 1,
      "id": "NUM.FRO.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Multiplying fractions: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Multiplying fractions into personal, civic/data, and career contexts.",
      "content": "Personal — You watched 2/3 of a 3/4-hour episode — 1/2 hour of screen time. · Civic/Data — 2/5 of the park's 5/6 acre is meadow — 1/3 acre in the survey table. · Career — A chef uses 4/5 of a 3/4-lb butter block — 3/5 lb into the pastry.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.FRO.05",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplying fractions",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 1,
      "id": "NUM.FRO.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Multiplying fractions: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Multiplying fractions.",
      "content": "Accuracy — 8 items: fraction × fraction with simplifying, 2 estimate-first items (\"will it exceed 1/2?\"); ≥7/8 · Explanation — Why does multiplying two proper fractions always give something smaller than either — what does \"of\" do to the amount? · Transfer — Walk 1/2 of a 5/6-km bridge — how far in kilometers?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.FRO.06",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fraction of a fraction — area models",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 2,
      "id": "NUM.FRO.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Fraction of a fraction — area models: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Fraction of a fraction — area models.",
      "content": "The area model shows why denominators multiply: cutting fifths one way and thirds the other makes fifteenths, and the overlap counts the answer.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.FRO.06",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fraction of a fraction — area models",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 2,
      "id": "NUM.FRO.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Fraction of a fraction — area models: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Fraction of a fraction — area models.",
      "content": "2/3 of 3/5: cut a rectangle into 5 columns, shade 3 (3/5); cut into 3 rows, keep 2 rows of the shaded part → 6 of 15 cells → 6/15 = 2/5.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.FRO.06",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fraction of a fraction — area models",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 2,
      "id": "NUM.FRO.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Fraction of a fraction — area models: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Fraction of a fraction — area models into personal, civic/data, and career contexts.",
      "content": "Personal — Half of the remaining 3/4 pan of brownies is yours — 3/8 of the original pan. · Civic/Data — Survey: 1/2 of the 4/5 of students who own bikes ride daily — 2/5 of the school. · Career — A barista uses 1/3 of a 3/4-full milk jug per batch — 1/4 jug each time.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.FRO.06",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fraction of a fraction — area models",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 2,
      "id": "NUM.FRO.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Fraction of a fraction — area models: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Fraction of a fraction — area models.",
      "content": "Accuracy — 8 items: solve and *draw* fraction-of-fraction problems, match expressions to shaded grids; ≥7/8 · Explanation — Use the grid to show why the denominators 3 and 5 multiply — where do the 15 cells physically come from? · Transfer — Shade a grid to find 2/5 of 1/2 a garden bed (1/5).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.FRO.07",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Dividing a whole number by a fraction",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 3,
      "id": "NUM.FRO.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Dividing a whole number by a fraction: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Dividing a whole number by a fraction.",
      "content": "3 ÷ 1/2 asks \"how many halves fit in 3?\" — six. Dividing by a number less than 1 gives a bigger answer, and the measurement meaning explains why.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.FRO.07",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Dividing a whole number by a fraction",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 3,
      "id": "NUM.FRO.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Dividing a whole number by a fraction: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Dividing a whole number by a fraction.",
      "content": "3 ÷ 1/2: each whole holds 2 halves, so 3 wholes hold 6 → a 3 m ribbon yields 6 half-meter pieces.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.FRO.07",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Dividing a whole number by a fraction",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 3,
      "id": "NUM.FRO.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Dividing a whole number by a fraction: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Dividing a whole number by a fraction into personal, civic/data, and career contexts.",
      "content": "Personal — Pancake morning: 4 cups of batter, 1/3 cup per pancake — 12 pancakes. · Civic/Data — A 6 yd banner cut into 3/4 yd pennants — 8 pennants for the parade. · Career — A burger cook portions 5 lb of beef into 1/4-lb patties — 20 patties prepped.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.FRO.07",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Dividing a whole number by a fraction",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 3,
      "id": "NUM.FRO.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Dividing a whole number by a fraction: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Dividing a whole number by a fraction.",
      "content": "Accuracy — 8 items: whole ÷ unit and non-unit fractions, one \"leftover piece\" variant; ≥7/8 · Explanation — \"3 ÷ 1/2 = 1 1/2, because dividing makes things smaller\" — use the how-many-fit meaning to find the flaw. · Transfer — Pour 2 L of juice into 1/5-L cups — how many cups fill?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.FRO.08",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Dividing fractions (reciprocal reasoning)",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 4,
      "id": "NUM.FRO.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Dividing fractions (reciprocal reasoning): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Dividing fractions (reciprocal reasoning).",
      "content": "Dividing asks how many of one piece fit in another; since 8 eighths fit in each whole, ÷1/8 acts as ×8 — multiplying by the reciprocal is the meaning, not a trick.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.FRO.08",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Dividing fractions (reciprocal reasoning)",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 4,
      "id": "NUM.FRO.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Dividing fractions (reciprocal reasoning): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Dividing fractions (reciprocal reasoning).",
      "content": "3/4 ÷ 1/8: rename 3/4 = 6/8, so six eighths fit → 6. Rule agrees: 3/4 × 8/1 = 24/4 = 6.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.FRO.08",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Dividing fractions (reciprocal reasoning)",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 4,
      "id": "NUM.FRO.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Dividing fractions (reciprocal reasoning): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Dividing fractions (reciprocal reasoning) into personal, civic/data, and career contexts.",
      "content": "Personal — A 3/4-cup tub of yogurt eaten in 3/8-cup servings — 2 servings exactly. · Civic/Data — A 9/10-km trail marked every 3/10 km — 3 segments between trailhead and end. · Career — A jeweler cuts 5/8 oz of silver into 1/16-oz charms — 10 charms per sheet.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.FRO.08",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Dividing fractions (reciprocal reasoning)",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 4,
      "id": "NUM.FRO.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Dividing fractions (reciprocal reasoning): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Dividing fractions (reciprocal reasoning).",
      "content": "Accuracy — 8 items: fraction ÷ fraction by common denominators and by reciprocal, answers checked by multiplying back; ≥7/8 · Explanation — Why does dividing by 1/8 do the same job as multiplying by 8? Argue from how many eighths live in one whole. · Transfer — How many 1/6-cup scoops empty a 2/3-cup jar of sprinkles?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.FRO.09",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Mixed operations with fractions",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 5,
      "id": "NUM.FRO.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Mixed operations with fractions: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Mixed operations with fractions.",
      "content": "Order of operations survives the move to fractions: multiplication and division before addition and subtraction, with renaming handled inside each step — structure first, arithmetic second.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.FRO.09",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Mixed operations with fractions",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 5,
      "id": "NUM.FRO.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Mixed operations with fractions: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Mixed operations with fractions.",
      "content": "1/2 + 1/3 × 3/4: multiply first — 1/3 × 3/4 = 3/12 = 1/4 — then 1/2 + 1/4 = 3/4.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.FRO.09",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Mixed operations with fractions",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 5,
      "id": "NUM.FRO.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Mixed operations with fractions: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Mixed operations with fractions into personal, civic/data, and career contexts.",
      "content": "Personal — Trail mix: 1/2 cup nuts plus 3 bags of 1/4 cup raisins — 1 1/4 cups in the jar. · Civic/Data — Banner duty: 5/6 of the banner remained, then a team painted 1/3 of a 1/2 section — 5/6 − 1/6 leaves 2/3 unpainted. · Career — A chef preps 2 batches × 3/4 cup stock + 1/2 cup extra — 2 cups total.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.FRO.09",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Mixed operations with fractions",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 5,
      "id": "NUM.FRO.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Mixed operations with fractions: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Mixed operations with fractions.",
      "content": "Accuracy — 8 items: two-operation expressions, parentheses in half of them, 2 review one-step items; ≥7/8 · Explanation — A student computes 1/2 + 1/3 × 3/4 left to right and gets 5/8 — name the rule broken and show how the answer changes to 3/4. · Transfer — Evaluate 5/8 + 1/2 ÷ 2 for a recipe-scaling cheat sheet.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.FRO.10",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fraction word problems (multi-step)",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 6,
      "id": "NUM.FRO.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Fraction word problems (multi-step): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Fraction word problems (multi-step).",
      "content": "Multi-step fraction problems are won at the planning stage: track what the whole is at each step, choose the operation from the action, and let units predict the answer's form.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.FRO.10",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fraction word problems (multi-step)",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 6,
      "id": "NUM.FRO.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Fraction word problems (multi-step): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Fraction word problems (multi-step).",
      "content": "A recipe takes 3/4 cup sugar per batch; you bake 2 1/2 batches: 2 1/2 × 3/4 = 5/2 × 3/4 = 15/8 = 1 7/8 cups. Your 2-cup bag leaves 2 − 1 7/8 = 1/8 cup.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.FRO.10",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fraction word problems (multi-step)",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 6,
      "id": "NUM.FRO.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Fraction word problems (multi-step): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Fraction word problems (multi-step) into personal, civic/data, and career contexts.",
      "content": "Personal — Allowance: from $18, spend 1/3 on a game, then 1/2 of what's left on snacks — $6 survives the weekend. · Civic/Data — Field day: 3 coolers × 2 1/2 gal = 7 1/2 gal of water — filling 1/4-gal bottles makes 30. · Career — A bakery divides 5 1/4 lb of dough into 3/4-lb loaves — 7 loaves to proof.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.FRO.10",
      "clusterId": "NUM.FRO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fraction word problems (multi-step)",
      "clusterTitle": "Fraction Operations (NUM.FRO)",
      "band": "4–6",
      "hardLevel": 6,
      "id": "NUM.FRO.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Fraction word problems (multi-step): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Fraction word problems (multi-step).",
      "content": "Accuracy — 8 items: two- and three-step problems mixing all four operations, plans graded alongside answers; ≥7/8 · Explanation — For the dough problem a solver computes 5 1/4 × 3/4 ≈ 3.9 — explain how the expected answer type (a count of loaves) exposes the wrong operation. · Transfer — A job needs 2 1/4 gal of paint sold in 3/4-gal cans — how many cans must you buy?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.INT.01",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Negative numbers in context (temperature, debt, elevation)",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 4,
      "id": "NUM.INT.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Negative numbers in context (temperature, debt, elevation): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Negative numbers in context (temperature, debt, elevation).",
      "content": "Negative numbers extend the count below zero to record opposite-direction quantities — colder than freezing, money owed, depth below sea level — with zero as the chosen reference point.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.INT.01",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Negative numbers in context (temperature, debt, elevation)",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 4,
      "id": "NUM.INT.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Negative numbers in context (temperature, debt, elevation): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Negative numbers in context (temperature, debt, elevation).",
      "content": "The temperature is 4 °C and drops 9 degrees overnight: 4 − 9 lands 5 below zero, so −5 °C. A $25 account hit with a $40 charge sits at −$15: fifteen dollars owed.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.INT.01",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Negative numbers in context (temperature, debt, elevation)",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 4,
      "id": "NUM.INT.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Negative numbers in context (temperature, debt, elevation): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Negative numbers in context (temperature, debt, elevation) into personal, civic/data, and career contexts.",
      "content": "Personal — you borrow $5 from a sibling; record your balance as −5 and say what would return it to 0. · Civic/Data — an atlas lists Death Valley at −86 m; explain what the sign means against sea level. · Career — a restaurant freezer log must read −18 °C; interpret a reading of −12 °C against the rule.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.INT.01",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Negative numbers in context (temperature, debt, elevation)",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 4,
      "id": "NUM.INT.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Negative numbers in context (temperature, debt, elevation): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Negative numbers in context (temperature, debt, elevation).",
      "content": "Accuracy — 8 items translating situations ↔ signed numbers (2 place-value review) ≥7/8 · Explanation — why does \"−86 m elevation\" need a reference point to mean anything? · Transfer — interpret a golf leaderboard where the winner is at −6.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.INT.02",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Integers on the number line",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 5,
      "id": "NUM.INT.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Integers on the number line: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Integers on the number line.",
      "content": "Integers sit on one line through zero: negatives mirror positives to the left, and moves are distances along the line.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.INT.02",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Integers on the number line",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 5,
      "id": "NUM.INT.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Integers on the number line: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Integers on the number line.",
      "content": "Place −7, −2, and 3: −7 lies left of −2, both left of 0. The trip from −7 to 3 covers 7 + 3 = 10 units.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.INT.02",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Integers on the number line",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 5,
      "id": "NUM.INT.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Integers on the number line: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Integers on the number line into personal, civic/data, and career contexts.",
      "content": "Personal — sketch your week's money on a line: from −$7 (owed) to +$3 after allowance. · Civic/Data — a mine-tour diagram runs from −20 m underground to a +15 m lookout; read depths off the cross-section. · Career — a submarine pilot logs a rise from −45 m to −30 m and reports a 15 m ascent.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.INT.02",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Integers on the number line",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 5,
      "id": "NUM.INT.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Integers on the number line: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Integers on the number line.",
      "content": "Accuracy — 8 items placing integers and counting moves on the line (2 review) ≥7/8 · Explanation — find the flaw: a learner draws −7 to the right of −2 \"because 7 comes after 2\" · Transfer — read an elevator panel running from P3 (−3) to floor 5 and count the floors traveled.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.INT.03",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Comparing and ordering integers",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 6,
      "id": "NUM.INT.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Comparing and ordering integers: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Comparing and ordering integers.",
      "content": "Smaller means further left on the line, so any negative is less than any positive and −8 < −3 even though 8 > 3.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.INT.03",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Comparing and ordering integers",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 6,
      "id": "NUM.INT.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Comparing and ordering integers: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Comparing and ordering integers.",
      "content": "Order −8, 5, −3, 0: −8 < −3 < 0 < 5. The colder of −8 °C and −3 °C is −8 °C — left on the line means colder.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.INT.03",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Comparing and ordering integers",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 6,
      "id": "NUM.INT.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Comparing and ordering integers: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Comparing and ordering integers into personal, civic/data, and career contexts.",
      "content": "Personal — rank the week's dawn temperatures −4, 2, −9 to pick the coldest morning. · Civic/Data — order three nations' trade balances −2, +1, −5 (billions) for an infographic from worst to best. · Career — a food-safety inspector sorts logged readings −18, 4, 21 °C to check each unit against its required range.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.INT.03",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Comparing and ordering integers",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 6,
      "id": "NUM.INT.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Comparing and ordering integers: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Comparing and ordering integers.",
      "content": "Accuracy — 8 compare/order items heavy on negative–negative pairs (2 review) ≥7/8 · Explanation — spot the flaw: \"−8 > −3 because 8 > 3\" · Transfer — order golf scores +2, −5, −1, E(0) from best to worst.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.INT.04",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Absolute value as distance",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 7,
      "id": "NUM.INT.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Absolute value as distance: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Absolute value as distance.",
      "content": "Absolute value is distance from zero, ignoring direction — so |−6| = 6, and \"most extreme\" questions are absolute-value questions even when \"least\" wins the ordering.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.INT.04",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Absolute value as distance",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 7,
      "id": "NUM.INT.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Absolute value as distance: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Absolute value as distance.",
      "content": "|−6| = 6 and |4| = 4. Which is closer to 0: −6 or 4? Compare distances: 4 < 6, so 4 is closer — even though −6 < 4 in the ordering.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.INT.04",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Absolute value as distance",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 7,
      "id": "NUM.INT.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Absolute value as distance: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Absolute value as distance into personal, civic/data, and career contexts.",
      "content": "Personal — you are −$6 from your savings target and your friend is +$4 over; whose plan missed by more? · Civic/Data — a climate report shows monthly anomalies −1.2 °C and +0.9 °C; decide which month deviated more from average. · Career — a machinist sees parts at −0.3 mm and +0.2 mm from spec; which part is further out of tolerance?",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.INT.04",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Absolute value as distance",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 7,
      "id": "NUM.INT.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Absolute value as distance: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Absolute value as distance.",
      "content": "Accuracy — 8 items mixing |x| evaluation with closer/further questions (2 review) ≥7/8 · Explanation — why is |−6| not −6? Use the distance meaning, not a \"drop the sign\" rule. · Transfer — among account balances −12, 9, −4, say which person's situation is furthest from breaking even.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.INT.05",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Adding integers",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 8,
      "id": "NUM.INT.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Adding integers: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Adding integers.",
      "content": "Adding integers is combining signed moves: opposite signs cancel in zero-pairs, so the result keeps the sign of whichever direction had more.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.INT.05",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Adding integers",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 8,
      "id": "NUM.INT.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Adding integers: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Adding integers.",
      "content": "−8 + 5: five of the eight negatives cancel with the +5, leaving −3. Same signs accumulate: −4 + (−7) = −11.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.INT.05",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Adding integers",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 8,
      "id": "NUM.INT.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Adding integers: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Adding integers into personal, civic/data, and career contexts.",
      "content": "Personal — your game history shows −12 points last round and +9 this round; find your net score. · Civic/Data — the town runs a $2M deficit, then receives a $3M grant; report the resulting balance (+$1M). · Career — a warehouse clerk posts stock adjustments −40 (damaged) and +25 (returns) and records the net change (−15).",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.INT.05",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Adding integers",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 8,
      "id": "NUM.INT.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Adding integers: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Adding integers.",
      "content": "Accuracy — 8 sums across all sign combinations (2 review) ≥7/8 · Explanation — why does −8 + 5 land at −3? Explain with zero-pairs or number-line moves. · Transfer — combine a hot-air balloon's altitude changes +120, −45, +30 into one net change.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.INT.06",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Subtracting integers (adding the opposite)",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 9,
      "id": "NUM.INT.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Subtracting integers (adding the opposite): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Subtracting integers (adding the opposite).",
      "content": "Subtraction is the distance-and-direction question \"how far and which way from b to a\" — and computing it as adding the opposite makes a − (−b) = a + b sensible.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.INT.06",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Subtracting integers (adding the opposite)",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 9,
      "id": "NUM.INT.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Subtracting integers (adding the opposite): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Subtracting integers (adding the opposite).",
      "content": "3 − (−5) = 3 + 5 = 8: the gap between 3 °C and −5 °C is 8 degrees. Also −2 − 7 = −2 + (−7) = −9.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.INT.06",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Subtracting integers (adding the opposite)",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 9,
      "id": "NUM.INT.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Subtracting integers (adding the opposite): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Subtracting integers (adding the opposite) into personal, civic/data, and career contexts.",
      "content": "Personal — count the floors from parking level −2 to your dentist on floor 3. · Civic/Data — a record-swing headline: from −11 °C overnight to 4 °C by noon — verify the \"15-degree swing.\" · Career — a dive master logs a change from −12 m to −3 m and confirms it as a +9 m ascent.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.INT.06",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Subtracting integers (adding the opposite)",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 9,
      "id": "NUM.INT.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Subtracting integers (adding the opposite): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Subtracting integers (adding the opposite).",
      "content": "Accuracy — 8 differences, at least 3 of form a − (−b) (2 review) ≥7/8 · Explanation — why does subtracting −5 increase the result? Convince a skeptic with the number line. · Transfer — find the gain from a business's worst month (−$1,200) to its best (+$800).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.INT.07",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplying integers (sign rules)",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 10,
      "id": "NUM.INT.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Multiplying integers (sign rules): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Multiplying integers (sign rules).",
      "content": "Multiplication is repeated signed addition: a positive count of debts is a debt, and removing debts (negative × negative) is a gain — the sign rules follow from the pattern, not decree.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.INT.07",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplying integers (sign rules)",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 10,
      "id": "NUM.INT.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Multiplying integers (sign rules): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Multiplying integers (sign rules).",
      "content": "4 × (−3) = −12 (four debts of 3). For (−4) × (−3), continue the pattern 3×(−3) = −9, 2×(−3) = −6, 1×(−3) = −3, 0×(−3) = 0 — each step adds 3 — so (−1)×(−3) = 3 and (−4)×(−3) = +12.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.INT.07",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplying integers (sign rules)",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 10,
      "id": "NUM.INT.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Multiplying integers (sign rules): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Multiplying integers (sign rules) into personal, civic/data, and career contexts.",
      "content": "Personal — a quiz app docks 3 points per wrong answer; after 4 wrong, what changed (−12)? · Civic/Data — a reservoir falls 2 cm per day for 5 days; express the week's change as 5 × (−2) = −10 cm. · Career — an accountant reverses four mistaken $30 charges and books the effect as (−4) × (−30) = +$120.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.INT.07",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplying integers (sign rules)",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 10,
      "id": "NUM.INT.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Multiplying integers (sign rules): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Multiplying integers (sign rules).",
      "content": "Accuracy — 8 products across sign cases (2 review) ≥7/8 · Explanation — why must (−4) × (−3) be positive? Use the pattern or the \"removing debts\" story — no \"two negatives make a positive\" chant. · Transfer — a time-lapse runs backward at 6 frames/step while a balloon sinks 2 m/frame; what does each backward step show (+12 m)?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.INT.08",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Dividing integers",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 11,
      "id": "NUM.INT.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Dividing integers: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Dividing integers.",
      "content": "Division inherits its sign rules from multiplication because a ÷ b asks \"what times b gives a?\" — same-sign quotients are positive, mixed-sign negative.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.INT.08",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Dividing integers",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 11,
      "id": "NUM.INT.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Dividing integers: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Dividing integers.",
      "content": "−24 ÷ 6 = −4, since 6 × (−4) = −24 (a debt shared six ways). −24 ÷ (−6) = 4, since 4 × (−6) = −24.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.INT.08",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Dividing integers",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 11,
      "id": "NUM.INT.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Dividing integers: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Dividing integers into personal, civic/data, and career contexts.",
      "content": "Personal — four friends split a group debt of −$36 evenly; find each share (−$9). · Civic/Data — a lake fell 18 cm over 6 weeks; report the average weekly change (−3 cm/week). · Career — a meteorologist averages a cold snap: 20 degrees lost over 5 days = −4 °C per day.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.INT.08",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Dividing integers",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 11,
      "id": "NUM.INT.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Dividing integers: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Dividing integers.",
      "content": "Accuracy — 8 quotients across sign cases (2 review) ≥7/8 · Explanation — spot the flaw: \"−24 ÷ (−6) = −4 because there's a negative in it\" — check it by multiplying back. · Transfer — a drone descends 150 m in 6 equal steps; find each step's signed change.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.INT.09",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Order of operations with integers",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 12,
      "id": "NUM.INT.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Order of operations with integers: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Order of operations with integers.",
      "content": "The grammar of expressions doesn't change when negatives arrive: multiply/divide before add/subtract, grouping first — and signs ride with their numbers.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.INT.09",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Order of operations with integers",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 12,
      "id": "NUM.INT.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Order of operations with integers: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Order of operations with integers.",
      "content": "5 − 3 × (−4) = 5 − (−12) = 17, while (5 − 3) × (−4) = 2 × (−4) = −8 — grouping changes everything.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.INT.09",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Order of operations with integers",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 12,
      "id": "NUM.INT.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Order of operations with integers: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Order of operations with integers into personal, civic/data, and career contexts.",
      "content": "Personal — check your quiz score: 100 + 4 × (−15) for four wrong answers (40, not −900 or 1,540). · Civic/Data — verify a city table: balance after five $3M annual deficits, 12 + 5 × (−3) = −3 (millions). · Career — an auditor finds a spreadsheet that computed 100 − 20 × (−3) left-to-right and explains why −240 is wrong (correct: 160).",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.INT.09",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Order of operations with integers",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 12,
      "id": "NUM.INT.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Order of operations with integers: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Order of operations with integers.",
      "content": "Accuracy — 8 multi-operation expressions with negatives and grouping (2 review) ≥7/8 · Explanation — find the flaw in the left-to-right evaluation 5 − 3 × (−4) → 2 × (−4) = −8 · Transfer — evaluate a scoring formula 50 + 2 × (−8) − (−6) from a rules card you've never seen.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.INT.10",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Coordinate quadrants and signed pairs",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 13,
      "id": "NUM.INT.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Coordinate quadrants and signed pairs: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Coordinate quadrants and signed pairs.",
      "content": "Signed pairs locate points in all four quadrants: the signs of (x, y) are an address — left/right first, then up/down.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.INT.10",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Coordinate quadrants and signed pairs",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 13,
      "id": "NUM.INT.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Coordinate quadrants and signed pairs: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Coordinate quadrants and signed pairs.",
      "content": "Plot (−3, 2): 3 left, 2 up — Quadrant II. Then (−3, −2) is Quadrant III, and reflecting (−3, 2) across the x-axis flips only the y: (−3, −2).",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.INT.10",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Coordinate quadrants and signed pairs",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 13,
      "id": "NUM.INT.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Coordinate quadrants and signed pairs: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Coordinate quadrants and signed pairs into personal, civic/data, and career contexts.",
      "content": "Personal — call shots in a battleship-style game using pairs like (−3, 4) and explain which quarter of the board you mean. · Civic/Data — read a city grid map where blocks west and south of the center plaza carry negative coordinates. · Career — a drone pilot logs position (−120, 80) meters from the launch pad and radios which quadrant of the site the drone is over.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.INT.10",
      "clusterId": "NUM.INT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Coordinate quadrants and signed pairs",
      "clusterTitle": "Integers & Negative Numbers (NUM.INT)",
      "band": "6–7",
      "hardLevel": 13,
      "id": "NUM.INT.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Coordinate quadrants and signed pairs: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Coordinate quadrants and signed pairs.",
      "content": "Accuracy — 8 plot/read items across all quadrants and axes (2 review) ≥7/8 · Explanation — why do (−3, 2) and (2, −3) name different points? What does order contribute? · Transfer — give the signed pair for a chess-club treasure hunt clue \"2 columns left, 5 rows down from center.\"",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.MUL.01",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplication as equal groups and arrays",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 0,
      "id": "NUM.MUL.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Multiplication as equal groups and arrays: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Multiplication as equal groups and arrays.",
      "content": "Multiplication counts equal groups in one move: 4 groups of 6 is 4 × 6. Arranged as an array, the same objects show why 4 × 6 and 6 × 4 must match.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.MUL.01",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplication as equal groups and arrays",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 0,
      "id": "NUM.MUL.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Multiplication as equal groups and arrays: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Multiplication as equal groups and arrays.",
      "content": "4 rows of 6 dots: 6 + 6 + 6 + 6 = 24, so 4 × 6 = 24. Turn the array sideways: 6 rows of 4 — still 24 dots.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.MUL.01",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplication as equal groups and arrays",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 0,
      "id": "NUM.MUL.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Multiplication as equal groups and arrays: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Multiplication as equal groups and arrays into personal, civic/data, and career contexts.",
      "content": "Personal — An egg carton at home: 2 rows of 6 — how many eggs when full? · Civic/Data — Assembly setup: 5 rows of 8 chairs — will all 40 second-graders fit? · Career — A baker slides in a tray of buns set 3 rows of 7 — 21 per tray for the order sheet.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.MUL.01",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplication as equal groups and arrays",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 0,
      "id": "NUM.MUL.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Multiplication as equal groups and arrays: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Multiplication as equal groups and arrays.",
      "content": "Accuracy — 8 items: write and solve group/array situations as ×, draw an array for a fact; ≥7/8 · Explanation — Why does turning the array prove 4 × 6 = 6 × 4 without recounting? · Transfer — A chocolate bar is molded 4 squares by 5 — squares in the whole bar?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.MUL.02",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Times tables 2, 5, 10",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 1,
      "id": "NUM.MUL.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Times tables 2, 5, 10: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Times tables 2, 5, 10.",
      "content": "The 2s, 5s, and 10s tables are skip counting wearing multiplication clothes, and their answer patterns (evens; ends in 0 or 5; ends in 0) make them self-checking.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.MUL.02",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Times tables 2, 5, 10",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 1,
      "id": "NUM.MUL.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Times tables 2, 5, 10: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Times tables 2, 5, 10.",
      "content": "7 × 5: skip count 5, 10, 15, 20, 25, 30, 35 — seven jumps → 35. And 6 × 10 = 60: six tens.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.MUL.02",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Times tables 2, 5, 10",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 1,
      "id": "NUM.MUL.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Times tables 2, 5, 10: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Times tables 2, 5, 10 into personal, civic/data, and career contexts.",
      "content": "Personal — 9 pairs of shoes by the front door — 9 × 2 = 18 shoes to line up. · Civic/Data — Class tally: 8 raised hands of 5 fingers each — 40 for the \"high-five count\" graph. · Career — A shopkeeper bags oranges in 5s: 6 bags ready means 30 oranges sold.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.MUL.02",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Times tables 2, 5, 10",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 1,
      "id": "NUM.MUL.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Times tables 2, 5, 10: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Times tables 2, 5, 10.",
      "content": "Accuracy — 8 items: mixed 2s/5s/10s facts under light time pressure, 2 missing-factor forms (5 × __ = 45); ≥7/8 · Explanation — Why does every ×5 answer end in 0 or 5? Use the skip-counting pattern to argue it. · Transfer — How many wheels on the 8 bicycles parked at the rack?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.MUL.03",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Times tables to 10×10",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 2,
      "id": "NUM.MUL.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Times tables to 10×10: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Times tables to 10×10.",
      "content": "All 100 facts hang on structure, not luck: new facts come from known ones (7 × 8 = 5 × 8 + 2 × 8), so fluency is derived before it is memorized.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.MUL.03",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Times tables to 10×10",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 2,
      "id": "NUM.MUL.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Times tables to 10×10: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Times tables to 10×10.",
      "content": "7 × 8: split 7 into 5 + 2 → 5 × 8 = 40 and 2 × 8 = 16 → 40 + 16 = 56.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.MUL.03",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Times tables to 10×10",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 2,
      "id": "NUM.MUL.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Times tables to 10×10: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Times tables to 10×10 into personal, civic/data, and career contexts.",
      "content": "Personal — Allowance plan: $9 a week for 6 weeks of saving — $54 toward the skateboard. · Civic/Data — Gym setup: 8 rows of 9 chairs — does it seat all 72 invited grandparents? · Career — A grocer stacks 7 boxes of 9 jam jars — 63 jars on the shelf display.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.MUL.03",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Times tables to 10×10",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 2,
      "id": "NUM.MUL.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Times tables to 10×10: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Times tables to 10×10.",
      "content": "Accuracy — 8 items: facts to 10×10 with the hard core (6s–9s) overrepresented, 2 review 2s/5s/10s; ≥7/8 · Explanation — Kim computes 7 × 8 as 7 × 7 + 8 = 57 — find the flaw (what should be added to 49, and why?). · Transfer — 7 weeks until the tournament — how many days is that?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.MUL.04",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Division as sharing and grouping",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 0,
      "id": "NUM.MUL.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Division as sharing and grouping: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Division as sharing and grouping.",
      "content": "Division asks two different questions: share 12 among 3 (how many each?) or bag 12 in 3s (how many bags?). Different actions, same fact: 12 ÷ 3 = 4.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.MUL.04",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Division as sharing and grouping",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 0,
      "id": "NUM.MUL.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Division as sharing and grouping: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Division as sharing and grouping.",
      "content": "12 cookies, 3 plates → deal them out: 4 each (sharing). 12 cookies, bags of 3 → count bags: 4 bags (grouping). Both are 12 ÷ 3 = 4.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.MUL.04",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Division as sharing and grouping",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 0,
      "id": "NUM.MUL.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Division as sharing and grouping: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Division as sharing and grouping into personal, civic/data, and career contexts.",
      "content": "Personal — Split 24 grapes fairly among 4 cousins — 6 each. · Civic/Data — 30 returned library books in stacks of 5 — 6 stacks for the volunteers to shelve. · Career — A florist turns 28 roses into bunches of 7 — 4 bunches for the window.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.MUL.04",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Division as sharing and grouping",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 0,
      "id": "NUM.MUL.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Division as sharing and grouping: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Division as sharing and grouping.",
      "content": "Accuracy — 8 items: sharing and grouping stories within the tables, learner labels which type; ≥7/8 · Explanation — Why do sharing 12 among 3 and bagging 12 in 3s land on the same number even though the actions differ? · Transfer — Deal a 20-card deck evenly to 4 players — cards per hand?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.MUL.05",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplication–division fact families",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 3,
      "id": "NUM.MUL.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Multiplication–division fact families: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Multiplication–division fact families.",
      "content": "Multiplication and division undo each other, so one triple like 6, 7, 42 yields four facts — and every division can be solved by asking a multiplication question.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.MUL.05",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplication–division fact families",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 3,
      "id": "NUM.MUL.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Multiplication–division fact families: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Multiplication–division fact families.",
      "content": "Family of 6, 7, 42: 6 × 7 = 42, 7 × 6 = 42, 42 ÷ 6 = 7, 42 ÷ 7 = 6. For 42 ÷ 7 think \"7 × what = 42?\" — 6.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.MUL.05",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplication–division fact families",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 3,
      "id": "NUM.MUL.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Multiplication–division fact families: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Multiplication–division fact families into personal, civic/data, and career contexts.",
      "content": "Personal — You know 5 × 9 = 45, so 45 cards dealt into piles of 9 must make 5 piles — no counting. · Civic/Data — 36 juice boxes arrive 4 to a pack: the order form's 9 packs checks out because 9 × 4 = 36. · Career — A cashier confirms 8 packs of 6 water bottles = 48, so a 48-bottle return is exactly 8 packs.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.MUL.05",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplication–division fact families",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 3,
      "id": "NUM.MUL.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Multiplication–division fact families: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Multiplication–division fact families.",
      "content": "Accuracy — 8 items: complete fact families, solve divisions via the linked multiplication; ≥7/8 · Explanation — Why does 6 × 7 = 42 *guarantee* 42 ÷ 7 = 6? What would break if it didn't? · Transfer — Camp lasts 63 days — how many weeks, using the 7s family?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.MUL.06",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplying by 10, 100, 1000",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 0,
      "id": "NUM.MUL.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Multiplying by 10, 100, 1000: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Multiplying by 10, 100, 1000.",
      "content": "Multiplying by 10, 100, or 1000 shifts digits one, two, or three places left — the place-value pattern, not a magic trailing zero.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.MUL.06",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplying by 10, 100, 1000",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 0,
      "id": "NUM.MUL.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Multiplying by 10, 100, 1000: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Multiplying by 10, 100, 1000.",
      "content": "36 × 100: digits shift two places → 3,600. And 45 × 1,000 = 45,000 — three shifts, zeros fill the empty places.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.MUL.06",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplying by 10, 100, 1000",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 0,
      "id": "NUM.MUL.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Multiplying by 10, 100, 1000: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Multiplying by 10, 100, 1000 into personal, civic/data, and career contexts.",
      "content": "Personal — 25 sticker sheets with 10 stickers each — 250 in the album. · Civic/Data — The parade committee orders 18 boxes of 100 flags — 1,800 to hand out. · Career — A copy shop runs 32 batches of 1,000 flyers — 32,000 for the festival.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.MUL.06",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplying by 10, 100, 1000",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 0,
      "id": "NUM.MUL.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Multiplying by 10, 100, 1000: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Multiplying by 10, 100, 1000.",
      "content": "Accuracy — 8 items: × 10/100/1000 including missing-factor forms (__ × 100 = 4,700); ≥7/8 · Explanation — Ben says 36 × 100 = 360 — explain the two-place shift he skipped and why one zero isn't enough. · Transfer — A 7 km trail in meters: 7 × 1,000 — how many meters on the sign?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.MUL.07",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multi-digit × 1-digit (distributive thinking)",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 1,
      "id": "NUM.MUL.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Multi-digit × 1-digit (distributive thinking): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Multi-digit × 1-digit (distributive thinking).",
      "content": "Big factors split by place value: 247 × 3 is (200 + 40 + 7) × 3 — multiply each part, add the pieces. The distributive property is the engine of every written method.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.MUL.07",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multi-digit × 1-digit (distributive thinking)",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 1,
      "id": "NUM.MUL.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Multi-digit × 1-digit (distributive thinking): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Multi-digit × 1-digit (distributive thinking).",
      "content": "247 × 3 = 200 × 3 + 40 × 3 + 7 × 3 = 600 + 120 + 21 = 741.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.MUL.07",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multi-digit × 1-digit (distributive thinking)",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 1,
      "id": "NUM.MUL.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Multi-digit × 1-digit (distributive thinking): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Multi-digit × 1-digit (distributive thinking) into personal, civic/data, and career contexts.",
      "content": "Personal — A 4-book series at 128 pages each — 512 pages of summer reading. · Civic/Data — Field trip: 3 buses × 56 seats = 168 seats, enough for 160 students plus adults? · Career — A carpenter orders 6 boards of 245 cm — 1,470 cm of trim for the job.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.MUL.07",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multi-digit × 1-digit (distributive thinking)",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 1,
      "id": "NUM.MUL.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Multi-digit × 1-digit (distributive thinking): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Multi-digit × 1-digit (distributive thinking).",
      "content": "Accuracy — 8 items: 2–3 digit × 1-digit by partial products or area model, 2 review facts; ≥7/8 · Explanation — Why are you allowed to split 247 into 200 + 40 + 7 and multiply each piece by 3? What property is that? · Transfer — 3 years of daily vitamins: 3 × 365 — how many tablets?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.MUL.08",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multi-digit × multi-digit",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 2,
      "id": "NUM.MUL.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Multi-digit × multi-digit: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Multi-digit × multi-digit.",
      "content": "Both factors split by place value, every part multiplies every part (34 × 26 has four partial products), and the area model keeps all the pieces visible.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.MUL.08",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multi-digit × multi-digit",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 2,
      "id": "NUM.MUL.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Multi-digit × multi-digit: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Multi-digit × multi-digit.",
      "content": "34 × 26 = 34 × 20 + 34 × 6 = 680 + 204 = 884.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.MUL.08",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multi-digit × multi-digit",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 2,
      "id": "NUM.MUL.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Multi-digit × multi-digit: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Multi-digit × multi-digit into personal, civic/data, and career contexts.",
      "content": "Personal — 12 booster packs of 24 cards — 288 cards, but your binder holds 250: overflow? · Civic/Data — Fire-drill count: 26 classrooms × 32 students = 832 to account for. · Career — An orchard manager logs 38 rows × 27 trees = 1,026 trees for the spray plan.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.MUL.08",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multi-digit × multi-digit",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 2,
      "id": "NUM.MUL.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Multi-digit × multi-digit: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Multi-digit × multi-digit.",
      "content": "Accuracy — 8 items: 2-digit × 2-digit, one 3-digit × 2-digit, area model required once; ≥7/8 · Explanation — A solution does 34 × 26 = 34 × 2 + 34 × 6 = 68 + 204 = 272 — find the place-value flaw in the first partial product. · Transfer — Stadium block: 42 rows × 28 seats — capacity?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.MUL.09",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Long division with remainders",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 0,
      "id": "NUM.MUL.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Long division with remainders: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Long division with remainders.",
      "content": "Long division strips out easy multiples of the divisor in chunks until less than the divisor remains; the leftover is the remainder, and multiply-back checks the work.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.MUL.09",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Long division with remainders",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 0,
      "id": "NUM.MUL.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Long division with remainders: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Long division with remainders.",
      "content": "87 ÷ 4: take 4 × 20 = 80, leaving 7; take 4 × 1 = 4, leaving 3 → 21 r3. Check: 4 × 21 + 3 = 87. ✓",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.MUL.09",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Long division with remainders",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 0,
      "id": "NUM.MUL.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Long division with remainders: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Long division with remainders into personal, civic/data, and career contexts.",
      "content": "Personal — String 75 beads onto 6 bracelets — 12 each with 3 beads spare. · Civic/Data — 250 folding chairs in rows of 9 — 27 full rows and 7 chairs over. · Career — A bookstore packs 94 books into 4 equal cartons — 23 each, 2 set aside.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.MUL.09",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Long division with remainders",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 0,
      "id": "NUM.MUL.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Long division with remainders: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Long division with remainders.",
      "content": "Accuracy — 8 items: 2–3 digit ÷ 1-digit with and without remainders, multiply-back check shown twice; ≥7/8 · Explanation — Why must a remainder always be smaller than the divisor? What should you do if it isn't? · Transfer — Share 100 raffle tickets among 7 jars — how many per jar, how many left?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.MUL.10",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Interpreting remainders in context",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 1,
      "id": "NUM.MUL.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Interpreting remainders in context: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Interpreting remainders in context.",
      "content": "The same division wears three answers — round up, drop the remainder, or split it — and the story, not the arithmetic, decides which one is right.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.MUL.10",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Interpreting remainders in context",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 1,
      "id": "NUM.MUL.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Interpreting remainders in context: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Interpreting remainders in context.",
      "content": "50 ÷ 4 = 12 r2. Seating 50 people at 4-seat tables → 13 tables (round up); cutting 4 cm pieces from 50 cm → 12 pieces (drop it); splitting $50 four ways → $12.50 (share the remainder).",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.MUL.10",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Interpreting remainders in context",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 1,
      "id": "NUM.MUL.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Interpreting remainders in context: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Interpreting remainders in context into personal, civic/data, and career contexts.",
      "content": "Personal — 43 photos, 6 per album page — 7 full pages and an 8th for the last photo. · Civic/Data — 130 students, buses seat 48 — 130 ÷ 48 = 2 r34, so the district must book 3 buses. · Career — An electrician cuts 8 m runs from a 75 m wire reel — 9 runs, 3 m scrap for the bin.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.MUL.10",
      "clusterId": "NUM.MUL",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Interpreting remainders in context",
      "clusterTitle": "Multiplication & Division (NUM.MUL)",
      "band": "2–5",
      "hardLevel": 1,
      "id": "NUM.MUL.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Interpreting remainders in context: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Interpreting remainders in context.",
      "content": "Accuracy — 8 items: matched divisions where only the interpretation differs, learner states the choice; ≥7/8 · Explanation — \"130 ÷ 48 = 2 r34, so 2 buses\" — explain why the context forces rounding up and what happens to the 34. · Transfer — 58 eggs into cartons of 12: how many cartons must you carry to bring every egg?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.PCT.01",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Percent as per-hundred",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 6,
      "id": "NUM.PCT.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Percent as per-hundred: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Percent as per-hundred.",
      "content": "A percent is a ratio with 100 as the agreed base: 43% means 43 out of every 100, no matter how big the whole actually is.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.PCT.01",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Percent as per-hundred",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 6,
      "id": "NUM.PCT.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Percent as per-hundred: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Percent as per-hundred.",
      "content": "17 of 100 grid squares shaded is 17%. A grid with 3 of 10 columns shaded is 30/100 = 30% — rescale the ratio to a base of 100 first.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.PCT.01",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Percent as per-hundred",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 6,
      "id": "NUM.PCT.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Percent as per-hundred: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Percent as per-hundred into personal, civic/data, and career contexts.",
      "content": "Personal — your phone shows 43% battery; explain it as 43 per 100 of a full charge. · Civic/Data — \"62% turnout\" in an election story: say what is being counted per hundred of what. · Career — a quality-control sheet logs 4 defective units per 100 produced and reports a 4% defect rate.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.PCT.01",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Percent as per-hundred",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 6,
      "id": "NUM.PCT.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Percent as per-hundred: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Percent as per-hundred.",
      "content": "Accuracy — 8 items reading/writing percents from grids and per-100 statements (2 ratio review) ≥7/8 · Explanation — why can a school of 400 and a school of 1,200 both report \"25% bike to school\" yet mean different counts? · Transfer — interpret a stadium's \"92% capacity\" sign for a 15,000-seat venue.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.PCT.02",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fraction–decimal–percent conversions",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 7,
      "id": "NUM.PCT.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Fraction–decimal–percent conversions: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Fraction–decimal–percent conversions.",
      "content": "Fractions, decimals, and percents are three costumes for one number; moving between them is rescaling to or from a base of 100.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.PCT.02",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fraction–decimal–percent conversions",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 7,
      "id": "NUM.PCT.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Fraction–decimal–percent conversions: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Fraction–decimal–percent conversions.",
      "content": "3/8 = 3 ÷ 8 = 0.375 = 37.5%. Backwards: 140% = 140/100 = 1.4 = 7/5. Watch the two-place shift: 0.04 = 4%, not 40%.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.PCT.02",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fraction–decimal–percent conversions",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 7,
      "id": "NUM.PCT.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Fraction–decimal–percent conversions: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Fraction–decimal–percent conversions into personal, civic/data, and career contexts.",
      "content": "Personal — decide which is the bigger discount: a 2/5-off coupon or a 35%-off code (40% beats 35%). · Civic/Data — a report says \"0.08 of households lack internet\"; rewrite as 8% for a community flyer and check nothing changed. · Career — a sports analyst converts 19/25 made free throws to 76% for the broadcast graphic.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.PCT.02",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Fraction–decimal–percent conversions",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 7,
      "id": "NUM.PCT.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Fraction–decimal–percent conversions: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Fraction–decimal–percent conversions.",
      "content": "Accuracy — 8 conversions covering all six directions (2 review) ≥7/8 · Explanation — spot the flaw: \"0.5 = 5% because you just drop the point\" · Transfer — rank 0.72, 7/10, and 71% from a savings-app summary.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.PCT.03",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Percent of a quantity",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 8,
      "id": "NUM.PCT.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Percent of a quantity: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Percent of a quantity.",
      "content": "\"P% of Q\" is multiplication: convert the percent to a decimal (or stack 10%-and-5% chunks mentally) and take that fraction of the base.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.PCT.03",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Percent of a quantity",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 8,
      "id": "NUM.PCT.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Percent of a quantity: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Percent of a quantity.",
      "content": "35% of $80 = 0.35 × 80 = $28. Mental route: 10% is 8, so 30% is 24; 5% is 4; 24 + 4 = 28.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.PCT.03",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Percent of a quantity",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 8,
      "id": "NUM.PCT.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Percent of a quantity: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Percent of a quantity into personal, civic/data, and career contexts.",
      "content": "Personal — work out a 15% tip on a $42 dinner ($6.30). · Civic/Data — 28% of a district's 4,500 students ride the bus; find how many seats that demand implies (1,260). · Career — a salesperson earns 12% commission on $350 of sales; compute the payout ($42).",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.PCT.03",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Percent of a quantity",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 8,
      "id": "NUM.PCT.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Percent of a quantity: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Percent of a quantity.",
      "content": "Accuracy — 8 items mixing calculator and mental-chunk routes (2 conversion review) ≥7/8 · Explanation — why does \"10% then triple it\" legitimately compute 30%? What property is at work? · Transfer — find the protein in a 65 g bar that is 20% protein.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.PCT.04",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Percent increase and decrease",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 9,
      "id": "NUM.PCT.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Percent increase and decrease: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Percent increase and decrease.",
      "content": "Percent change is always a percent of the starting value; once the value changes, the same percentage names a different amount — so +25% then −25% does not return to start. Multiplier form (×1.25, ×0.75) is the method that scales.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.PCT.04",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Percent increase and decrease",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 9,
      "id": "NUM.PCT.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Percent increase and decrease: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Percent increase and decrease.",
      "content": "$80 raised 25%: 0.25 × 80 = 20, new price $100 (shortcut 80 × 1.25). Then $100 cut 25%: 100 × 0.75 = $75 — not $80, because the 25% now acts on $100; up-then-down lands below start.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.PCT.04",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Percent increase and decrease",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 9,
      "id": "NUM.PCT.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Percent increase and decrease: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Percent increase and decrease into personal, civic/data, and career contexts.",
      "content": "Personal — Sneaker Flip: bought at $120, selling at $150 — show the gain is 25%, and find the friend's \"30% profit\" error (30/150 instead of 30/120: wrong base). · Civic/Data — Headline Test: \"Unemployment up 20%!\" vs \"up 1 point, 5% to 6%\" — verify both via 1/5 = 20% and argue which framing to trust. · Career — Margin Meeting: beans rise 15% from $4.00/lb; at 20 cups/lb and $4.50 per cup, recompute bean cost per cup, the margin hit, and the price rise that restores margin.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.PCT.04",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Percent increase and decrease",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 9,
      "id": "NUM.PCT.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Percent increase and decrease: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Percent increase and decrease.",
      "content": "Accuracy — 8 mixed items (4 fresh, 2 prerequisite review, 2 estimation) ≥7/8 · Explanation — spot the flaw: a worked solution computes 25% of the *new* value; identify and correct the wrong-base error · Transfer — novel context unused in instruction (e.g., battery degradation percent), correct with method shown.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.PCT.05",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Finding the percent (part ÷ base)",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 10,
      "id": "NUM.PCT.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Finding the percent (part ÷ base): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Finding the percent (part ÷ base).",
      "content": "To name a part as a percent, divide the part by the base and rescale to 100 — choosing the correct base is the whole game.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.PCT.05",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Finding the percent (part ÷ base)",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 10,
      "id": "NUM.PCT.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Finding the percent (part ÷ base): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Finding the percent (part ÷ base).",
      "content": "You scored 34 out of 40: 34 ÷ 40 = 0.85 = 85%. A bill that went from $1,400 to $1,512 changed by 112, and 112 ÷ 1,400 = 0.08 = 8% increase.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.PCT.05",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Finding the percent (part ÷ base)",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 10,
      "id": "NUM.PCT.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Finding the percent (part ÷ base): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Finding the percent (part ÷ base) into personal, civic/data, and career contexts.",
      "content": "Personal — what percent of your $60 monthly allowance went to a $24 concert ticket (40%)? · Civic/Data — 1,840 of 2,300 survey respondents support the later school start; report the percent (80%). · Career — a courier logs 54 of 60 deliveries on time and reports the on-time rate (90%).",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.PCT.05",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Finding the percent (part ÷ base)",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 10,
      "id": "NUM.PCT.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Finding the percent (part ÷ base): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Finding the percent (part ÷ base).",
      "content": "Accuracy — 8 part-÷-base items incl. percent-change forms (2 review) ≥7/8 · Explanation — spot the flaw: computing the rent increase as 112 ÷ 1,512 — why is the new value the wrong base? · Transfer — find what percent of a 480-page novel you've read at page 156 (32.5%).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.PCT.06",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Reverse percentages (finding the original)",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 11,
      "id": "NUM.PCT.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Reverse percentages (finding the original): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Reverse percentages (finding the original).",
      "content": "When a price already includes a percent change, divide by the multiplier to recover the original; you cannot \"take the percent off\" the changed value.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.PCT.06",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Reverse percentages (finding the original)",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 11,
      "id": "NUM.PCT.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Reverse percentages (finding the original): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Reverse percentages (finding the original).",
      "content": "A jacket costs $51 after 15% off, so 0.85 × original = 51 and original = 51 ÷ 0.85 = $60. Adding 15% back to $51 gives $58.65 — wrong, because that 15% acts on the smaller base.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.PCT.06",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Reverse percentages (finding the original)",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 11,
      "id": "NUM.PCT.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Reverse percentages (finding the original): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Reverse percentages (finding the original) into personal, civic/data, and career contexts.",
      "content": "Personal — jeans cost $36 after a 25%-off sale; find the original price ($48). · Civic/Data — museum attendance hit 138,000 this year, up 15% — recover last year's figure (120,000) to check the press release. · Career — a bookkeeper sees a $32.40 receipt that includes 8% sales tax and backs out the pre-tax amount ($30.00).",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.PCT.06",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Reverse percentages (finding the original)",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 11,
      "id": "NUM.PCT.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Reverse percentages (finding the original): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Reverse percentages (finding the original).",
      "content": "Accuracy — 8 reverse items, increases and decreases (2 review) ≥7/8 · Explanation — explain to a classmate *why* adding 15% to the sale price fails, using the two different bases · Transfer — a plant is 66 cm tall after growing 10% this month; find last month's height (60 cm).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.PCT.07",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Percents over 100% and under 1%",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 12,
      "id": "NUM.PCT.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Percents over 100% and under 1%: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Percents over 100% and under 1%.",
      "content": "Percents are not capped at 100 or floored at 1: 250% is the multiplier 2.5, and 0.5% is the multiplier 0.005 — read the scale, not the digits.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.PCT.07",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Percents over 100% and under 1%",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 12,
      "id": "NUM.PCT.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Percents over 100% and under 1%: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Percents over 100% and under 1%.",
      "content": "250% of 36 = 2.5 × 36 = 90. 0.5% of 4,000 = 0.005 × 4,000 = 20 — not 200, which would be 5%.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.PCT.07",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Percents over 100% and under 1%",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 12,
      "id": "NUM.PCT.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Percents over 100% and under 1%: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Percents over 100% and under 1% into personal, civic/data, and career contexts.",
      "content": "Personal — your video's views today are 300% of yesterday's 1,200; find today's count (3,600). · Civic/Data — 0.4% of a city's 250,000 residents attended the budget hearing; compute the turnout (1,000) and judge the \"nobody came\" claim. · Career — a lab tech prepares 0.9% saline: grams of salt in 500 g of solution (4.5 g).",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.PCT.07",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Percents over 100% and under 1%",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 12,
      "id": "NUM.PCT.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Percents over 100% and under 1%: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Percents over 100% and under 1%.",
      "content": "Accuracy — 8 items straddling 100% and 1% (2 review) ≥7/8 · Explanation — spot the flaw: \"0.5% of 4,000 is 200\" — what was misread? · Transfer — interpret a stock listed at 0.25% daily gain vs one at 140% of its January price.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.PCT.08",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Simple interest and tax",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 13,
      "id": "NUM.PCT.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Simple interest and tax: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Simple interest and tax.",
      "content": "Interest and tax are percent-of-base applied to money: simple interest charges the same percent of the principal each period (I = P × r × t), and tax adds a fixed percent at purchase.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.PCT.08",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Simple interest and tax",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 13,
      "id": "NUM.PCT.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Simple interest and tax: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Simple interest and tax.",
      "content": "$400 saved at 5% simple interest for 3 years: I = 400 × 0.05 × 3 = $60, ending balance $460. Sales tax: a $25 item at 8% costs 25 × 1.08 = $27.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.PCT.08",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Simple interest and tax",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 13,
      "id": "NUM.PCT.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Simple interest and tax: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Simple interest and tax into personal, civic/data, and career contexts.",
      "content": "Personal — total cost of a $250 phone with 6% sales tax ($265). · Civic/Data — compare buying a $1,200 laptop in a 4% vs a 7% sales-tax state ($48 vs $84 tax) and weigh the claim \"the difference doesn't matter.\" · Career — a bank teller explains a $2,000 certificate at 3% simple interest for 2 years ($120 earned).",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.PCT.08",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Simple interest and tax",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 13,
      "id": "NUM.PCT.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Simple interest and tax: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Simple interest and tax.",
      "content": "Accuracy — 8 items splitting interest vs tax setups (2 review, 1 estimation) ≥7/8 · Explanation — why does simple interest grow by the *same* dollar amount each year? What stays fixed? · Transfer — compute the payoff on a $300 loan at 9% simple interest for 8 months (t = 2/3 year; $318).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.PCT.09",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Percentage points vs percent change",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 14,
      "id": "NUM.PCT.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Percentage points vs percent change: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Percentage points vs percent change.",
      "content": "Subtracting two percents gives percentage points; percent change divides by the starting percent — a drop from 40% to 30% is 10 points but a 25% relative fall, and headlines blur the two.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.PCT.09",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Percentage points vs percent change",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 14,
      "id": "NUM.PCT.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Percentage points vs percent change: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Percentage points vs percent change.",
      "content": "Approval falls from 40% to 30%. Point change: 40 − 30 = 10 percentage points. Percent change: 10 ÷ 40 = 25% relative drop. Both describe the same fall.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.PCT.09",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Percentage points vs percent change",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 14,
      "id": "NUM.PCT.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Percentage points vs percent change: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Percentage points vs percent change into personal, civic/data, and career contexts.",
      "content": "Personal — your free-throw rate rose from 50% to 60%; defend both \"+10 points\" and \"+20%\" to a teammate. · Civic/Data — turnout rose from 48% to 54%; check a story calling it \"a 12.5% jump\" (6 ÷ 48 = 12.5% — points vs percent). · Career — an A/B test lifts click rate from 2% to 3%; decide whether the report should lead with \"+1 point\" or \"+50%.\"",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.PCT.09",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Percentage points vs percent change",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 14,
      "id": "NUM.PCT.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Percentage points vs percent change: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Percentage points vs percent change.",
      "content": "Accuracy — 8 items computing both measures from the same data (2 review) ≥7/8 · Explanation — a headline says \"support fell 10%\" after a 40% → 30% poll move; explain the ambiguity and which reading the data supports · Transfer — interpret an interest-rate move from 5.0% to 5.5% both ways.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.PCT.10",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Compound change (intro)",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 15,
      "id": "NUM.PCT.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Compound change (intro): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Compound change (intro).",
      "content": "Repeated percent change multiplies — each step's percent acts on the new value, so two +10% steps give ×1.1 × 1.1 = ×1.21, not +20%.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.PCT.10",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Compound change (intro)",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 15,
      "id": "NUM.PCT.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Compound change (intro): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Compound change (intro).",
      "content": "$200 grows 10% then 10% again: 200 × 1.1 = 220, then 220 × 1.1 = 242 — $2 more than the $240 a flat +20% would give, because the second 10% acts on 220.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.PCT.10",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Compound change (intro)",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 15,
      "id": "NUM.PCT.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Compound change (intro): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Compound change (intro) into personal, civic/data, and career contexts.",
      "content": "Personal — $50 in savings gaining 5% each year for 2 years (50 × 1.05² = $55.13). · Civic/Data — a city growing 3% per year for a decade — test the claim \"that's 30% total\" (1.03¹⁰ ≈ 1.34, about 34%). · Career — an analyst projects subscriptions at 8% growth per quarter and explains to the team why the curve bends upward.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.PCT.10",
      "clusterId": "NUM.PCT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Compound change (intro)",
      "clusterTitle": "Percentages (NUM.PCT)",
      "band": "6–8",
      "hardLevel": 15,
      "id": "NUM.PCT.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Compound change (intro): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Compound change (intro).",
      "content": "Accuracy — 8 two- and three-step compound items, growth and decay (2 review, 1 estimation) ≥7/8 · Explanation — why isn't +10% twice the same as +20%? Identify the changing base in the chain · Transfer — a forest loses 4% of its area each year for 3 years; show why the loss is under 12% (0.96³ ≈ 0.885).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.PLV.01",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Tens and ones — bundling",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 3,
      "id": "NUM.PLV.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Tens and ones — bundling: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Tens and ones — bundling.",
      "content": "Ten ones can be bundled into one ten, so a two-digit number is really \"some tens and some ones\" — position carries meaning.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.PLV.01",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Tens and ones — bundling",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 3,
      "id": "NUM.PLV.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Tens and ones — bundling: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Tens and ones — bundling.",
      "content": "34 craft sticks: rubber-band them into bundles of ten — 3 full bundles and 4 loose sticks. 34 = 3 tens + 4 ones = 30 + 4.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.PLV.01",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Tens and ones — bundling",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 3,
      "id": "NUM.PLV.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Tens and ones — bundling: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Tens and ones — bundling into personal, civic/data, and career contexts.",
      "content": "Personal — Bundle 36 craft sticks into tens to see your collection as 3 tens and 6. · Civic/Data — The class collected 52 bottle caps; bundle them into tens to report the count fast. · Career — A cashier wraps loose pennies into rolls of ten before counting the drawer.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.PLV.01",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Tens and ones — bundling",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 3,
      "id": "NUM.PLV.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Tens and ones — bundling: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Tens and ones — bundling.",
      "content": "Accuracy — 8 items: bundle counts ↔ numbers, \"how many tens in 70,\" numbers like 40 with 0 ones; ≥7/8 · Explanation — Kai says 34 has 3 ones and 4 tens — use bundles to find the flaw. · Transfer — Bag 28 beads into tens-bags for a craft stall and label the leftovers.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.PLV.02",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Reading and writing 2-digit numbers",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 4,
      "id": "NUM.PLV.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Reading and writing 2-digit numbers: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Reading and writing 2-digit numbers.",
      "content": "Two-digit numerals are read and written by place: \"sixty-seven\" means 6 tens and 7 ones, written 67 — not 607, because position, not extra zeros, shows the tens.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.PLV.02",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Reading and writing 2-digit numbers",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 4,
      "id": "NUM.PLV.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Reading and writing 2-digit numbers: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Reading and writing 2-digit numbers.",
      "content": "\"Sixty-seven\" → 6 tens, 7 ones → 67. Reverse: 84 reads \"eighty-four\" — 8 tens, 4 ones. Trap shown and named: writing 607 for sixty-seven.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.PLV.02",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Reading and writing 2-digit numbers",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 4,
      "id": "NUM.PLV.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Reading and writing 2-digit numbers: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Reading and writing 2-digit numbers into personal, civic/data, and career contexts.",
      "content": "Personal — Write 74 on your sticker-album cover after counting seventy-four stickers. · Civic/Data — Send today's lunch count, \"thirty-six,\" to the office written so the cook reads 36, not 306. · Career — A stockroom clerk labels a crate \"eighty-three\" as 83 so the order matches.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.PLV.02",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Reading and writing 2-digit numbers",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 4,
      "id": "NUM.PLV.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Reading and writing 2-digit numbers: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Reading and writing 2-digit numbers.",
      "content": "Accuracy — 8 items: words ↔ numerals both directions, including teens vs ty-numbers (15 vs 50); ≥7/8 · Explanation — Why does \"sixty-seven\" get written 67 and not 607? What does the 6's position already say? · Transfer — Write the jersey numbers called over a loudspeaker — \"forty-two,\" \"twenty-four\" — on the lineup sheet.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.PLV.03",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Comparing 2-digit numbers with < = >",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 5,
      "id": "NUM.PLV.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Comparing 2-digit numbers with < = >: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Comparing 2-digit numbers with < = >.",
      "content": "Compare tens first; only if tens tie do ones decide. The symbols <, =, > record the result with the small end pointing at the smaller number.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.PLV.03",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Comparing 2-digit numbers with < = >",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 5,
      "id": "NUM.PLV.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Comparing 2-digit numbers with < = >: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Comparing 2-digit numbers with < = >.",
      "content": "58 vs 53: tens tie (5 = 5), so compare ones: 8 > 3, therefore 58 > 53. And 47 vs 51: 4 tens < 5 tens, so 47 < 51 no matter the ones.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.PLV.03",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Comparing 2-digit numbers with < = >",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 5,
      "id": "NUM.PLV.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Comparing 2-digit numbers with < = >: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Comparing 2-digit numbers with < = > into personal, civic/data, and career contexts.",
      "content": "Personal — Who collected more shells this summer, your 47 or your cousin's 51? · Civic/Data — Book-drive chart: Room A has 68 books, Room B has 63 — write the comparison for the hallway poster. · Career — A gardener compares 35 tulip bulbs to 38 daffodil bulbs to see which bed needs the bigger trench.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.PLV.03",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Comparing 2-digit numbers with < = >",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 5,
      "id": "NUM.PLV.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Comparing 2-digit numbers with < = >: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Comparing 2-digit numbers with < = >.",
      "content": "Accuracy — 8 items: insert < = > between pairs, pick the largest of three, true/false statements; ≥7/8 · Explanation — Jo claims 47 > 51 because 7 > 1 — what did Jo compare in the wrong order, and why must tens go first? · Transfer — Two house numbers, 76 and 67, are on opposite corners — which is the higher address?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.PLV.04",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Hundreds — 3-digit place value",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 0,
      "id": "NUM.PLV.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Hundreds — 3-digit place value: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Hundreds — 3-digit place value.",
      "content": "Ten tens bundle into one hundred, extending the system: a 3-digit number is hundreds, tens, and ones, each digit worth ten times its right-hand neighbor.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.PLV.04",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Hundreds — 3-digit place value",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 0,
      "id": "NUM.PLV.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Hundreds — 3-digit place value: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Hundreds — 3-digit place value.",
      "content": "247 = 2 hundreds + 4 tens + 7 ones. Build it: 2 flats, 4 rods, 7 cubes — and 10 rods would trade up to 1 more flat.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.PLV.04",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Hundreds — 3-digit place value",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 0,
      "id": "NUM.PLV.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Hundreds — 3-digit place value: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Hundreds — 3-digit place value into personal, civic/data, and career contexts.",
      "content": "Personal — Your piggy bank holds 125 pennies: 1 hundred-stack, 2 ten-stacks, 5 loose. · Civic/Data — The school food drive stands at 374 cans — say what each digit counts when you announce it. · Career — A theater usher reads 286 seats as 2 blocks of 100, 8 rows of 10, and 6 singles.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.PLV.04",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Hundreds — 3-digit place value",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 0,
      "id": "NUM.PLV.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Hundreds — 3-digit place value: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Hundreds — 3-digit place value.",
      "content": "Accuracy — 8 items: digits ↔ values, build/read 3-digit numbers, trade 10 tens for a hundred; ≥7/8 · Explanation — Why do ten tens make one hundred? Show the trade with blocks or bundles. · Transfer — Sort 305 paper clips into hundred-boxes and ten-rows: how many of each, and why is the tens box empty?",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.PLV.05",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Expanded form",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 1,
      "id": "NUM.PLV.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Expanded form: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Expanded form.",
      "content": "Writing a number as the sum of its place values (536 = 500 + 30 + 6) makes the hidden addition inside the numeral visible — and zeros contribute nothing to the sum.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.PLV.05",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Expanded form",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 1,
      "id": "NUM.PLV.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Expanded form: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Expanded form.",
      "content": "309 = 300 + 0 + 9 = 300 + 9. Reverse: 500 + 30 + 6 = 536. Contrast: 300 + 9 is 309, never 39.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.PLV.05",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Expanded form",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 1,
      "id": "NUM.PLV.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Expanded form: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Expanded form into personal, civic/data, and career contexts.",
      "content": "Personal — See your 350 trading cards as 300 + 50 when deciding which binder pages you need. · Civic/Data — The town sign says Population 408 = 400 + 8 — explain to a younger kid why there's no tens part. · Career — A warehouse packer reads an order for 536 mugs as 5 crates of 100 + 3 boxes of 10 + 6 loose.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.PLV.05",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Expanded form",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 1,
      "id": "NUM.PLV.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Expanded form: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Expanded form.",
      "content": "Accuracy — 8 items: expand and compress numbers to 1,000, including internal zeros; ≥7/8 · Explanation — Sam writes 309 = 300 + 90 — find the flaw and fix it. · Transfer — A 605-piece puzzle: write the piece count in expanded form for the box label.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.PLV.06",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Rounding to nearest 10 and 100",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 1,
      "id": "NUM.PLV.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Rounding to nearest 10 and 100: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Rounding to nearest 10 and 100.",
      "content": "Rounding replaces a number with the nearest \"friendly\" ten or hundred; the digit one place below the target decides which neighbor is nearer (5 rounds up by convention).",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.PLV.06",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Rounding to nearest 10 and 100",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 1,
      "id": "NUM.PLV.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Rounding to nearest 10 and 100: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Rounding to nearest 10 and 100.",
      "content": "348 to the nearest ten: between 340 and 350, ones digit 8 ≥ 5 → 350. To the nearest hundred: between 300 and 400, tens digit 4 < 5 → 300.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.PLV.06",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Rounding to nearest 10 and 100",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 1,
      "id": "NUM.PLV.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Rounding to nearest 10 and 100: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Rounding to nearest 10 and 100 into personal, civic/data, and career contexts.",
      "content": "Personal — You've saved $76 of pocket money — \"about $80\" when telling your grandma. · Civic/Data — The fair drew 487 visitors; the newsletter reports \"about 500.\" · Career — A baker with 78 bun orders rounds to 80 when setting trays for the morning bake.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.PLV.06",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Rounding to nearest 10 and 100",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 1,
      "id": "NUM.PLV.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Rounding to nearest 10 and 100: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Rounding to nearest 10 and 100.",
      "content": "Accuracy — 8 items: round to ten and to hundred, including 5s and numbers like 297; ≥7/8 · Explanation — Mia rounds 348 to 400 \"because 8 is big\" — explain which digit decides nearest-hundred and why hers doesn't. · Transfer — Round your 84 minutes of weekend screen time to the nearest ten for the family chart.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.PLV.07",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "4-digit and larger numbers",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 2,
      "id": "NUM.PLV.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "4-digit and larger numbers: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of 4-digit and larger numbers.",
      "content": "The place-value pattern repeats: thousands sit left of hundreds, and a zero inside a number (5,082) is a placeholder that keeps every other digit honest.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.PLV.07",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "4-digit and larger numbers",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 2,
      "id": "NUM.PLV.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "4-digit and larger numbers: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for 4-digit and larger numbers.",
      "content": "5,082 = 5,000 + 80 + 2 — the 0 holds the hundreds place. Read: \"five thousand eighty-two.\" Dropping the 0 would collapse it to 582, a different number.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.PLV.07",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "4-digit and larger numbers",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 2,
      "id": "NUM.PLV.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "4-digit and larger numbers: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer 4-digit and larger numbers into personal, civic/data, and career contexts.",
      "content": "Personal — Read the arcade high score 12,580 before trying to beat it. · Civic/Data — The library announces it holds 14,205 books — read the count for morning announcements. · Career — A delivery driver logs the odometer reading 60,308 at the end of a shift.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.PLV.07",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "4-digit and larger numbers",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 2,
      "id": "NUM.PLV.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "4-digit and larger numbers: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond 4-digit and larger numbers.",
      "content": "Accuracy — 8 items: read/write/expand 4–5 digit numbers, all with internal zeros somewhere; ≥7/8 · Explanation — Why does 5,082 need its 0? Say exactly what goes wrong if you write 582 instead. · Transfer — Read the stadium attendance board, 20,316, to a friend over the phone so they can write it correctly.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.PLV.08",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Number lines — locating and estimating position",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 3,
      "id": "NUM.PLV.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Number lines — locating and estimating position: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Number lines — locating and estimating position.",
      "content": "Every number has a position on the number line; equal spacing carries the meaning, so placing and estimating numbers is reading distance, not just labels.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.PLV.08",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Number lines — locating and estimating position",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 3,
      "id": "NUM.PLV.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Number lines — locating and estimating position: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Number lines — locating and estimating position.",
      "content": "On a 700–800 line marked in tens, 730 sits at the third tick after 700. On an unmarked 0–100 line, 62 goes just past the midpoint (50), about an eighth short of 75.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.PLV.08",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Number lines — locating and estimating position",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 3,
      "id": "NUM.PLV.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Number lines — locating and estimating position: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Number lines — locating and estimating position into personal, civic/data, and career contexts.",
      "content": "Personal — Mark 62 pages read on your 0–100 reading-thermometer bookmark. · Civic/Data — The fundraising thermometer shows $730 toward $1,000 — check the mark is past halfway but short of three-quarters. · Career — A carpenter finds 35 cm on a metre stick — the ruler is a number line in disguise.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.PLV.08",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Number lines — locating and estimating position",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 3,
      "id": "NUM.PLV.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Number lines — locating and estimating position: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Number lines — locating and estimating position.",
      "content": "Accuracy — 8 items: place numbers on marked and unmarked lines 0–1,000, name the number at an arrow; ≥7/8 · Explanation — Leo marks 730 right beside 800 — use the tens ticks to show why that position can't be right. · Transfer — Point to where 480 g falls on a kitchen-scale dial that runs 0–1,000 g.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.PLV.09",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Comparing and ordering multi-digit numbers",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 3,
      "id": "NUM.PLV.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Comparing and ordering multi-digit numbers: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Comparing and ordering multi-digit numbers.",
      "content": "More digits means a bigger whole number; with equal digit counts, compare place by place from the left until a digit differs.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.PLV.09",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Comparing and ordering multi-digit numbers",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 3,
      "id": "NUM.PLV.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Comparing and ordering multi-digit numbers: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Comparing and ordering multi-digit numbers.",
      "content": "Order 4,092 / 4,209 / 4,920: thousands all 4; hundreds 0 < 2 < 9, so 4,092 < 4,209 < 4,920.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.PLV.09",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Comparing and ordering multi-digit numbers",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 3,
      "id": "NUM.PLV.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Comparing and ordering multi-digit numbers: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Comparing and ordering multi-digit numbers into personal, civic/data, and career contexts.",
      "content": "Personal — Rank three game scores — 12,450, 12,540, 9,990 — for the family leaderboard. · Civic/Data — Order the populations 1,208, 1,802, and 1,280 for a three-town report. · Career — A swim-meet scorekeeper ranks team point totals to award 1st, 2nd, 3rd.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.PLV.09",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Comparing and ordering multi-digit numbers",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 3,
      "id": "NUM.PLV.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Comparing and ordering multi-digit numbers: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Comparing and ordering multi-digit numbers.",
      "content": "Accuracy — 8 items: order sets of 3–4 multi-digit numbers, insert < >, trap pairs like 9,990 vs 12,005; ≥7/8 · Explanation — Ana says 9,990 > 12,450 because 9 > 1 — find the flaw (what must you check before comparing lead digits?). · Transfer — Put three odometer readings — 45,210 / 45,120 / 45,201 — in the order the photos were taken.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.PLV.10",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Place-value patterns — ×10 shifts",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 0,
      "id": "NUM.PLV.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Place-value patterns — ×10 shifts: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Place-value patterns — ×10 shifts.",
      "content": "Multiplying by 10 shifts every digit one place left (and the pattern repeats for 100, 1,000) — the digits keep their order while their values grow tenfold.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.PLV.10",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Place-value patterns — ×10 shifts",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 0,
      "id": "NUM.PLV.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Place-value patterns — ×10 shifts: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Place-value patterns — ×10 shifts.",
      "content": "6 → 60 → 600 → 6,000: each ×10 moves the 6 one place left. 45 × 10 = 450 — the 4 jumps from tens to hundreds, the 5 from ones to tens, and 0 fills the ones.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.PLV.10",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Place-value patterns — ×10 shifts",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 0,
      "id": "NUM.PLV.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Place-value patterns — ×10 shifts: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Place-value patterns — ×10 shifts into personal, civic/data, and career contexts.",
      "content": "Personal — A savings \"what if\": $3 grown ×10, then ×10 again — 3, 30, 300 — in a game of imagined fortunes. · Civic/Data — Map math: 10 houses per block, 100 per neighborhood of 10 blocks, 1,000 per district of 10 neighborhoods. · Career — A print-shop worker stacks pages: 7 per leaflet, 70 per pack of 10, 700 per box of 10 packs.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.PLV.10",
      "clusterId": "NUM.PLV",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Place-value patterns — ×10 shifts",
      "clusterTitle": "Place Value & Number Sense (NUM.PLV)",
      "band": "1–4",
      "hardLevel": 0,
      "id": "NUM.PLV.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Place-value patterns — ×10 shifts: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Place-value patterns — ×10 shifts.",
      "content": "Accuracy — 8 items: ×10 and ×100 shifts, missing-factor forms (45 × __ = 4,500), describe the shift; ≥7/8 · Explanation — Why does each digit move one place left when you ×10 — and why is \"just add a zero\" a risky way to say it? · Transfer — 10 sheets per booklet, 10 booklets per box: how many sheets in 10 boxes? Trace 10 → 100 → 1,000.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.RAT.01",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Ratio language and notation",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 4,
      "id": "NUM.RAT.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Ratio language and notation: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Ratio language and notation.",
      "content": "A ratio compares quantities multiplicatively (a:b), and the same situation supports part-to-part and part-to-whole ratios — naming which comparison you mean is the skill.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.RAT.01",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Ratio language and notation",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 4,
      "id": "NUM.RAT.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Ratio language and notation: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Ratio language and notation.",
      "content": "A class has 12 girls and 8 boys. Part-to-part: 12:8 = 3:2 (divide both by 4). Part-to-whole: girls to class is 12:20 = 3:5.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.RAT.01",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Ratio language and notation",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 4,
      "id": "NUM.RAT.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Ratio language and notation: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Ratio language and notation into personal, civic/data, and career contexts.",
      "content": "Personal — describe your playlist of 9 pop and 6 hip-hop tracks as 3:2 and as a fraction of the playlist. · Civic/Data — a school of 480 students and 20 teachers advertises its 24:1 ratio; say what each number counts. · Career — a boat-shop tech reads a 3:1 epoxy-to-hardener label and states which quantity is which.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.RAT.01",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Ratio language and notation",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 4,
      "id": "NUM.RAT.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Ratio language and notation: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Ratio language and notation.",
      "content": "Accuracy — 8 items writing/simplifying ratios, both comparison types (2 review) ≥7/8 · Explanation — the team won 10 and lost 5; find the flaw in calling the win rate \"10:5 of all games\" · Transfer — express a 14-adult, 21-child swim session in simplest ratio language.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.RAT.02",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Equivalent ratios and ratio tables",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 5,
      "id": "NUM.RAT.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Equivalent ratios and ratio tables: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Equivalent ratios and ratio tables.",
      "content": "Scaling both parts of a ratio by the same factor keeps the comparison identical; ratio tables organize those scalings so you can reach any size.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.RAT.02",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Equivalent ratios and ratio tables",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 5,
      "id": "NUM.RAT.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Equivalent ratios and ratio tables: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Equivalent ratios and ratio tables.",
      "content": "A smoothie uses 2 bananas to 5 strawberries. For 6 bananas, scale by ×3: 6 bananas to 15 strawberries. Table row check: 2:5 → 4:10 → 6:15.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.RAT.02",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Equivalent ratios and ratio tables",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 5,
      "id": "NUM.RAT.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Equivalent ratios and ratio tables: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Equivalent ratios and ratio tables into personal, civic/data, and career contexts.",
      "content": "Personal — extend a bracelet bead pattern of 4 blue : 6 white to a longer 10 : 15 version and verify it matches. · Civic/Data — student council requires 2 staff : 5 students on committees; check whether a 6 : 15 committee complies. · Career — a baker's table scales 3 eggs per 2 loaves up to 12 loaves (18 eggs).",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.RAT.02",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Equivalent ratios and ratio tables",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 5,
      "id": "NUM.RAT.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Equivalent ratios and ratio tables: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Equivalent ratios and ratio tables.",
      "content": "Accuracy — 8 items filling ratio tables incl. non-integer scale factors (2 review) ≥7/8 · Explanation — why does doubling only the strawberries wreck the recipe? What must scaling preserve? · Transfer — scale a 5 : 4 paint-coverage ratio (liters : walls) to 20 walls.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.RAT.03",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Unit rates",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 6,
      "id": "NUM.RAT.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Unit rates: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Unit rates.",
      "content": "A unit rate rescales a ratio to \"per one,\" turning any comparison into a single number you can rank, price, or extend.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.RAT.03",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Unit rates",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 6,
      "id": "NUM.RAT.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Unit rates: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Unit rates.",
      "content": "A car covers 312 km on 24 L: 312 ÷ 24 = 13 km per liter. Four pens for $5.40: 5.40 ÷ 4 = $1.35 per pen.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.RAT.03",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Unit rates",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 6,
      "id": "NUM.RAT.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Unit rates: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Unit rates into personal, civic/data, and career contexts.",
      "content": "Personal — you type 180 words in 4 minutes; find your words-per-minute (45). · Civic/Data — the library lent 1,560 books across 120 households last month; report books per household (13). · Career — a warehouse packer fills 96 boxes in an 8-hour shift; compute the hourly rate for the productivity board (12/h).",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.RAT.03",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Unit rates",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 6,
      "id": "NUM.RAT.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Unit rates: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Unit rates.",
      "content": "Accuracy — 8 unit-rate computations from both directions of the ratio (2 review) ≥7/8 · Explanation — why divide 312 by 24 rather than 24 by 312, and what would the other quotient mean? · Transfer — find calories per cracker from a 420-calorie, 30-cracker label.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.RAT.04",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Comparing with unit rates (better buy)",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 7,
      "id": "NUM.RAT.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Comparing with unit rates (better buy): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Comparing with unit rates (better buy).",
      "content": "Totals can't be compared when the amounts differ — convert each option to the same \"per one\" basis, then compare the rates.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.RAT.04",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Comparing with unit rates (better buy)",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 7,
      "id": "NUM.RAT.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Comparing with unit rates (better buy): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Comparing with unit rates (better buy).",
      "content": "A 12-pack for $4.44 is 4.44 ÷ 12 = $0.37 per can; an 18-pack for $6.30 is 6.30 ÷ 18 = $0.35 per can. The 18-pack is the better buy despite the bigger price tag.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.RAT.04",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Comparing with unit rates (better buy)",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 7,
      "id": "NUM.RAT.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Comparing with unit rates (better buy): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Comparing with unit rates (better buy) into personal, civic/data, and career contexts.",
      "content": "Personal — compare a game pass at $7.20 per 3 months with $30 per year ($2.40 vs $2.50 per month). · Civic/Data — compare towns recycling 420 tonnes per 30,000 residents vs 600 per 50,000 (14 vs 12 kg per person). · Career — a purchasing clerk picks between 500 sheets for $4.50 and 750 for $6.00 (0.9¢ vs 0.8¢ per sheet).",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.RAT.04",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Comparing with unit rates (better buy)",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 7,
      "id": "NUM.RAT.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Comparing with unit rates (better buy): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Comparing with unit rates (better buy).",
      "content": "Accuracy — 8 better-buy comparisons incl. one where the bigger pack loses (2 review) ≥7/8 · Explanation — spot the flaw: \"the 12-pack is cheaper because $4.44 < $6.30\" · Transfer — choose between two phone-data top-ups: 3 GB/$18 vs 5 GB/$28.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.RAT.05",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Proportions — solving for the unknown",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 8,
      "id": "NUM.RAT.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Proportions — solving for the unknown: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Proportions — solving for the unknown.",
      "content": "A proportion asserts two ratios are the same; the unknown is found by scaling one ratio onto the other (cross-multiplication is shorthand for that scaling).",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.RAT.05",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Proportions — solving for the unknown",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 8,
      "id": "NUM.RAT.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Proportions — solving for the unknown: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Proportions — solving for the unknown.",
      "content": "5 kg of apples cost $12; what do 8 kg cost? Set 12/5 = x/8, so x = 12 × 8 ÷ 5 = $19.20.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.RAT.05",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Proportions — solving for the unknown",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 8,
      "id": "NUM.RAT.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Proportions — solving for the unknown: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Proportions — solving for the unknown into personal, civic/data, and career contexts.",
      "content": "Personal — 250 photos used 2 GB; check whether 900 photos fit in 8 GB (7.2 GB — yes). · Civic/Data — 36 of 60 sampled residents back the skate park; project support among 900 voters (540). · Career — a vet tech doses 4 mg per 5 kg of body mass; find the dose for a 35 kg dog (28 mg).",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.RAT.05",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Proportions — solving for the unknown",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 8,
      "id": "NUM.RAT.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Proportions — solving for the unknown: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Proportions — solving for the unknown.",
      "content": "Accuracy — 8 proportions, unknown in every position (2 review, 1 estimation) ≥7/8 · Explanation — find the flaw in the setup 5/12 = 8/x for the apple problem — what got mismatched? · Transfer — a map's 3 cm represents 40 km; find the real distance for 7.5 cm.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.RAT.06",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Scaling recipes and mixtures",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 9,
      "id": "NUM.RAT.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Scaling recipes and mixtures: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Scaling recipes and mixtures.",
      "content": "Every ingredient must be multiplied by the same scale factor; adding the same amount to each ingredient changes the ratios and ruins the mix.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.RAT.06",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Scaling recipes and mixtures",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 9,
      "id": "NUM.RAT.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Scaling recipes and mixtures: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Scaling recipes and mixtures.",
      "content": "A recipe for 4 servings needs 300 g pasta and 180 mL sauce. For 10 servings the factor is 10 ÷ 4 = 2.5: 300 × 2.5 = 750 g pasta, 180 × 2.5 = 450 mL sauce.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.RAT.06",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Scaling recipes and mixtures",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 9,
      "id": "NUM.RAT.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Scaling recipes and mixtures: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Scaling recipes and mixtures into personal, civic/data, and career contexts.",
      "content": "Personal — scale a 12-cookie dough recipe to 30 cookies for a bake sale. · Civic/Data — the community kitchen scales a 6-serving chili recipe to 150 servings and orders ingredients from the factor 25. · Career — a paint mixer keeps 5:2 white-to-blue while batching 21 L (15 L white, 6 L blue).",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.RAT.06",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Scaling recipes and mixtures",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 9,
      "id": "NUM.RAT.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Scaling recipes and mixtures: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Scaling recipes and mixtures.",
      "content": "Accuracy — 8 scaling items with fractional factors (2 review) ≥7/8 · Explanation — a cook adds 6 extra grams to every ingredient \"to scale up\" — explain why the dish changes character · Transfer — rescale a slime recipe of 120 mL glue : 45 mL activator to use exactly 200 mL glue.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.RAT.07",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Speed, distance, time as rates",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 10,
      "id": "NUM.RAT.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Speed, distance, time as rates: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Speed, distance, time as rates.",
      "content": "Speed is a unit rate linking distance and time; fixing any two of speed, distance, time determines the third by the same proportional reasoning.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.RAT.07",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Speed, distance, time as rates",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 10,
      "id": "NUM.RAT.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Speed, distance, time as rates: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Speed, distance, time as rates.",
      "content": "240 km in 3 hours is 240 ÷ 3 = 80 km/h. At that speed, 200 km takes 200 ÷ 80 = 2.5 hours.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.RAT.07",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Speed, distance, time as rates",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 10,
      "id": "NUM.RAT.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Speed, distance, time as rates: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Speed, distance, time as rates into personal, civic/data, and career contexts.",
      "content": "Personal — you run 5 km in 30 minutes; find your pace in km/h (10) and predict your 8 km time. · Civic/Data — check a transit-agency claim that the new express bus does 18 km in 24 minutes (45 km/h). · Career — a dispatcher decides if a van can cover 135 km in 2 hours under a 60 km/h limit (no — it needs 67.5 km/h).",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.RAT.07",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Speed, distance, time as rates",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 10,
      "id": "NUM.RAT.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Speed, distance, time as rates: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Speed, distance, time as rates.",
      "content": "Accuracy — 8 items solving for each variable (2 review, 1 estimation) ≥7/8 · Explanation — why is \"I drove 80, so 2 hours means 160 km\" only valid if the speed held steady the whole time? · Transfer — a glacier moves 36 m in 90 days; find its daily rate and time for 100 m.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.RAT.08",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Ratios with three quantities",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 11,
      "id": "NUM.RAT.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Ratios with three quantities: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Ratios with three quantities.",
      "content": "A three-part ratio a:b:c shares a whole into a + b + c parts; find one part's size and every share follows.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.RAT.08",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Ratios with three quantities",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 11,
      "id": "NUM.RAT.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Ratios with three quantities: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Ratios with three quantities.",
      "content": "Concrete mixes cement : sand : gravel at 1:2:4. For 35 kg of mix there are 1 + 2 + 4 = 7 parts, so each part is 35 ÷ 7 = 5 kg: 5 kg cement, 10 kg sand, 20 kg gravel.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.RAT.08",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Ratios with three quantities",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 11,
      "id": "NUM.RAT.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Ratios with three quantities: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Ratios with three quantities into personal, civic/data, and career contexts.",
      "content": "Personal — split a 600 g trail mix 3:2:1 nuts : raisins : chocolate (300 : 200 : 100 g). · Civic/Data — the council divides a $14,000 grant 4:2:1 among sports, arts, and gardens ($8k : $4k : $2k). · Career — a florist builds 40-stem arrangements at 5:3:2 roses : lilies : ferns (20 : 12 : 8).",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.RAT.08",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Ratios with three quantities",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 11,
      "id": "NUM.RAT.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Ratios with three quantities: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Ratios with three quantities.",
      "content": "Accuracy — 8 items incl. one where a part (not the whole) is given (2 review) ≥7/8 · Explanation — find the flaw: splitting $14,000 in ratio 4:2:1 as \"$4k, $2k, $1k and keep the rest\" · Transfer — mix juice concentrate : water : ice at 2:5:1 to fill a 4 L jug.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.RAT.09",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Proportional vs non-proportional relationships",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 12,
      "id": "NUM.RAT.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Proportional vs non-proportional relationships: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Proportional vs non-proportional relationships.",
      "content": "A relationship is proportional only if y ÷ x is the same for every pair — equivalently, the graph is a straight line through the origin; a fixed starting fee breaks it.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.RAT.09",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Proportional vs non-proportional relationships",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 12,
      "id": "NUM.RAT.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Proportional vs non-proportional relationships: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Proportional vs non-proportional relationships.",
      "content": "Table A: (2,5), (4,10), (6,15) — each y ÷ x = 2.5, proportional. Table B: (2,5), (4,9), (6,13) — ratios 2.5, 2.25, 2.17 and no (0,0); it's y = 2x + 1, not proportional, even though it climbs steadily.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.RAT.09",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Proportional vs non-proportional relationships",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 12,
      "id": "NUM.RAT.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Proportional vs non-proportional relationships: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Proportional vs non-proportional relationships into personal, civic/data, and career contexts.",
      "content": "Personal — compare phone plans: $10 + $2/GB vs $4/GB — for which does doubling your data double the bill? · Civic/Data — taxi fares with a base flag-fall vs bike-share billed purely per minute: which is proportional and how would a graph show it? · Career — a freelancer contrasts \"flat $50 setup + hourly\" billing with pure hourly billing when quoting clients.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.RAT.09",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Proportional vs non-proportional relationships",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 12,
      "id": "NUM.RAT.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Proportional vs non-proportional relationships: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Proportional vs non-proportional relationships.",
      "content": "Accuracy — 8 classify-and-justify items from tables, graphs, stories (2 review) ≥7/8 · Explanation — Table B rises by the same +4 every step; explain why constant differences still aren't enough for proportionality · Transfer — decide from a table whether printer-ink cost vs pages printed is proportional.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.RAT.10",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Constant of proportionality",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 13,
      "id": "NUM.RAT.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Constant of proportionality: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Constant of proportionality.",
      "content": "In a proportional relationship the one number k = y/x carries the whole story: y = kx reproduces every pair and predicts every new one.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.RAT.10",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Constant of proportionality",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 13,
      "id": "NUM.RAT.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Constant of proportionality: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Constant of proportionality.",
      "content": "A proportional graph passes through (4, 18). Then k = 18 ÷ 4 = 4.5, the equation is y = 4.5x, and x = 10 predicts y = 45.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.RAT.10",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Constant of proportionality",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 13,
      "id": "NUM.RAT.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Constant of proportionality: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Constant of proportionality into personal, civic/data, and career contexts.",
      "content": "Personal — your step counter logs 1,250 steps per km, every km; write the equation and predict steps for 7 km. · Civic/Data — the water utility charges $2.40 per kL through the origin; read k off the published graph and check a sample bill. · Career — a 3-D printing service charges by mass with k = $0.08/g; quote a 240 g part ($19.20).",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.RAT.10",
      "clusterId": "NUM.RAT",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Constant of proportionality",
      "clusterTitle": "Ratio & Proportional Reasoning (NUM.RAT)",
      "band": "6–7",
      "hardLevel": 13,
      "id": "NUM.RAT.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Constant of proportionality: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Constant of proportionality.",
      "content": "Accuracy — 8 items finding k from tables, graphs, equations and using it (2 review) ≥7/8 · Explanation — why does k = 4.5 mean the graph can't pass through (6, 26)? · Transfer — extract k from a currency-exchange receipt and predict another amount.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.RNO.01",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Rational numbers — the unified number line",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 7,
      "id": "NUM.RNO.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Rational numbers — the unified number line: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Rational numbers — the unified number line.",
      "content": "Fractions, decimals, and integers are all one number system: every rational has a spot on the same line, and comparisons work across forms once you convert or locate.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.RNO.01",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Rational numbers — the unified number line",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 7,
      "id": "NUM.RNO.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Rational numbers — the unified number line: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Rational numbers — the unified number line.",
      "content": "Order −3/4, 0.6, −0.8, 1/2. Convert: −0.75, 0.6, −0.8, 0.5. Line order: −0.8 < −3/4 < 1/2 < 0.6.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.RNO.01",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Rational numbers — the unified number line",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 7,
      "id": "NUM.RNO.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Rational numbers — the unified number line: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Rational numbers — the unified number line into personal, civic/data, and career contexts.",
      "content": "Personal — rank your golf-app rounds at −1.5, +0.5, and −3/4 relative to par. · Civic/Data — place GDP growth figures −0.8%, 0.6%, −0.25% on one axis for a news graphic. · Career — a surveyor logs elevations −0.75 m, 0.4 m, −1.2 m against a benchmark and orders the stakes.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.RNO.01",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Rational numbers — the unified number line",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 7,
      "id": "NUM.RNO.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Rational numbers — the unified number line: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Rational numbers — the unified number line.",
      "content": "Accuracy — 8 cross-form ordering/placement items (2 review) ≥7/8 · Explanation — spot the flaw: \"−3/4 < −0.8 because 3/4 < 0.8\" · Transfer — order account changes −$1¼, +$0.80, −$0.95 from worst to best.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.RNO.02",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Adding and subtracting rationals (all signs and forms)",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 10,
      "id": "NUM.RNO.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Adding and subtracting rationals (all signs and forms): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Adding and subtracting rationals (all signs and forms).",
      "content": "One operation, any costume: integer sign logic and fraction/decimal technique combine, usually by converting to a common form before adding signed amounts.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.RNO.02",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Adding and subtracting rationals (all signs and forms)",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 10,
      "id": "NUM.RNO.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Adding and subtracting rationals (all signs and forms): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Adding and subtracting rationals (all signs and forms).",
      "content": "−2.5 + 1¾: convert 1¾ = 1.75; the 1.75 cancels part of −2.5, leaving −0.75. Check on the line: start at −2.5, move right 1.75.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.RNO.02",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Adding and subtracting rationals (all signs and forms)",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 10,
      "id": "NUM.RNO.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Adding and subtracting rationals (all signs and forms): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Adding and subtracting rationals (all signs and forms) into personal, civic/data, and career contexts.",
      "content": "Personal — net out your week: spent $12.50, earned $7¾ from chores — where do you stand? · Civic/Data — a reservoir fell 1.2 m in drought, then recovered 0.45 m after rains; report the net change. · Career — an inventory clerk reconciles case counts after adjustments of −3½ and +1.25 cases.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.RNO.02",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Adding and subtracting rationals (all signs and forms)",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 10,
      "id": "NUM.RNO.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Adding and subtracting rationals (all signs and forms): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Adding and subtracting rationals (all signs and forms).",
      "content": "Accuracy — 8 mixed-form signed sums/differences (2 review, 1 estimation) ≥7/8 · Explanation — why is converting to one form *before* combining safer than operating digit-by-digit across forms? · Transfer — combine tide readings +0.3 m, −7/8 m, +0.45 m into one net change.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.RNO.03",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplying and dividing rationals",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 12,
      "id": "NUM.RNO.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Multiplying and dividing rationals: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Multiplying and dividing rationals.",
      "content": "Multiply/divide the sizes with fraction–decimal technique, then set the sign by integer rules; dividing by a fraction still means multiplying by its reciprocal.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.RNO.03",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplying and dividing rationals",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 12,
      "id": "NUM.RNO.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Multiplying and dividing rationals: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Multiplying and dividing rationals.",
      "content": "−3/4 × 2.4: size is 3/4 of 2.4 = 1.8; signs differ, so −1.8. And −4.5 ÷ (−1/2) = −4.5 × (−2) = 9.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.RNO.03",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplying and dividing rationals",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 12,
      "id": "NUM.RNO.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Multiplying and dividing rationals: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Multiplying and dividing rationals into personal, civic/data, and career contexts.",
      "content": "Personal — four missed chores at −$2.25 each; show the allowance effect (−$9). · Civic/Data — the tide falls 0.4 m per hour for 2.5 hours; express the change as a product (−1.0 m). · Career — a diver descending at −7.5 m per minute for 2/3 of a minute logs −5 m.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.RNO.03",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Multiplying and dividing rationals",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 12,
      "id": "NUM.RNO.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Multiplying and dividing rationals: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Multiplying and dividing rationals.",
      "content": "Accuracy — 8 products/quotients across forms and signs (2 review) ≥7/8 · Explanation — spot the flaw: \"−4.5 ÷ (−1/2) = −9\" — both errors (sign, reciprocal) hide in it · Transfer — find the temperature change after 1¾ hours of cooling at −1.2 °C per hour.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.RNO.04",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Converting between forms fluently",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 13,
      "id": "NUM.RNO.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Converting between forms fluently: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Converting between forms fluently.",
      "content": "Choose the form that fits the job — fractions for exactness, decimals for comparison, mixed numbers for measurement — and move between them without losing the number.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.RNO.04",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Converting between forms fluently",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 13,
      "id": "NUM.RNO.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Converting between forms fluently: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Converting between forms fluently.",
      "content": "7/8 = 7 ÷ 8 = 0.875 = 87.5%. Backwards: −2.4 = −24/10 = −12/5 = −2 2/5.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.RNO.04",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Converting between forms fluently",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 13,
      "id": "NUM.RNO.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Converting between forms fluently: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Converting between forms fluently into personal, civic/data, and career contexts.",
      "content": "Personal — your app logs a 7/8-mile walk; enter it as 0.875 for the weekly total. · Civic/Data — a report mixes \"1 in 8 households\" with \"12.5%\"; verify the two figures agree. · Career — a machinist converts a 5/16-inch drawing callout to 0.3125 for CNC input.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.RNO.04",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Converting between forms fluently",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 13,
      "id": "NUM.RNO.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Converting between forms fluently: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Converting between forms fluently.",
      "content": "Accuracy — 8 conversions incl. negatives and mixed numbers (2 review) ≥7/8 · Explanation — why does dividing numerator by denominator produce the decimal form? Tie it to fractions-as-division · Transfer — pick the best form to compare 5/6 of a tank with a 0.8 sensor reading, and justify.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.RNO.05",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Repeating decimals and fraction equivalents",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 14,
      "id": "NUM.RNO.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Repeating decimals and fraction equivalents: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Repeating decimals and fraction equivalents.",
      "content": "Some fractions never terminate — long division cycles through remainders, so the digits repeat in a block, and every repeating decimal is exactly some fraction.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.RNO.05",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Repeating decimals and fraction equivalents",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 14,
      "id": "NUM.RNO.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Repeating decimals and fraction equivalents: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Repeating decimals and fraction equivalents.",
      "content": "5/11: dividing cycles remainders 5, 6, 5, 6…, giving 0.454545… = 0.4̅5̅. Backwards: x = 0.777…, so 10x = 7.777…, subtract: 9x = 7, x = 7/9.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.RNO.05",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Repeating decimals and fraction equivalents",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 14,
      "id": "NUM.RNO.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Repeating decimals and fraction equivalents: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Repeating decimals and fraction equivalents into personal, civic/data, and career contexts.",
      "content": "Personal — split $10 three ways: why the app shows $3.33 each and one person gets the spare cent. · Civic/Data — a sports page lists a .333 batting average; explain how it relates to the exact 1/3. · Career — an engineer decides whether 2/3 m can be keyed exactly into a 0.001 m-resolution display.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.RNO.05",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Repeating decimals and fraction equivalents",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 14,
      "id": "NUM.RNO.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Repeating decimals and fraction equivalents: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Repeating decimals and fraction equivalents.",
      "content": "Accuracy — 8 items both directions (fraction → repeating decimal, repeating decimal → fraction; 2 review) ≥7/8 · Explanation — why *must* the division for 5/11 eventually repeat? (Only finitely many possible remainders.) · Transfer — convert a machine's 0.16̅ rejection rate (0.1666…) to a fraction (1/6), stating which digit repeats.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.RNO.06",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Order of operations with rationals",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 15,
      "id": "NUM.RNO.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Order of operations with rationals: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Order of operations with rationals.",
      "content": "The evaluation grammar is unchanged by signs and fractions: grouping, then multiplication/division, then addition/subtraction — negatives travel with their numbers.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.RNO.06",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Order of operations with rationals",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 15,
      "id": "NUM.RNO.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Order of operations with rationals: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Order of operations with rationals.",
      "content": "1/2 + 3/4 × (−8): product first, 3/4 × (−8) = −6, so 0.5 − 6 = −5.5. With grouping, (1/2 + 3/4) × (−8) = 5/4 × (−8) = −10.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.RNO.06",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Order of operations with rationals",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 15,
      "id": "NUM.RNO.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Order of operations with rationals: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Order of operations with rationals into personal, civic/data, and career contexts.",
      "content": "Personal — check the math on your receipt logic: $20 − 3 × $4.25 leaves $7.25, not $72.25. · Civic/Data — fact-check a post that averaged temperature changes by adding before dividing only part of the list. · Career — a payroll clerk audits base + hours × rate with a −0.5 h correction and finds where the order broke.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.RNO.06",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Order of operations with rationals",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 15,
      "id": "NUM.RNO.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Order of operations with rationals: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Order of operations with rationals.",
      "content": "Accuracy — 8 expressions mixing forms, signs, grouping (2 review) ≥7/8 · Explanation — find the flaw in evaluating 1/2 + 3/4 × (−8) left to right (= −10) — why does the convention exist at all? · Transfer — evaluate a spreadsheet-style formula 100 × (1 − 0.2) + 15 ÷ (−3) from documentation (75).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.RNO.07",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Properties of operations (commutative, associative, distributive)",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 16,
      "id": "NUM.RNO.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Properties of operations (commutative, associative, distributive): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Properties of operations (commutative, associative, distributive).",
      "content": "Commutativity, associativity, and distributivity are the licenses behind every mental-math shortcut: reorder, regroup, and split numbers without changing the value.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.RNO.07",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Properties of operations (commutative, associative, distributive)",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 16,
      "id": "NUM.RNO.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Properties of operations (commutative, associative, distributive): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Properties of operations (commutative, associative, distributive).",
      "content": "0.25 × 7.3 × 4: regroup as (0.25 × 4) × 7.3 = 1 × 7.3 = 7.3. Distribute: 6 × 4.95 = 6 × (5 − 0.05) = 30 − 0.30 = 29.70.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.RNO.07",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Properties of operations (commutative, associative, distributive)",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 16,
      "id": "NUM.RNO.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Properties of operations (commutative, associative, distributive): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Properties of operations (commutative, associative, distributive) into personal, civic/data, and career contexts.",
      "content": "Personal — price 4 smoothies at $7.49 in your head as 4 × 7.50 minus 4 cents ($29.96). · Civic/Data — confirm a budget sheet that regrouped (a + b) + c into a + (b + c) changed nothing, and say why the same move fails for subtraction. · Career — a framing crew adds board lengths in whatever order they're called out, trusting the total.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.RNO.07",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Properties of operations (commutative, associative, distributive)",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 16,
      "id": "NUM.RNO.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Properties of operations (commutative, associative, distributive): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Properties of operations (commutative, associative, distributive).",
      "content": "Accuracy — 8 evaluate-the-clever-way items, property named each time (2 review) ≥7/8 · Explanation — spot the flaw: \"subtraction is commutative: 5 − 3 = 3 − 5\" — test it and state which property actually fails · Transfer — use distribution to compute 12 × 9.75 from 12 × 10 − 12 × 0.25 in a new context.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.RNO.08",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Complex multi-step numeric expressions",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 17,
      "id": "NUM.RNO.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Complex multi-step numeric expressions: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Complex multi-step numeric expressions.",
      "content": "Long numeric expressions yield to a plan: simplify inside grouping symbols, convert to convenient forms, and track signs — fluency is choosing the order that keeps arithmetic clean.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.RNO.08",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Complex multi-step numeric expressions",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 17,
      "id": "NUM.RNO.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Complex multi-step numeric expressions: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Complex multi-step numeric expressions.",
      "content": "(−2.5 + 4¾) × 8/9: inside first, −2.5 + 4.75 = 2.25 = 9/4; then 9/4 × 8/9 = 2.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.RNO.08",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Complex multi-step numeric expressions",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 17,
      "id": "NUM.RNO.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Complex multi-step numeric expressions: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Complex multi-step numeric expressions into personal, civic/data, and career contexts.",
      "content": "Personal — compute your net from a multi-step trade: bought at $4.50, sold half at $6¼, half at $3.75. · Civic/Data — recompute a journalist's \"average quarterly change\" built from four signed quarterly figures. · Career — a bookkeeper closes a till with (opening + sales − refunds) × a 0.97 card-fee factor.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.RNO.08",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Complex multi-step numeric expressions",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 17,
      "id": "NUM.RNO.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Complex multi-step numeric expressions: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Complex multi-step numeric expressions.",
      "content": "Accuracy — 6 longer expressions, partial credit by step (2 review) ≥5/6 · Explanation — a peer converted 9/4 to 2.25 *after* multiplying by 8/9 and got 2.0 anyway — explain why both routes agree and which is less error-prone · Transfer — evaluate a two-bracket expression from a science worksheet, e.g. (3.2 − 5.7) × (1/2 + 1/8) = −2.5 × 0.625 = −1.5625.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.RNO.09",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Terminating vs repeating — predicting from denominators",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 18,
      "id": "NUM.RNO.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Terminating vs repeating — predicting from denominators: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Terminating vs repeating — predicting from denominators.",
      "content": "In lowest terms, a fraction terminates exactly when its denominator's prime factors are only 2s and 5s — because only then can it be rescaled to a power of ten.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.RNO.09",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Terminating vs repeating — predicting from denominators",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 18,
      "id": "NUM.RNO.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Terminating vs repeating — predicting from denominators: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Terminating vs repeating — predicting from denominators.",
      "content": "7/40: 40 = 2³ × 5, only 2s and 5s, so it terminates — 7/40 = 175/1000 = 0.175. 5/12: 12 = 2² × 3 has a 3, so it repeats: 0.41666… = 0.416̅.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.RNO.09",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Terminating vs repeating — predicting from denominators",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 18,
      "id": "NUM.RNO.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Terminating vs repeating — predicting from denominators: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Terminating vs repeating — predicting from denominators into personal, civic/data, and career contexts.",
      "content": "Personal — predict which split of a $35 bill gives clean cents: among 8 people or among 12 — before dividing. · Civic/Data — a budget chart claims \"1/12 of spending = 8.3% exactly\"; explain why 8.3% must be a rounding. · Career — a pharmacist checks whether 1/8 of a 500 mg tablet is an exact mg amount (62.5 mg) while 1/3 is not.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.RNO.09",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Terminating vs repeating — predicting from denominators",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 18,
      "id": "NUM.RNO.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Terminating vs repeating — predicting from denominators: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Terminating vs repeating — predicting from denominators.",
      "content": "Accuracy — 8 predict-then-verify items (2 factorization review) ≥7/8 · Explanation — why do only 2s and 5s allow termination? Connect to denominators of powers of ten · Transfer — without dividing, classify 9/64, 11/15, 21/28 (simplify first: 21/28 = 3/4) as terminating or repeating.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "NUM.RNO.10",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Irrational numbers exist (√2, π — intro)",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 19,
      "id": "NUM.RNO.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Irrational numbers exist (√2, π — intro): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Irrational numbers exist (√2, π — intro).",
      "content": "Some lengths are not fractions at all: √2 and π have decimal expansions that never terminate and never repeat, so \"rational\" does not cover the whole number line.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "NUM.RNO.10",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Irrational numbers exist (√2, π — intro)",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 19,
      "id": "NUM.RNO.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Irrational numbers exist (√2, π — intro): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Irrational numbers exist (√2, π — intro).",
      "content": "Trap √2: 1.4² = 1.96 and 1.5² = 2.25, so √2 is between; 1.41² = 1.9881 and 1.42² = 2.0164 squeeze it further. No matter how far you go, no fraction squares to exactly 2 — the decimal never settles into a repeat.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "NUM.RNO.10",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Irrational numbers exist (√2, π — intro)",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 19,
      "id": "NUM.RNO.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Irrational numbers exist (√2, π — intro): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Irrational numbers exist (√2, π — intro) into personal, civic/data, and career contexts.",
      "content": "Personal — your calculator fills the screen for √2 when you compute a square TV's diagonal; explain why no exact decimal exists. · Civic/Data — a Pi Day post claims \"π = 22/7\"; test it (22/7 = 3.142857̅ repeats; π doesn't) and write the correction. · Career — a drafter uses √2 to size the 45° brace on a 1 m square frame and decides how many digits to keep.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "NUM.RNO.10",
      "clusterId": "NUM.RNO",
      "domain": "NUM",
      "domainName": "Number & Operations",
      "skillTitle": "Irrational numbers exist (√2, π — intro)",
      "clusterTitle": "Rational Number Operations (NUM.RNO)",
      "band": "7–8",
      "hardLevel": 19,
      "id": "NUM.RNO.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Irrational numbers exist (√2, π — intro): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Irrational numbers exist (√2, π — intro).",
      "content": "Accuracy — 8 classify rational/irrational with reasons (2 review) ≥7/8 · Explanation — explain the difference between 0.4̅5̅ and π's expansion — why does repeating guarantee a fraction? · Transfer — decide whether √25, √10, and 0.121212… are rational, with one-line justifications.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.CMP.01",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Two-stage experiments — tables and grids",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 7,
      "id": "PRB.CMP.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Two-stage experiments — tables and grids: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Two-stage experiments — tables and grids.",
      "content": "A two-stage experiment combines outcomes from two actions; tables and grids organize all pairs.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.CMP.01",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Two-stage experiments — tables and grids",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 7,
      "id": "PRB.CMP.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Two-stage experiments — tables and grids: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Two-stage experiments — tables and grids.",
      "content": "Tossing a coin and rolling a die has 2×6 = 12 paired outcomes, such as H1 and T6.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.CMP.01",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Two-stage experiments — tables and grids",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 7,
      "id": "PRB.CMP.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Two-stage experiments — tables and grids: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Two-stage experiments — tables and grids into personal, civic/data, and career contexts.",
      "content": "Personal — list outfit choices from shirt and shoe options. · Civic/Data — combine transport mode and school-year group in a survey. · Career — list test cases for device and browser combinations.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.CMP.01",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Two-stage experiments — tables and grids",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 7,
      "id": "PRB.CMP.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Two-stage experiments — tables and grids: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Two-stage experiments — tables and grids.",
      "content": "Accuracy — 8 two-stage sample-space grid items ≥7/8 · Explanation — how does a grid show every pair once? · Transfer — build a grid for spinner A/B/C and coin H/T.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.CMP.02",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Tree diagrams",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 8,
      "id": "PRB.CMP.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Tree diagrams: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Tree diagrams.",
      "content": "A tree diagram shows staged choices or chance events as branches, with each path representing one complete outcome.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.CMP.02",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Tree diagrams",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 8,
      "id": "PRB.CMP.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Tree diagrams: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Tree diagrams.",
      "content": "For two coin tosses, first branch H/T, then each branches H/T again, producing HH, HT, TH, TT.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.CMP.02",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Tree diagrams",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 8,
      "id": "PRB.CMP.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Tree diagrams: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Tree diagrams into personal, civic/data, and career contexts.",
      "content": "Personal — map snack then drink choices. · Civic/Data — diagram survey response followed by follow-up response. · Career — diagram product test pass/fail across two stages.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.CMP.02",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Tree diagrams",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 8,
      "id": "PRB.CMP.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Tree diagrams: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Tree diagrams.",
      "content": "Accuracy — 8 tree-diagram completion and interpretation items ≥7/8 · Explanation — what does one path through the tree mean? · Transfer — draw a tree for choosing one of three colors then one of two sizes.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.CMP.03",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "The multiplication rule (independent events)",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 17,
      "id": "PRB.CMP.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "The multiplication rule (independent events): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of The multiplication rule (independent events).",
      "content": "For independent events, multiply probabilities to find the chance that both happen.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.CMP.03",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "The multiplication rule (independent events)",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 17,
      "id": "PRB.CMP.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "The multiplication rule (independent events): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for The multiplication rule (independent events).",
      "content": "P(heads then 6) = 1/2 × 1/6 = 1/12 because the coin result does not affect the die.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.CMP.03",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "The multiplication rule (independent events)",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 17,
      "id": "PRB.CMP.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "The multiplication rule (independent events): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer The multiplication rule (independent events) into personal, civic/data, and career contexts.",
      "content": "Personal — chance of guessing two independent true/false answers. · Civic/Data — estimate two independent checks both passing. · Career — compute independent component reliability in a simple system.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.CMP.03",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "The multiplication rule (independent events)",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 17,
      "id": "PRB.CMP.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "The multiplication rule (independent events): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond The multiplication rule (independent events).",
      "content": "Accuracy — 8 independent multiplication-rule items ≥7/8 · Explanation — why is multiplication used instead of addition for \"and\"? · Transfer — find chance of drawing blue from one bag and red from another independent bag.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.CMP.04",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Independent vs dependent events",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 18,
      "id": "PRB.CMP.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Independent vs dependent events: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Independent vs dependent events.",
      "content": "Events are dependent when the first outcome changes the probability of the second; without replacement is a common source of dependence.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.CMP.04",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Independent vs dependent events",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 18,
      "id": "PRB.CMP.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Independent vs dependent events: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Independent vs dependent events.",
      "content": "Drawing two red cards without replacement changes the deck after the first draw. With replacement, the second probability resets.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.CMP.04",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Independent vs dependent events",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 18,
      "id": "PRB.CMP.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Independent vs dependent events: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Independent vs dependent events into personal, civic/data, and career contexts.",
      "content": "Personal — draw two sweets from a bag with or without replacing the first. · Civic/Data — sample two names from a roster without replacement. · Career — inspect two items from a small batch where the first removal changes the batch.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.CMP.04",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Independent vs dependent events",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 18,
      "id": "PRB.CMP.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Independent vs dependent events: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Independent vs dependent events.",
      "content": "Accuracy — 8 classify-and-compute items for independent/dependent events ≥7/8 · Explanation — what changes after the first draw without replacement? · Transfer — compute two blue draws from 3 blue and 2 green without replacement.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.CMP.05",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Sampling with and without replacement",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 19,
      "id": "PRB.CMP.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Sampling with and without replacement: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Sampling with and without replacement.",
      "content": "Replacement keeps probabilities the same between draws; no replacement updates the counts and denominator after each draw.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.CMP.05",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Sampling with and without replacement",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 19,
      "id": "PRB.CMP.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Sampling with and without replacement: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Sampling with and without replacement.",
      "content": "Bag has 4 red, 6 blue. With replacement, P(red then red)=4/10×4/10. Without replacement, P(red then red)=4/10×3/9.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.CMP.05",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Sampling with and without replacement",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 19,
      "id": "PRB.CMP.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Sampling with and without replacement: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Sampling with and without replacement into personal, civic/data, and career contexts.",
      "content": "Personal — compare drawing names and returning the card vs keeping it out. · Civic/Data — sample survey households without repeats. · Career — sample product units without putting tested units back.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.CMP.05",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Sampling with and without replacement",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 19,
      "id": "PRB.CMP.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Sampling with and without replacement: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Sampling with and without replacement.",
      "content": "Accuracy — 8 replacement/no-replacement calculations ≥7/8 · Explanation — why does the denominator decrease without replacement? · Transfer — compare green then blue with and without replacement.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.CMP.06",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "At-least-one problems (via complement)",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 20,
      "id": "PRB.CMP.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "At-least-one problems (via complement): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of At-least-one problems (via complement).",
      "content": "\"At least one\" is often easier by finding the chance of none, then subtracting from 1.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.CMP.06",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "At-least-one problems (via complement)",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 20,
      "id": "PRB.CMP.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "At-least-one problems (via complement): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for At-least-one problems (via complement).",
      "content": "Chance of at least one head in three coin tosses = 1 − P(no heads) = 1 − (1/2)³ = 7/8.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.CMP.06",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "At-least-one problems (via complement)",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 20,
      "id": "PRB.CMP.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "At-least-one problems (via complement): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer At-least-one problems (via complement) into personal, civic/data, and career contexts.",
      "content": "Personal — chance at least one friend replies when each reply is independent. · Civic/Data — chance at least one sampled sensor flags an issue. · Career — estimate chance at least one backup succeeds.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.CMP.06",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "At-least-one problems (via complement)",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 20,
      "id": "PRB.CMP.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "At-least-one problems (via complement): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond At-least-one problems (via complement).",
      "content": "Accuracy — 8 at-least-one complement items ≥7/8 · Explanation — why is \"none\" the complement of \"at least one\"? · Transfer — find chance of at least one 6 in two die rolls.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.CMP.07",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Conditional thinking (informal)",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 21,
      "id": "PRB.CMP.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Conditional thinking (informal): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Conditional thinking (informal).",
      "content": "Conditional probability asks for the chance of an event given that some information is already known.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.CMP.07",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Conditional thinking (informal)",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 21,
      "id": "PRB.CMP.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Conditional thinking (informal): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Conditional thinking (informal).",
      "content": "If a card is known to be red, the chance it is a heart is 1/2, not 1/4, because the sample space has shrunk to red cards.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.CMP.07",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Conditional thinking (informal)",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 21,
      "id": "PRB.CMP.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Conditional thinking (informal): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Conditional thinking (informal) into personal, civic/data, and career contexts.",
      "content": "Personal — update chance of a bus being late after hearing traffic is heavy. · Civic/Data — interpret survey results within one age group only. · Career — estimate failure chance given a warning light is on.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.CMP.07",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Conditional thinking (informal)",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 21,
      "id": "PRB.CMP.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Conditional thinking (informal): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Conditional thinking (informal).",
      "content": "Accuracy — 8 informal conditional-probability items with reduced sample spaces ≥7/8 · Explanation — how does new information change the denominator? · Transfer — find chance of rolling even given the die roll is greater than 3.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.CMP.08",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Counting principles (fundamental counting)",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 22,
      "id": "PRB.CMP.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Counting principles (fundamental counting): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Counting principles (fundamental counting).",
      "content": "If one choice has a options and the next has b options, the combined process has a×b outcomes when choices pair freely.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.CMP.08",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Counting principles (fundamental counting)",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 22,
      "id": "PRB.CMP.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Counting principles (fundamental counting): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Counting principles (fundamental counting).",
      "content": "4 shirts and 3 hats make 4×3 = 12 outfits.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.CMP.08",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Counting principles (fundamental counting)",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 22,
      "id": "PRB.CMP.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Counting principles (fundamental counting): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Counting principles (fundamental counting) into personal, civic/data, and career contexts.",
      "content": "Personal — count meal combos from mains and drinks. · Civic/Data — count possible survey forms from independent question choices. · Career — count product variants from colors, sizes, and materials.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.CMP.08",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Counting principles (fundamental counting)",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 22,
      "id": "PRB.CMP.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Counting principles (fundamental counting): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Counting principles (fundamental counting).",
      "content": "Accuracy — 8 counting-principle items with two and three stages ≥7/8 · Explanation — when would multiplication overcount because choices are restricted? · Transfer — count passwords with two letters followed by one digit under simple rules.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.CMP.09",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Simulating compound events",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 23,
      "id": "PRB.CMP.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Simulating compound events: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Simulating compound events.",
      "content": "Simulation uses random tools to imitate a chance process many times when direct calculation is hard or a check is useful.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.CMP.09",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Simulating compound events",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 23,
      "id": "PRB.CMP.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Simulating compound events: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Simulating compound events.",
      "content": "To estimate chance of at least two heads in three tosses, toss three coins many times, record successes, and divide successes by trials.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.CMP.09",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Simulating compound events",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 23,
      "id": "PRB.CMP.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Simulating compound events: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Simulating compound events into personal, civic/data, and career contexts.",
      "content": "Personal — simulate a board-game outcome before changing rules. · Civic/Data — simulate random team selection to test fairness. · Career — run a simple Monte Carlo-style reliability check.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.CMP.09",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Simulating compound events",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 23,
      "id": "PRB.CMP.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Simulating compound events: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Simulating compound events.",
      "content": "Accuracy — 8 simulation-design and result-interpretation items ≥7/8 · Explanation — why do more trials usually improve the estimate? · Transfer — design a simulation for drawing two counters from a bag.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.CMP.10",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Compound probability in games and security (PINs, passwords)",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 24,
      "id": "PRB.CMP.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Compound probability in games and security (PINs, passwords): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Compound probability in games and security (PINs, passwords).",
      "content": "Compound counting and probability explain why multi-step guesses become much harder as choices multiply.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.CMP.10",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Compound probability in games and security (PINs, passwords)",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 24,
      "id": "PRB.CMP.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Compound probability in games and security (PINs, passwords): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Compound probability in games and security (PINs, passwords).",
      "content": "A 4-digit PIN using digits 0–9 has 10×10×10×10 = 10,000 possible codes, so one random guess has probability 1/10,000.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.CMP.10",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Compound probability in games and security (PINs, passwords)",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 24,
      "id": "PRB.CMP.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Compound probability in games and security (PINs, passwords): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Compound probability in games and security (PINs, passwords) into personal, civic/data, and career contexts.",
      "content": "Personal — compare a short PIN with a longer passcode. · Civic/Data — explain why random ID codes reduce collisions. · Career — estimate possible product serial codes from several character positions.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.CMP.10",
      "clusterId": "PRB.CMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Compound probability in games and security (PINs, passwords)",
      "clusterTitle": "Compound Events (PRB.CMP)",
      "band": "7–8",
      "hardLevel": 24,
      "id": "PRB.CMP.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Compound probability in games and security (PINs, passwords): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Compound probability in games and security (PINs, passwords).",
      "content": "Accuracy — 8 security/game counting items framed critically and safely ≥7/8 · Explanation — why does adding one digit multiply possibilities by 10? · Transfer — count possible 3-letter codes using 26 letters.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.EXP.01",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Relative frequency as estimated probability",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 9,
      "id": "PRB.EXP.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Relative frequency as estimated probability: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Relative frequency as estimated probability.",
      "content": "Relative frequency is successes divided by trials; it estimates probability from observed data.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.EXP.01",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Relative frequency as estimated probability",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 9,
      "id": "PRB.EXP.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Relative frequency as estimated probability: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Relative frequency as estimated probability.",
      "content": "If a spinner lands blue 18 times in 60 spins, relative frequency is 18/60 = 0.3, so blue is estimated at 30%.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.EXP.01",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Relative frequency as estimated probability",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 9,
      "id": "PRB.EXP.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Relative frequency as estimated probability: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Relative frequency as estimated probability into personal, civic/data, and career contexts.",
      "content": "Personal — estimate how often a basketball shot goes in from practice attempts. · Civic/Data — estimate bus lateness from a week of observations. · Career — estimate defect rate from sampled products.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.EXP.01",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Relative frequency as estimated probability",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 9,
      "id": "PRB.EXP.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Relative frequency as estimated probability: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Relative frequency as estimated probability.",
      "content": "Accuracy — 8 relative-frequency calculations and interpretations ≥7/8 · Explanation — why is relative frequency an estimate, not a guarantee? · Transfer — calculate estimated probability from 42 successes in 100 trials.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.EXP.02",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Theoretical vs experimental — why they differ",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 10,
      "id": "PRB.EXP.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Theoretical vs experimental — why they differ: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Theoretical vs experimental — why they differ.",
      "content": "Theoretical probability comes from a model; experimental probability comes from trials, and small samples often differ from the model.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.EXP.02",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Theoretical vs experimental — why they differ",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 10,
      "id": "PRB.EXP.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Theoretical vs experimental — why they differ: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Theoretical vs experimental — why they differ.",
      "content": "A fair coin's theoretical heads probability is 1/2, but 10 tosses might produce 7 heads. The result differs because random variation is normal.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.EXP.02",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Theoretical vs experimental — why they differ",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 10,
      "id": "PRB.EXP.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Theoretical vs experimental — why they differ: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Theoretical vs experimental — why they differ into personal, civic/data, and career contexts.",
      "content": "Personal — compare predicted spinner results with actual spins. · Civic/Data — compare expected survey sample proportions with observed responses. · Career — compare expected defect rate with sample results.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.EXP.02",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Theoretical vs experimental — why they differ",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 10,
      "id": "PRB.EXP.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Theoretical vs experimental — why they differ: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Theoretical vs experimental — why they differ.",
      "content": "Accuracy — 8 theoretical/experimental comparison items ≥7/8 · Explanation — why does a short experiment not prove the model wrong? · Transfer — explain why 6 heads in 10 fair coin tosses is not surprising.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.EXP.03",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "More trials, better estimates (law of large numbers, informal)",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 11,
      "id": "PRB.EXP.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "More trials, better estimates (law of large numbers, informal): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of More trials, better estimates (law of large numbers, informal).",
      "content": "As trials increase, relative frequency tends to settle closer to the true probability, though short-term variation remains.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.EXP.03",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "More trials, better estimates (law of large numbers, informal)",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 11,
      "id": "PRB.EXP.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "More trials, better estimates (law of large numbers, informal): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for More trials, better estimates (law of large numbers, informal).",
      "content": "A die rolled 12 times may show no 6s, but after 1,200 rolls the proportion of 6s is usually much closer to 1/6.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.EXP.03",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "More trials, better estimates (law of large numbers, informal)",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 11,
      "id": "PRB.EXP.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "More trials, better estimates (law of large numbers, informal): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer More trials, better estimates (law of large numbers, informal) into personal, civic/data, and career contexts.",
      "content": "Personal — judge whether 5 practice shots are enough to estimate shooting accuracy. · Civic/Data — compare tiny and larger poll samples. · Career — estimate defect rate from 20 units vs 2,000 units.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.EXP.03",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "More trials, better estimates (law of large numbers, informal)",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 11,
      "id": "PRB.EXP.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "More trials, better estimates (law of large numbers, informal): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond More trials, better estimates (law of large numbers, informal).",
      "content": "Accuracy — 8 sample-size and estimate-reliability items ≥7/8 · Explanation — why do more trials reduce the effect of luck? · Transfer — choose which of two experiments gives a more stable estimate and explain.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.EXP.04",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Designing a chance experiment",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 12,
      "id": "PRB.EXP.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Designing a chance experiment: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Designing a chance experiment.",
      "content": "A good chance experiment defines the event, random method, number of trials, recording plan, and fairness controls.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.EXP.04",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Designing a chance experiment",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 12,
      "id": "PRB.EXP.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Designing a chance experiment: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Designing a chance experiment.",
      "content": "To estimate P(drawing red), mix the bag, draw one counter, record color, replace it, and repeat 100 times.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.EXP.04",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Designing a chance experiment",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 12,
      "id": "PRB.EXP.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Designing a chance experiment: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Designing a chance experiment into personal, civic/data, and career contexts.",
      "content": "Personal — design a spinner test for a board game. · Civic/Data — plan random selection for a small survey. · Career — design a sampling process for checking package defects.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.EXP.04",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Designing a chance experiment",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 12,
      "id": "PRB.EXP.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Designing a chance experiment: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Designing a chance experiment.",
      "content": "Accuracy — 8 experiment-design items identifying event, randomizer, trials, and bias controls ≥7/8 · Explanation — why does replacing the counter matter if the target model uses replacement? · Transfer — design an experiment to estimate chance of a bus being late.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.EXP.05",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Recording and summarizing trial data",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 13,
      "id": "PRB.EXP.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Recording and summarizing trial data: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Recording and summarizing trial data.",
      "content": "Trial data should be recorded consistently, summarized with counts and relative frequencies, and displayed clearly.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.EXP.05",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Recording and summarizing trial data",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 13,
      "id": "PRB.EXP.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Recording and summarizing trial data: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Recording and summarizing trial data.",
      "content": "A table records 100 spinner trials: red 46, blue 31, green 23. Relative frequencies are 0.46, 0.31, 0.23.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.EXP.05",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Recording and summarizing trial data",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 13,
      "id": "PRB.EXP.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Recording and summarizing trial data: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Recording and summarizing trial data into personal, civic/data, and career contexts.",
      "content": "Personal — record free-throw makes and misses. · Civic/Data — summarize random traffic counts by category. · Career — record pass/fail results from repeated quality checks.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.EXP.05",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Recording and summarizing trial data",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 13,
      "id": "PRB.EXP.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Recording and summarizing trial data: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Recording and summarizing trial data.",
      "content": "Accuracy — 8 data-recording and summary items ≥7/8 · Explanation — why should categories be defined before collecting data? · Transfer — turn raw tally marks into a frequency table and bar chart.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.EXP.06",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Using simulation when theory is hard",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 14,
      "id": "PRB.EXP.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Using simulation when theory is hard: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Using simulation when theory is hard.",
      "content": "Simulation estimates probabilities by repeating a model many times, especially when direct counting is complicated.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.EXP.06",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Using simulation when theory is hard",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 14,
      "id": "PRB.EXP.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Using simulation when theory is hard: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Using simulation when theory is hard.",
      "content": "To estimate the chance of getting at least one 6 in four die rolls, use random digits or a die, run many trials, and count trials with one or more 6s.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.EXP.06",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Using simulation when theory is hard",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 14,
      "id": "PRB.EXP.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Using simulation when theory is hard: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Using simulation when theory is hard into personal, civic/data, and career contexts.",
      "content": "Personal — simulate a complex board-game turn. · Civic/Data — simulate random allocation of limited tickets. · Career — simulate queue wait times with random arrivals.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.EXP.06",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Using simulation when theory is hard",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 14,
      "id": "PRB.EXP.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Using simulation when theory is hard: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Using simulation when theory is hard.",
      "content": "Accuracy — 8 simulation setup/result items ≥7/8 · Explanation — what makes a simulation match the real chance process? · Transfer — design a simulation for drawing names from a hat without replacement.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.EXP.07",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Random digits and random number tools",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 15,
      "id": "PRB.EXP.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Random digits and random number tools: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Random digits and random number tools.",
      "content": "Random digit tables and digital randomizers can simulate chance when outcomes are assigned fairly to numbers.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.EXP.07",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Random digits and random number tools",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 15,
      "id": "PRB.EXP.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Random digits and random number tools: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Random digits and random number tools.",
      "content": "To simulate a 30% chance, let digits 0,1,2 mean success and 3–9 mean failure, then read random digits as trials.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.EXP.07",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Random digits and random number tools",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 15,
      "id": "PRB.EXP.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Random digits and random number tools: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Random digits and random number tools into personal, civic/data, and career contexts.",
      "content": "Personal — use random digits to simulate a game event. · Civic/Data — randomly choose survey participants from numbered entries. · Career — use a random number generator for sample selection.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.EXP.07",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Random digits and random number tools",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 15,
      "id": "PRB.EXP.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Random digits and random number tools: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Random digits and random number tools.",
      "content": "Accuracy — 8 random-tool mapping and interpretation items ≥7/8 · Explanation — why should each outcome receive the correct share of numbers? · Transfer — map digits to simulate a 40% success chance.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.EXP.08",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Streaks and clusters happen (randomness looks lumpy)",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 17,
      "id": "PRB.EXP.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Streaks and clusters happen (randomness looks lumpy): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Streaks and clusters happen (randomness looks lumpy).",
      "content": "Random results often include streaks and clusters; a short streak is not automatically evidence of bias.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.EXP.08",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Streaks and clusters happen (randomness looks lumpy)",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 17,
      "id": "PRB.EXP.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Streaks and clusters happen (randomness looks lumpy): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Streaks and clusters happen (randomness looks lumpy).",
      "content": "In 50 coin tosses, seeing HHHH somewhere is not shocking. Random sequences are not forced to alternate neatly.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.EXP.08",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Streaks and clusters happen (randomness looks lumpy)",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 17,
      "id": "PRB.EXP.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Streaks and clusters happen (randomness looks lumpy): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Streaks and clusters happen (randomness looks lumpy) into personal, civic/data, and career contexts.",
      "content": "Personal — explain a run of missed shots without assuming skill vanished. · Civic/Data — interpret clusters of incidents before claiming a pattern. · Career — distinguish random defect clusters from process changes.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.EXP.08",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Streaks and clusters happen (randomness looks lumpy)",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 17,
      "id": "PRB.EXP.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Streaks and clusters happen (randomness looks lumpy): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Streaks and clusters happen (randomness looks lumpy).",
      "content": "Accuracy — 8 streak/misconception interpretation items ≥7/8 · Explanation — why can alternating HTHTHT look less random than a sequence with streaks? · Transfer — respond to a claim that four heads proves a coin is unfair.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.EXP.09",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Estimating real-world probabilities from data",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 18,
      "id": "PRB.EXP.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Estimating real-world probabilities from data: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Estimating real-world probabilities from data.",
      "content": "Real-world probability estimates depend on relevant data, clear denominators, and awareness of bias or changing conditions.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.EXP.09",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Estimating real-world probabilities from data",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 18,
      "id": "PRB.EXP.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Estimating real-world probabilities from data: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Estimating real-world probabilities from data.",
      "content": "Estimating chance a bus is late from 30 observed trips is better if observations cover different days and times, not only Friday afternoons.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.EXP.09",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Estimating real-world probabilities from data",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 18,
      "id": "PRB.EXP.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Estimating real-world probabilities from data: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Estimating real-world probabilities from data into personal, civic/data, and career contexts.",
      "content": "Personal — estimate chance of a train delay from your own commute data. · Civic/Data — estimate park-use probability from sampled days. · Career — estimate failure probability from maintenance logs.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.EXP.09",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Estimating real-world probabilities from data",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 18,
      "id": "PRB.EXP.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Estimating real-world probabilities from data: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Estimating real-world probabilities from data.",
      "content": "Accuracy — 8 real-world estimate items naming denominator, sample limits, and bias risks ≥7/8 · Explanation — why might last week's data be a poor estimate for next year? · Transfer — critique a probability estimate based on a biased sample.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.EXP.10",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "When experimental beats theoretical (loaded dice, real systems)",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 19,
      "id": "PRB.EXP.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "When experimental beats theoretical (loaded dice, real systems): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of When experimental beats theoretical (loaded dice, real systems).",
      "content": "When the real process is not perfectly fair or known, experimental evidence can be more useful than a simple theoretical model.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.EXP.10",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "When experimental beats theoretical (loaded dice, real systems)",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 19,
      "id": "PRB.EXP.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "When experimental beats theoretical (loaded dice, real systems): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for When experimental beats theoretical (loaded dice, real systems).",
      "content": "A die theoretically rolls 6 one-sixth of the time, but if 2,000 rolls show 6 appearing 30% of the time, the die may be weighted.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.EXP.10",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "When experimental beats theoretical (loaded dice, real systems)",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 19,
      "id": "PRB.EXP.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "When experimental beats theoretical (loaded dice, real systems): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer When experimental beats theoretical (loaded dice, real systems) into personal, civic/data, and career contexts.",
      "content": "Personal — test whether a homemade spinner is balanced. · Civic/Data — use real delay records instead of assuming equal chances across days. · Career — rely on machine failure logs instead of an idealized estimate.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.EXP.10",
      "clusterId": "PRB.EXP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "When experimental beats theoretical (loaded dice, real systems)",
      "clusterTitle": "Experimental vs Theoretical (PRB.EXP)",
      "band": "6–8",
      "hardLevel": 19,
      "id": "PRB.EXP.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "When experimental beats theoretical (loaded dice, real systems): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond When experimental beats theoretical (loaded dice, real systems).",
      "content": "Accuracy — 8 items choosing theoretical vs experimental evidence with justification ≥7/8 · Explanation — what kind of evidence suggests the model is wrong? · Transfer — decide whether to trust theory or trial data for an uneven spinner.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.EXV.01",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Average outcome over many plays",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 25,
      "id": "PRB.EXV.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Average outcome over many plays: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Average outcome over many plays.",
      "content": "Expected value is the long-run average outcome over many repetitions, not a promise about one trial.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.EXV.01",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Average outcome over many plays",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 25,
      "id": "PRB.EXV.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Average outcome over many plays: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Average outcome over many plays.",
      "content": "If a game pays $2 half the time and $0 half the time, the average payout over many plays is about $1.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.EXV.01",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Average outcome over many plays",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 25,
      "id": "PRB.EXV.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Average outcome over many plays: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Average outcome over many plays into personal, civic/data, and career contexts.",
      "content": "Personal — interpret average points from a repeated practice drill. · Civic/Data — estimate average wait impact from random delays. · Career — average possible repair costs over many devices.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.EXV.01",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Average outcome over many plays",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 25,
      "id": "PRB.EXV.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Average outcome over many plays: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Average outcome over many plays.",
      "content": "Accuracy — 8 long-run-average interpretation items ≥7/8 · Explanation — why can expected value differ from any single result? · Transfer — explain EV for a prize that pays $10 with probability 0.2.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.EXV.02",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Expected value from a probability table",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 26,
      "id": "PRB.EXV.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Expected value from a probability table: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Expected value from a probability table.",
      "content": "Compute expected value by multiplying each outcome by its probability, then adding the products.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.EXV.02",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Expected value from a probability table",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 26,
      "id": "PRB.EXV.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Expected value from a probability table: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Expected value from a probability table.",
      "content": "Outcomes $0, $5, $10 with probabilities 0.5, 0.3, 0.2 give EV = 0(0.5)+5(0.3)+10(0.2) = $3.50.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.EXV.02",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Expected value from a probability table",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 26,
      "id": "PRB.EXV.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Expected value from a probability table: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Expected value from a probability table into personal, civic/data, and career contexts.",
      "content": "Personal — compute average reward from a points table. · Civic/Data — estimate average fine amount from probability categories. · Career — compute expected warranty cost from repair probabilities.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.EXV.02",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Expected value from a probability table",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 26,
      "id": "PRB.EXV.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Expected value from a probability table: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Expected value from a probability table.",
      "content": "Accuracy — 8 EV table calculations ≥7/8 · Explanation — why do probabilities weight outcomes? · Transfer — compute EV from a three-row outcome table.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.EXV.03",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Fair price of a game",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 27,
      "id": "PRB.EXV.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Fair price of a game: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Fair price of a game.",
      "content": "A fair price equals the expected payout; paying more than EV gives the player a negative expected return.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.EXV.03",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Fair price of a game",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 27,
      "id": "PRB.EXV.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Fair price of a game: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Fair price of a game.",
      "content": "If a game pays $12 with probability 1/4 and $0 otherwise, EV payout is $3. A fair entry price is $3.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.EXV.03",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Fair price of a game",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 27,
      "id": "PRB.EXV.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Fair price of a game: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Fair price of a game into personal, civic/data, and career contexts.",
      "content": "Personal — evaluate a school carnival spinner without promoting gambling. · Civic/Data — price a charity game transparently. · Career — design a promotional prize draw with known average cost.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.EXV.03",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Fair price of a game",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 27,
      "id": "PRB.EXV.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Fair price of a game: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Fair price of a game.",
      "content": "Accuracy — 8 fair-price calculations with ethical framing ≥7/8 · Explanation — what makes a game fair in EV terms? · Transfer — find the fair price for a $20 prize with probability 0.1.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.EXV.04",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "House edge — why casinos profit",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 28,
      "id": "PRB.EXV.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "House edge — why casinos profit: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of House edge — why casinos profit.",
      "content": "A house edge means the expected value favors the organizer over many plays, even though individuals sometimes win.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.EXV.04",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "House edge — why casinos profit",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 28,
      "id": "PRB.EXV.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "House edge — why casinos profit: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for House edge — why casinos profit.",
      "content": "If a game has expected payout $0.90 for a $1 cost, the player's EV is −$0.10 and the organizer's average edge is $0.10 per play.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.EXV.04",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "House edge — why casinos profit",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 28,
      "id": "PRB.EXV.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "House edge — why casinos profit: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer House edge — why casinos profit into personal, civic/data, and career contexts.",
      "content": "Personal — critique \"easy win\" claims in games of chance. · Civic/Data — read a public warning about gambling odds. · Career — analyze a promotion's expected cost without encouraging risky play.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.EXV.04",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "House edge — why casinos profit",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 28,
      "id": "PRB.EXV.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "House edge — why casinos profit: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond House edge — why casinos profit.",
      "content": "Accuracy — 8 house-edge calculations and interpretations ≥7/8 · Explanation — why can a negative-EV game still produce occasional winners? · Transfer — compute player EV when cost is $5 and expected payout is $4.20.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.EXV.05",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Expected value with costs and payoffs",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 29,
      "id": "PRB.EXV.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Expected value with costs and payoffs: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Expected value with costs and payoffs.",
      "content": "Net expected value includes both payoffs and costs; subtract the cost of participating from the expected payout.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.EXV.05",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Expected value with costs and payoffs",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 29,
      "id": "PRB.EXV.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Expected value with costs and payoffs: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Expected value with costs and payoffs.",
      "content": "A $2 ticket has expected payout $1.50, so net EV is −$0.50 per ticket.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.EXV.05",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Expected value with costs and payoffs",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 29,
      "id": "PRB.EXV.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Expected value with costs and payoffs: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Expected value with costs and payoffs into personal, civic/data, and career contexts.",
      "content": "Personal — evaluate a prize draw ticket as entertainment cost, not profit plan. · Civic/Data — estimate average cost of a raffle fundraiser. · Career — calculate expected profit from a warranty option.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.EXV.05",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Expected value with costs and payoffs",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 29,
      "id": "PRB.EXV.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Expected value with costs and payoffs: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Expected value with costs and payoffs.",
      "content": "Accuracy — 8 net-EV items with costs included ≥7/8 · Explanation — why is payout EV not the same as net EV? · Transfer — compute net EV for a $3 entry with expected payout $2.40.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.EXV.06",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Comparing options by expected value",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 30,
      "id": "PRB.EXV.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Comparing options by expected value: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Comparing options by expected value.",
      "content": "Expected value can compare repeated-risk options, but the best EV may not be best for every person's constraints.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.EXV.06",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Comparing options by expected value",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 30,
      "id": "PRB.EXV.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Comparing options by expected value: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Comparing options by expected value.",
      "content": "Option A has EV $12, option B has EV $9. Over many repeats A averages more, but B may have lower downside.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.EXV.06",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Comparing options by expected value",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 30,
      "id": "PRB.EXV.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Comparing options by expected value: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Comparing options by expected value into personal, civic/data, and career contexts.",
      "content": "Personal — compare two reward systems in a game. · Civic/Data — compare policy choices with expected costs. · Career — compare maintenance strategies by expected repair cost.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.EXV.06",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Comparing options by expected value",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 30,
      "id": "PRB.EXV.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Comparing options by expected value: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Comparing options by expected value.",
      "content": "Accuracy — 8 option-comparison EV items ≥7/8 · Explanation — why might someone reject the higher EV option? · Transfer — compare two probability tables and recommend with a caveat.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.EXV.07",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Variance intuition — same EV, different risk",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 31,
      "id": "PRB.EXV.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Variance intuition — same EV, different risk: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Variance intuition — same EV, different risk.",
      "content": "Two options can have the same expected value but very different spread of outcomes, so risk matters alongside average.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.EXV.07",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Variance intuition — same EV, different risk",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 31,
      "id": "PRB.EXV.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Variance intuition — same EV, different risk: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Variance intuition — same EV, different risk.",
      "content": "A guaranteed $5 and a 50% chance of $10 both have EV $5, but the second can return $0 or $10.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.EXV.07",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Variance intuition — same EV, different risk",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 31,
      "id": "PRB.EXV.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Variance intuition — same EV, different risk: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Variance intuition — same EV, different risk into personal, civic/data, and career contexts.",
      "content": "Personal — choose between steady and risky points rewards. · Civic/Data — compare stable vs volatile budget outcomes. · Career — compare two supplier risks with the same average cost.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.EXV.07",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Variance intuition — same EV, different risk",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 31,
      "id": "PRB.EXV.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Variance intuition — same EV, different risk: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Variance intuition — same EV, different risk.",
      "content": "Accuracy — 8 same-EV/different-risk interpretation items ≥7/8 · Explanation — why does average alone hide spread? · Transfer — describe which of two same-EV options is riskier and why.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.EXV.08",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Insurance as negative-EV protection",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 32,
      "id": "PRB.EXV.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Insurance as negative-EV protection: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Insurance as negative-EV protection.",
      "content": "Insurance often has negative expected value financially, but it protects against losses too large to absorb.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.EXV.08",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Insurance as negative-EV protection",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 32,
      "id": "PRB.EXV.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Insurance as negative-EV protection: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Insurance as negative-EV protection.",
      "content": "Paying $100 to avoid a 1% chance of a $5,000 loss has expected loss 0.01×5000 = $50, but the insurance may still be rational because the rare loss is severe.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.EXV.08",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Insurance as negative-EV protection",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 32,
      "id": "PRB.EXV.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Insurance as negative-EV protection: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Insurance as negative-EV protection into personal, civic/data, and career contexts.",
      "content": "Personal — evaluate phone insurance using cost and risk. · Civic/Data — discuss disaster insurance as risk pooling. · Career — weigh warranty cost against rare expensive failure.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.EXV.08",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Insurance as negative-EV protection",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 32,
      "id": "PRB.EXV.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Insurance as negative-EV protection: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Insurance as negative-EV protection.",
      "content": "Accuracy — 8 insurance/risk-pooling items with EV and downside reasoning ≥7/8 · Explanation — why can a negative-EV purchase be sensible? · Transfer — evaluate a simple warranty with stated probability and loss.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.EXV.09",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Lotteries by the numbers",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 33,
      "id": "PRB.EXV.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Lotteries by the numbers: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Lotteries by the numbers.",
      "content": "Lotteries usually have very negative expected value; huge jackpots are paired with extremely small probabilities.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.EXV.09",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Lotteries by the numbers",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 33,
      "id": "PRB.EXV.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Lotteries by the numbers: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Lotteries by the numbers.",
      "content": "A 1-in-1,000,000 chance at $100,000 has payout EV $0.10 before ticket cost; a $2 ticket has net EV −$1.90.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.EXV.09",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Lotteries by the numbers",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 33,
      "id": "PRB.EXV.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Lotteries by the numbers: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Lotteries by the numbers into personal, civic/data, and career contexts.",
      "content": "Personal — critique a \"someone has to win\" argument. · Civic/Data — read public lottery odds honestly. · Career — compare prize-promotion cost from participant perspective and organizer perspective.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.EXV.09",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Lotteries by the numbers",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 33,
      "id": "PRB.EXV.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Lotteries by the numbers: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Lotteries by the numbers.",
      "content": "Accuracy — 8 lottery-odds EV calculations and misconception checks ≥7/8 · Explanation — why does a large prize not guarantee a good expected value? · Transfer — compute net EV for a rare jackpot and state the risk message clearly.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.EXV.10",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "When EV is the wrong lens (ruin, one-shot decisions)",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 34,
      "id": "PRB.EXV.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "When EV is the wrong lens (ruin, one-shot decisions): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of When EV is the wrong lens (ruin, one-shot decisions).",
      "content": "Expected value is limited for one-time decisions, survival constraints, and situations where losing once is unacceptable.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.EXV.10",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "When EV is the wrong lens (ruin, one-shot decisions)",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 34,
      "id": "PRB.EXV.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "When EV is the wrong lens (ruin, one-shot decisions): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for When EV is the wrong lens (ruin, one-shot decisions).",
      "content": "A bet with positive EV but a 40% chance of losing all your savings is not sensible if ruin prevents future play.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.EXV.10",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "When EV is the wrong lens (ruin, one-shot decisions)",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 34,
      "id": "PRB.EXV.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "When EV is the wrong lens (ruin, one-shot decisions): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer When EV is the wrong lens (ruin, one-shot decisions) into personal, civic/data, and career contexts.",
      "content": "Personal — reject a risky choice that could wipe out essential savings. · Civic/Data — weigh rare catastrophic harms beyond average cost. · Career — choose a lower-EV backup plan to avoid business-ending failure.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.EXV.10",
      "clusterId": "PRB.EXV",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "When EV is the wrong lens (ruin, one-shot decisions)",
      "clusterTitle": "Expected Value & Fair Games (PRB.EXV)",
      "band": "8+",
      "hardLevel": 34,
      "id": "PRB.EXV.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "When EV is the wrong lens (ruin, one-shot decisions): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond When EV is the wrong lens (ruin, one-shot decisions).",
      "content": "Accuracy — 8 decision items identifying when EV is insufficient ≥7/8 · Explanation — what does \"ruin\" mean in decision terms? · Transfer — explain why a one-shot medical or safety decision should not rely on EV alone.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.LAN.01",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Impossible to certain — the language of chance",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 0,
      "id": "PRB.LAN.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Impossible to certain — the language of chance: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Impossible to certain — the language of chance.",
      "content": "Chance words describe how likely an event is, from impossible through unlikely, even chance, likely, and certain.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.LAN.01",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Impossible to certain — the language of chance",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 0,
      "id": "PRB.LAN.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Impossible to certain — the language of chance: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Impossible to certain — the language of chance.",
      "content": "\"The sun will rise tomorrow\" is near certain; \"rolling a 7 on one standard die\" is impossible; \"rolling an even number\" is even chance.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.LAN.01",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Impossible to certain — the language of chance",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 0,
      "id": "PRB.LAN.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Impossible to certain — the language of chance: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Impossible to certain — the language of chance into personal, civic/data, and career contexts.",
      "content": "Personal — describe the chance of rain affecting your walk. · Civic/Data — read a council warning that an event is likely to sell out. · Career — a safety officer distinguishes possible, likely, and certain hazards.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.LAN.01",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Impossible to certain — the language of chance",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 0,
      "id": "PRB.LAN.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Impossible to certain — the language of chance: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Impossible to certain — the language of chance.",
      "content": "Accuracy — 8 chance-word ordering items ≥7/8 · Explanation — why is \"possible\" not the same as \"likely\"? · Transfer — classify five new events on the chance scale.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.LAN.02",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "The 0-to-1 probability scale",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 1,
      "id": "PRB.LAN.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "The 0-to-1 probability scale: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of The 0-to-1 probability scale.",
      "content": "Probability can be placed on a scale from 0 to 1, where 0 means impossible and 1 means certain.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.LAN.02",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "The 0-to-1 probability scale",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 1,
      "id": "PRB.LAN.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "The 0-to-1 probability scale: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for The 0-to-1 probability scale.",
      "content": "A probability of 1/2 sits halfway between 0 and 1. A probability of 0.8 is closer to certain than impossible.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.LAN.02",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "The 0-to-1 probability scale",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 1,
      "id": "PRB.LAN.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "The 0-to-1 probability scale: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer The 0-to-1 probability scale into personal, civic/data, and career contexts.",
      "content": "Personal — place weather chances on a 0-to-1 line. · Civic/Data — interpret a risk score shown between 0 and 1. · Career — a technician reads a reliability estimate as 0.95.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.LAN.02",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "The 0-to-1 probability scale",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 1,
      "id": "PRB.LAN.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "The 0-to-1 probability scale: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond The 0-to-1 probability scale.",
      "content": "Accuracy — 8 scale-placement and interpretation items ≥7/8 · Explanation — why can a probability not be greater than 1 for one event? · Transfer — place 0.25, 1/2, and 0.9 on a probability scale.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.LAN.03",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Equally likely outcomes",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 2,
      "id": "PRB.LAN.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Equally likely outcomes: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Equally likely outcomes.",
      "content": "Outcomes are equally likely when each has the same chance of happening; many probability shortcuts depend on this being true.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.LAN.03",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Equally likely outcomes",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 2,
      "id": "PRB.LAN.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Equally likely outcomes: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Equally likely outcomes.",
      "content": "A fair six-sided die has six equally likely outcomes. A spinner with unequal sections does not have equally likely color outcomes.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.LAN.03",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Equally likely outcomes",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 2,
      "id": "PRB.LAN.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Equally likely outcomes: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Equally likely outcomes into personal, civic/data, and career contexts.",
      "content": "Personal — decide whether a coin toss has equally likely results. · Civic/Data — check if survey names drawn from a hat are equally likely. · Career — a quality inspector samples boxes using a fair random method.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.LAN.03",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Equally likely outcomes",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 2,
      "id": "PRB.LAN.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Equally likely outcomes: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Equally likely outcomes.",
      "content": "Accuracy — 8 items identifying equal vs unequal likelihood ≥7/8 · Explanation — why does a larger spinner section have a higher chance? · Transfer — design a spinner with three equally likely colors.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.LAN.04",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Fairness in games and spinners",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 3,
      "id": "PRB.LAN.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Fairness in games and spinners: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Fairness in games and spinners.",
      "content": "A game is fair when players or outcomes have equal chance or equal expected advantage according to the rules.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.LAN.04",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Fairness in games and spinners",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 3,
      "id": "PRB.LAN.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Fairness in games and spinners: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Fairness in games and spinners.",
      "content": "A spinner split into two equal halves gives each player one color, so the color rule is fair. If one color covers 3/4, it favors that player.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.LAN.04",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Fairness in games and spinners",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 3,
      "id": "PRB.LAN.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Fairness in games and spinners: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Fairness in games and spinners into personal, civic/data, and career contexts.",
      "content": "Personal — test whether a board-game spinner gives both players a fair chance. · Civic/Data — discuss fair random selection for a classroom role. · Career — a game designer balances a simple prize spinner.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.LAN.04",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Fairness in games and spinners",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 3,
      "id": "PRB.LAN.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Fairness in games and spinners: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Fairness in games and spinners.",
      "content": "Accuracy — 8 fairness judgments with visual probability evidence ≥7/8 · Explanation — what evidence shows a game favors one side? · Transfer — revise an unfair spinner into a fair one.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.LAN.05",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Listing outcomes systematically",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 4,
      "id": "PRB.LAN.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Listing outcomes systematically: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Listing outcomes systematically.",
      "content": "Listing outcomes in an organized way prevents missing or double-counting possibilities.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.LAN.05",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Listing outcomes systematically",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 4,
      "id": "PRB.LAN.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Listing outcomes systematically: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Listing outcomes systematically.",
      "content": "For a coin and a die, list H1, H2, H3, H4, H5, H6, T1, T2, T3, T4, T5, T6: 12 outcomes.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.LAN.05",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Listing outcomes systematically",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 4,
      "id": "PRB.LAN.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Listing outcomes systematically: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Listing outcomes systematically into personal, civic/data, and career contexts.",
      "content": "Personal — list outfit choices from shirts and hats. · Civic/Data — list possible survey-response combinations. · Career — a tester lists device/browser combinations before checking an app.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.LAN.05",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Listing outcomes systematically",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 4,
      "id": "PRB.LAN.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Listing outcomes systematically: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Listing outcomes systematically.",
      "content": "Accuracy — 8 systematic-listing items using tables or organized lists ≥7/8 · Explanation — how does a table prevent missing outcomes? · Transfer — list all outcomes for two coin tosses.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.LAN.06",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Probability as a fraction",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 5,
      "id": "PRB.LAN.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Probability as a fraction: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Probability as a fraction.",
      "content": "For equally likely outcomes, probability is favorable outcomes divided by total outcomes.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.LAN.06",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Probability as a fraction",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 5,
      "id": "PRB.LAN.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Probability as a fraction: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Probability as a fraction.",
      "content": "A bag has 3 red and 5 blue counters. If each counter is equally likely, P(red) = 3/8.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.LAN.06",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Probability as a fraction",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 5,
      "id": "PRB.LAN.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Probability as a fraction: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Probability as a fraction into personal, civic/data, and career contexts.",
      "content": "Personal — find the chance of drawing your preferred snack from a mixed bag. · Civic/Data — compute chance of selecting one committee member from a group. · Career — a warehouse auditor estimates the chance of sampling a defective item from a known batch.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.LAN.06",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Probability as a fraction",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 5,
      "id": "PRB.LAN.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Probability as a fraction: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Probability as a fraction.",
      "content": "Accuracy — 8 favorable/total probability items ≥7/8 · Explanation — what must be true before using favorable ÷ total? · Transfer — find P(vowel) from letters in a short word.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.LAN.07",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Probability as percent and decimal",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 8,
      "id": "PRB.LAN.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Probability as percent and decimal: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Probability as percent and decimal.",
      "content": "A probability can be written as a fraction, decimal, or percent, all naming the same chance.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.LAN.07",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Probability as percent and decimal",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 8,
      "id": "PRB.LAN.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Probability as percent and decimal: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Probability as percent and decimal.",
      "content": "P(heads) = 1/2 = 0.5 = 50%. P(rolling a 1 on a fair die) = 1/6 ≈ 0.167 ≈ 16.7%.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.LAN.07",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Probability as percent and decimal",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 8,
      "id": "PRB.LAN.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Probability as percent and decimal: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Probability as percent and decimal into personal, civic/data, and career contexts.",
      "content": "Personal — convert a game chance into a percent. · Civic/Data — read a weather chance given as 70%. · Career — express a machine-failure probability as a decimal for software.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.LAN.07",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Probability as percent and decimal",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 8,
      "id": "PRB.LAN.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Probability as percent and decimal: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Probability as percent and decimal.",
      "content": "Accuracy — 8 probability conversion items ≥7/8 · Explanation — why is 0.05 equal to 5%, not 50%? · Transfer — convert 3/20 into decimal and percent probability.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.LAN.08",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Complementary events (it happens or it doesn't)",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 9,
      "id": "PRB.LAN.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Complementary events (it happens or it doesn't): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Complementary events (it happens or it doesn't).",
      "content": "An event and its complement cover all possibilities, so their probabilities add to 1.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.LAN.08",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Complementary events (it happens or it doesn't)",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 9,
      "id": "PRB.LAN.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Complementary events (it happens or it doesn't): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Complementary events (it happens or it doesn't).",
      "content": "If P(rain) = 0.3, then P(no rain) = 0.7 because 1 − 0.3 = 0.7.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.LAN.08",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Complementary events (it happens or it doesn't)",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 9,
      "id": "PRB.LAN.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Complementary events (it happens or it doesn't): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Complementary events (it happens or it doesn't) into personal, civic/data, and career contexts.",
      "content": "Personal — find the chance of not drawing a red card. · Civic/Data — interpret \"70% chance of rain\" as \"30% chance of no rain.\" · Career — a reliability report gives failure chance, and the engineer states success chance.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.LAN.08",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Complementary events (it happens or it doesn't)",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 9,
      "id": "PRB.LAN.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Complementary events (it happens or it doesn't): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Complementary events (it happens or it doesn't).",
      "content": "Accuracy — 8 complement items using fractions, decimals, and percents ≥7/8 · Explanation — why must an event and its complement add to 100%? · Transfer — if P(win) = 2/5, find P(not win).",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.LAN.09",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Comparing chances across events",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 10,
      "id": "PRB.LAN.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Comparing chances across events: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Comparing chances across events.",
      "content": "Chances can be compared by converting to a common form or reasoning from the same probability scale.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.LAN.09",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Comparing chances across events",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 10,
      "id": "PRB.LAN.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Comparing chances across events: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Comparing chances across events.",
      "content": "3/10, 25%, and 0.4 compare as 30%, 25%, and 40%, so 0.4 is most likely.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.LAN.09",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Comparing chances across events",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 10,
      "id": "PRB.LAN.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Comparing chances across events: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Comparing chances across events into personal, civic/data, and career contexts.",
      "content": "Personal — compare winning chances in two school raffles. · Civic/Data — compare weather chances for two days. · Career — compare risk rates from two maintenance options.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.LAN.09",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Comparing chances across events",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 10,
      "id": "PRB.LAN.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Comparing chances across events: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Comparing chances across events.",
      "content": "Accuracy — 8 comparison/ranking items across forms ≥7/8 · Explanation — why is common form useful? · Transfer — rank 0.15, 1/5, and 12%.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.LAN.10",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Chance words in weather and news (\"70% chance of rain\")",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 11,
      "id": "PRB.LAN.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Chance words in weather and news (\"70% chance of rain\"): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Chance words in weather and news (\"70% chance of rain\").",
      "content": "Real-world chance statements need a clear event, time, place, and base; vague probability language can mislead.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.LAN.10",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Chance words in weather and news (\"70% chance of rain\")",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 11,
      "id": "PRB.LAN.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Chance words in weather and news (\"70% chance of rain\"): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Chance words in weather and news (\"70% chance of rain\").",
      "content": "\"70% chance of rain tomorrow\" means rain is likely for the forecast area and period; it does not mean it will rain for 70% of the day everywhere.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.LAN.10",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Chance words in weather and news (\"70% chance of rain\")",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 11,
      "id": "PRB.LAN.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Chance words in weather and news (\"70% chance of rain\"): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Chance words in weather and news (\"70% chance of rain\") into personal, civic/data, and career contexts.",
      "content": "Personal — decide whether to carry a jacket from a forecast. · Civic/Data — interpret a news claim about a \"high chance\" of delays. · Career — communicate operational risk without overstating certainty.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.LAN.10",
      "clusterId": "PRB.LAN",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Chance words in weather and news (\"70% chance of rain\")",
      "clusterTitle": "Chance Language & Scale (PRB.LAN)",
      "band": "3–6",
      "hardLevel": 11,
      "id": "PRB.LAN.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Chance words in weather and news (\"70% chance of rain\"): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Chance words in weather and news (\"70% chance of rain\").",
      "content": "Accuracy — 8 real-world probability statement interpretations ≥7/8 · Explanation — what information is missing from \"there is a 70% chance\"? · Transfer — rewrite a vague chance headline into a precise statement.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.RSK.01",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Absolute vs relative risk (\"doubles your risk\" of what?)",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 35,
      "id": "PRB.RSK.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Absolute vs relative risk (\"doubles your risk\" of what?): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Absolute vs relative risk (\"doubles your risk\" of what?).",
      "content": "Relative risk compares ratios, while absolute risk tells the actual change in probability; both are needed for honest interpretation.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.RSK.01",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Absolute vs relative risk (\"doubles your risk\" of what?)",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 35,
      "id": "PRB.RSK.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Absolute vs relative risk (\"doubles your risk\" of what?): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Absolute vs relative risk (\"doubles your risk\" of what?).",
      "content": "Risk rising from 1 in 1,000 to 2 in 1,000 doubles relatively, but the absolute increase is 1 in 1,000 or 0.1 percentage points.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.RSK.01",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Absolute vs relative risk (\"doubles your risk\" of what?)",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 35,
      "id": "PRB.RSK.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Absolute vs relative risk (\"doubles your risk\" of what?): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Absolute vs relative risk (\"doubles your risk\" of what?) into personal, civic/data, and career contexts.",
      "content": "Personal — interpret a health headline about doubled risk. · Civic/Data — compare policy risk changes in absolute terms. · Career — communicate product failure risk without exaggeration.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.RSK.01",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Absolute vs relative risk (\"doubles your risk\" of what?)",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 35,
      "id": "PRB.RSK.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Absolute vs relative risk (\"doubles your risk\" of what?): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Absolute vs relative risk (\"doubles your risk\" of what?).",
      "content": "Accuracy — 8 absolute/relative risk calculations ≥7/8 · Explanation — why can \"doubles\" sound large when absolute risk is small? · Transfer — interpret a rise from 4% to 6% both ways.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.RSK.02",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Risk per exposure — rates and denominators",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 36,
      "id": "PRB.RSK.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Risk per exposure — rates and denominators: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Risk per exposure — rates and denominators.",
      "content": "Risk rates need a clear denominator: per trip, per year, per user, per hour, or per exposure can tell different stories.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.RSK.02",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Risk per exposure — rates and denominators",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 36,
      "id": "PRB.RSK.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Risk per exposure — rates and denominators: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Risk per exposure — rates and denominators.",
      "content": "10 injuries per 1,000 riders is different from 10 injuries per 1,000 rides if riders take many rides.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.RSK.02",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Risk per exposure — rates and denominators",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 36,
      "id": "PRB.RSK.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Risk per exposure — rates and denominators: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Risk per exposure — rates and denominators into personal, civic/data, and career contexts.",
      "content": "Personal — compare cycling risk per trip vs per year. · Civic/Data — read road-safety rates per kilometre. · Career — compare workplace incidents per worker-hour.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.RSK.02",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Risk per exposure — rates and denominators",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 36,
      "id": "PRB.RSK.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Risk per exposure — rates and denominators: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Risk per exposure — rates and denominators.",
      "content": "Accuracy — 8 risk-rate denominator items ≥7/8 · Explanation — why is the denominator part of the claim? · Transfer — rewrite a vague \"10 cases\" risk claim with a needed denominator.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.RSK.03",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Base rates — why rare things stay rare",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 37,
      "id": "PRB.RSK.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Base rates — why rare things stay rare: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Base rates — why rare things stay rare.",
      "content": "Base rates are the starting frequencies in a population; rare events often remain rare even when a signal increases risk.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.RSK.03",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Base rates — why rare things stay rare",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 37,
      "id": "PRB.RSK.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Base rates — why rare things stay rare: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Base rates — why rare things stay rare.",
      "content": "If a condition affects 1 in 10,000 people, a doubled risk is 2 in 10,000, still rare.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.RSK.03",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Base rates — why rare things stay rare",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 37,
      "id": "PRB.RSK.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "Base rates — why rare things stay rare: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Base rates — why rare things stay rare into personal, civic/data, and career contexts.",
      "content": "Personal — interpret rare side-effect information calmly. · Civic/Data — judge crime or incident headlines against population size. · Career — estimate rare equipment failure across many units.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.RSK.03",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Base rates — why rare things stay rare",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 37,
      "id": "PRB.RSK.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Base rates — why rare things stay rare: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Base rates — why rare things stay rare.",
      "content": "Accuracy — 8 base-rate interpretation items ≥7/8 · Explanation — why does relative change not erase the starting rate? · Transfer — explain a tripled risk from 0.01% to 0.03%.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.RSK.04",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "False positives — testing intuition (informal Bayes)",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 38,
      "id": "PRB.RSK.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "False positives — testing intuition (informal Bayes): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of False positives — testing intuition (informal Bayes).",
      "content": "When a condition is rare, even accurate tests can produce many false positives unless base rates are considered.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.RSK.04",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "False positives — testing intuition (informal Bayes)",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 38,
      "id": "PRB.RSK.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "False positives — testing intuition (informal Bayes): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for False positives — testing intuition (informal Bayes).",
      "content": "In 1,000 people with 1% prevalence, about 10 truly have the condition. A 5% false-positive rate can flag about 50 of the 990 without it, so many positives are false.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.RSK.04",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "False positives — testing intuition (informal Bayes)",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 38,
      "id": "PRB.RSK.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "False positives — testing intuition (informal Bayes): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer False positives — testing intuition (informal Bayes) into personal, civic/data, and career contexts.",
      "content": "Personal — interpret screening results as \"needs follow-up,\" not certainty. · Civic/Data — read public testing reports with prevalence. · Career — evaluate quality alarms in a low-defect factory.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.RSK.04",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "False positives — testing intuition (informal Bayes)",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 38,
      "id": "PRB.RSK.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "False positives — testing intuition (informal Bayes): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond False positives — testing intuition (informal Bayes).",
      "content": "Accuracy — 8 natural-frequency false-positive items ≥7/8 · Explanation — why are counts clearer than only percentages here? · Transfer — build a 1,000-person table for a rare event and test accuracy.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.RSK.05",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Risk framing in headlines",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 39,
      "id": "PRB.RSK.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Risk framing in headlines: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Risk framing in headlines.",
      "content": "Headlines can frame risk to sound larger or smaller by choosing relative risk, absolute risk, counts, or selective denominators.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.RSK.05",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Risk framing in headlines",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 39,
      "id": "PRB.RSK.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Risk framing in headlines: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Risk framing in headlines.",
      "content": "\"Risk jumps 50%\" may mean 2% to 3%, an absolute increase of 1 percentage point. Both are true; only one gives the full picture.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.RSK.05",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Risk framing in headlines",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 39,
      "id": "PRB.RSK.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Risk framing in headlines: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Risk framing in headlines into personal, civic/data, and career contexts.",
      "content": "Personal — evaluate a wellness claim before changing behavior. · Civic/Data — critique a public-safety headline. · Career — rewrite a risk update for customers honestly.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.RSK.05",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Risk framing in headlines",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 39,
      "id": "PRB.RSK.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Risk framing in headlines: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Risk framing in headlines.",
      "content": "Accuracy — 8 headline-framing critiques and rewrites ≥7/8 · Explanation — which number is missing from a relative-risk headline? · Transfer — rewrite a sensational risk headline with absolute and relative figures.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.RSK.06",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Expected cost of waiting vs acting",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 40,
      "id": "PRB.RSK.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Expected cost of waiting vs acting: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Expected cost of waiting vs acting.",
      "content": "Decisions under risk compare expected costs, timing, reversibility, and downside, not just immediate price.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.RSK.06",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Expected cost of waiting vs acting",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 40,
      "id": "PRB.RSK.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Expected cost of waiting vs acting: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Expected cost of waiting vs acting.",
      "content": "Replacing a $60 part now may avoid a 20% chance of a $500 failure. Expected failure cost is $100, so acting now may be sensible.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.RSK.06",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Expected cost of waiting vs acting",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 40,
      "id": "PRB.RSK.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Expected cost of waiting vs acting: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Expected cost of waiting vs acting into personal, civic/data, and career contexts.",
      "content": "Personal — decide whether to repair a cracked phone screen early. · Civic/Data — compare preventive maintenance against likely infrastructure failure. · Career — decide whether to service equipment before peak season.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.RSK.06",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Expected cost of waiting vs acting",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 40,
      "id": "PRB.RSK.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Expected cost of waiting vs acting: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Expected cost of waiting vs acting.",
      "content": "Accuracy — 8 expected-cost decision items with caveats ≥7/8 · Explanation — what non-math factors might affect the decision? · Transfer — compare wait vs act for a simple probability-and-cost scenario.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.RSK.07",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Diversification intuition (don't bet it all)",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 41,
      "id": "PRB.RSK.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Diversification intuition (don't bet it all): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Diversification intuition (don't bet it all).",
      "content": "Diversification spreads risk across independent or partly independent outcomes so one failure is less likely to ruin the whole plan.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.RSK.07",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Diversification intuition (don't bet it all)",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 41,
      "id": "PRB.RSK.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Diversification intuition (don't bet it all): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Diversification intuition (don't bet it all).",
      "content": "Putting all savings into one risky option can fail completely; spreading across several reduces dependence on one outcome.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.RSK.07",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Diversification intuition (don't bet it all)",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 41,
      "id": "PRB.RSK.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Diversification intuition (don't bet it all): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Diversification intuition (don't bet it all) into personal, civic/data, and career contexts.",
      "content": "Personal — diversify study time across topics before an exam. · Civic/Data — spread emergency supplies across locations. · Career — avoid relying on a single supplier for critical parts.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.RSK.07",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Diversification intuition (don't bet it all)",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 41,
      "id": "PRB.RSK.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Diversification intuition (don't bet it all): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Diversification intuition (don't bet it all).",
      "content": "Accuracy — 8 diversification reasoning items without investment advice framing ≥7/8 · Explanation — why does shared dependence reduce diversification benefits? · Transfer — compare one-source and three-source supply risk.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.RSK.08",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Risk matrices — likelihood × impact",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 42,
      "id": "PRB.RSK.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Risk matrices — likelihood × impact: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Risk matrices — likelihood × impact.",
      "content": "A risk matrix organizes decisions by combining likelihood and impact, helping prioritize high-likelihood/high-impact risks first.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.RSK.08",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Risk matrices — likelihood × impact",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 42,
      "id": "PRB.RSK.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Risk matrices — likelihood × impact: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Risk matrices — likelihood × impact.",
      "content": "A low-impact frequent issue may be routine, while a rare catastrophic issue still deserves planning because impact is severe.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.RSK.08",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Risk matrices — likelihood × impact",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 42,
      "id": "PRB.RSK.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Risk matrices — likelihood × impact: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Risk matrices — likelihood × impact into personal, civic/data, and career contexts.",
      "content": "Personal — rank risks before a camping trip. · Civic/Data — prioritize community event risks. · Career — map project risks by likelihood and impact.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.RSK.08",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Risk matrices — likelihood × impact",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 42,
      "id": "PRB.RSK.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Risk matrices — likelihood × impact: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Risk matrices — likelihood × impact.",
      "content": "Accuracy — 8 risk-matrix placement and priority items ≥7/8 · Explanation — why can a rare event still be high priority? · Transfer — place four risks on a likelihood-impact grid.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.RSK.09",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Personal risk decisions (helmets, insurance, passwords)",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 43,
      "id": "PRB.RSK.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Personal risk decisions (helmets, insurance, passwords): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Personal risk decisions (helmets, insurance, passwords).",
      "content": "Personal risk decisions combine probability, severity, cost, habit, and protection; small preventive actions can be worthwhile when downside is large.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.RSK.09",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Personal risk decisions (helmets, insurance, passwords)",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 43,
      "id": "PRB.RSK.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Personal risk decisions (helmets, insurance, passwords): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Personal risk decisions (helmets, insurance, passwords).",
      "content": "A strong password costs little effort and reduces the chance of account compromise with potentially large impact.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.RSK.09",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Personal risk decisions (helmets, insurance, passwords)",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 43,
      "id": "PRB.RSK.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Personal risk decisions (helmets, insurance, passwords): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Personal risk decisions (helmets, insurance, passwords) into personal, civic/data, and career contexts.",
      "content": "Personal — compare helmet use, password strength, and phone backup habits. · Civic/Data — interpret public safety advice using probability and impact. · Career — choose basic workplace controls for common risks.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.RSK.09",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Personal risk decisions (helmets, insurance, passwords)",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 43,
      "id": "PRB.RSK.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Personal risk decisions (helmets, insurance, passwords): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Personal risk decisions (helmets, insurance, passwords).",
      "content": "Accuracy — 8 personal-risk decision analyses with probability/impact/cost language ≥7/8 · Explanation — why is \"low chance\" not enough to ignore a high-impact risk? · Transfer — evaluate a backup, password, or safety choice with a short risk argument.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.RSK.10",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Communicating risk honestly",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 44,
      "id": "PRB.RSK.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Communicating risk honestly: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Communicating risk honestly.",
      "content": "Honest risk communication states the event, population, timeframe, absolute and relative numbers, uncertainty, and practical action without manipulation.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.RSK.10",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Communicating risk honestly",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 44,
      "id": "PRB.RSK.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Communicating risk honestly: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Communicating risk honestly.",
      "content": "Instead of \"risk doubles,\" say \"risk rose from 1 in 1,000 to 2 in 1,000 over one year for this group; the absolute increase is 1 in 1,000.\"",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.RSK.10",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Communicating risk honestly",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 44,
      "id": "PRB.RSK.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Communicating risk honestly: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Communicating risk honestly into personal, civic/data, and career contexts.",
      "content": "Personal — explain a risk to family without fear language. · Civic/Data — write a public notice with clear denominators. · Career — communicate product or safety risk transparently.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.RSK.10",
      "clusterId": "PRB.RSK",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Communicating risk honestly",
      "clusterTitle": "Risk & Decisions (PRB.RSK)",
      "band": "8+",
      "hardLevel": 44,
      "id": "PRB.RSK.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Communicating risk honestly: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Communicating risk honestly.",
      "content": "Accuracy — 8 risk-communication rewrites with event/base/time/action ≥7/8 · Explanation — what makes a risk statement honest and usable? · Transfer — rewrite a vague risk claim into a complete, balanced message.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.SMP.01",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Sample spaces",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 6,
      "id": "PRB.SMP.01.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Sample spaces: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Sample spaces.",
      "content": "A sample space is the complete set of possible outcomes for a chance process.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.SMP.01",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Sample spaces",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 6,
      "id": "PRB.SMP.01.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Sample spaces: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Sample spaces.",
      "content": "Rolling a die has sample space {1, 2, 3, 4, 5, 6}. Tossing a coin twice has {HH, HT, TH, TT}.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.SMP.01",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Sample spaces",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 6,
      "id": "PRB.SMP.01.A3",
      "sequence": 3,
      "type": "application",
      "title": "Sample spaces: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Sample spaces into personal, civic/data, and career contexts.",
      "content": "Personal — list outcomes for choosing a snack and drink. · Civic/Data — list possible survey responses to two yes/no questions. · Career — list test outcomes for pass/fail checks across two machines.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.SMP.01",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Sample spaces",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 6,
      "id": "PRB.SMP.01.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Sample spaces: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Sample spaces.",
      "content": "Accuracy — 8 sample-space construction items ≥7/8 · Explanation — why must a sample space be complete? · Transfer — build the sample space for one coin toss and one spinner with A/B/C.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.SMP.02",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Events as outcome sets",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 7,
      "id": "PRB.SMP.02.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Events as outcome sets: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Events as outcome sets.",
      "content": "An event is a subset of the sample space: the outcomes that count as the thing you are asking about.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.SMP.02",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Events as outcome sets",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 7,
      "id": "PRB.SMP.02.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Events as outcome sets: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Events as outcome sets.",
      "content": "For a die, the event \"even\" is {2, 4, 6}. The event \"greater than 4\" is {5, 6}.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.SMP.02",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Events as outcome sets",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 7,
      "id": "PRB.SMP.02.A3",
      "sequence": 3,
      "type": "application",
      "title": "Events as outcome sets: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Events as outcome sets into personal, civic/data, and career contexts.",
      "content": "Personal — define the event \"draw a red sweet\" from a bag. · Civic/Data — define \"survey respondent is under 18\" from response records. · Career — define \"item fails inspection\" in a sample.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.SMP.02",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Events as outcome sets",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 7,
      "id": "PRB.SMP.02.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Events as outcome sets: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Events as outcome sets.",
      "content": "Accuracy — 8 event-as-set items from sample spaces ≥7/8 · Explanation — how is an event different from one outcome? · Transfer — name the event set for rolling less than 3 on a die.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.SMP.03",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "P(event) = favorable ÷ total (equally likely)",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 8,
      "id": "PRB.SMP.03.A1",
      "sequence": 1,
      "type": "concept",
      "title": "P(event) = favorable ÷ total (equally likely): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of P(event) = favorable ÷ total (equally likely).",
      "content": "When outcomes are equally likely, probability equals the size of the event set divided by the size of the sample space.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.SMP.03",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "P(event) = favorable ÷ total (equally likely)",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 8,
      "id": "PRB.SMP.03.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "P(event) = favorable ÷ total (equally likely): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for P(event) = favorable ÷ total (equally likely).",
      "content": "On a fair die, P(even) = 3 favorable outcomes / 6 total = 1/2.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.SMP.03",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "P(event) = favorable ÷ total (equally likely)",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 8,
      "id": "PRB.SMP.03.A3",
      "sequence": 3,
      "type": "application",
      "title": "P(event) = favorable ÷ total (equally likely): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer P(event) = favorable ÷ total (equally likely) into personal, civic/data, and career contexts.",
      "content": "Personal — calculate chance of drawing a blue marble. · Civic/Data — find probability of selecting a weekend day at random. · Career — compute chance of choosing one product type from a balanced sample.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.SMP.03",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "P(event) = favorable ÷ total (equally likely)",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 8,
      "id": "PRB.SMP.03.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "P(event) = favorable ÷ total (equally likely): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond P(event) = favorable ÷ total (equally likely).",
      "content": "Accuracy — 8 favorable/total calculations ≥7/8 · Explanation — why does equal likelihood matter? · Transfer — find P(consonant) when choosing a random letter from MATH.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.SMP.04",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Probability of \"not\" — complements computed",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 10,
      "id": "PRB.SMP.04.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Probability of \"not\" — complements computed: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Probability of \"not\" — complements computed.",
      "content": "Sometimes it is easier to compute the probability an event does not happen, then subtract from 1.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.SMP.04",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Probability of \"not\" — complements computed",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 10,
      "id": "PRB.SMP.04.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Probability of \"not\" — complements computed: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Probability of \"not\" — complements computed.",
      "content": "In a bag with 2 red and 8 non-red counters, P(not red) = 8/10, so P(red) = 1 − 8/10 = 2/10.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.SMP.04",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Probability of \"not\" — complements computed",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 10,
      "id": "PRB.SMP.04.A3",
      "sequence": 3,
      "type": "application",
      "title": "Probability of \"not\" — complements computed: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Probability of \"not\" — complements computed into personal, civic/data, and career contexts.",
      "content": "Personal — find chance of not picking your least favorite flavor. · Civic/Data — compute chance a randomly chosen day is not a school day. · Career — state machine success chance from failure chance.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.SMP.04",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Probability of \"not\" — complements computed",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 10,
      "id": "PRB.SMP.04.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Probability of \"not\" — complements computed: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Probability of \"not\" — complements computed.",
      "content": "Accuracy — 8 complement calculations using fractions/decimals/percents ≥7/8 · Explanation — when is complement easier than direct counting? · Transfer — use complement to find chance of rolling at least one value not equal to 6 on one die.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.SMP.05",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Mutually exclusive events and addition",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 11,
      "id": "PRB.SMP.05.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Mutually exclusive events and addition: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Mutually exclusive events and addition.",
      "content": "Mutually exclusive events cannot happen at the same time, so their probabilities can be added without overlap.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.SMP.05",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Mutually exclusive events and addition",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 11,
      "id": "PRB.SMP.05.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Mutually exclusive events and addition: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Mutually exclusive events and addition.",
      "content": "Rolling a 1 or 2 on one die: P(1 or 2) = 1/6 + 1/6 = 2/6. Rolling even or greater than 4 overlaps at 6, so simple addition double-counts.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.SMP.05",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Mutually exclusive events and addition",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 11,
      "id": "PRB.SMP.05.A3",
      "sequence": 3,
      "type": "application",
      "title": "Mutually exclusive events and addition: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Mutually exclusive events and addition into personal, civic/data, and career contexts.",
      "content": "Personal — find chance of drawing a red or blue token when tokens have one color. · Civic/Data — combine non-overlapping age groups in a survey. · Career — combine distinct defect categories when no item can be in both.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.SMP.05",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Mutually exclusive events and addition",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 11,
      "id": "PRB.SMP.05.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Mutually exclusive events and addition: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Mutually exclusive events and addition.",
      "content": "Accuracy — 8 mutually-exclusive-or items with overlap checks ≥7/8 · Explanation — why does overlap break simple addition? · Transfer — decide if \"heart or spade\" in a card deck is mutually exclusive.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.SMP.06",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Overlapping events (Venn intuition)",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 12,
      "id": "PRB.SMP.06.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Overlapping events (Venn intuition): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Overlapping events (Venn intuition).",
      "content": "When events overlap, add both probabilities then subtract the overlap once to avoid double-counting.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.SMP.06",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Overlapping events (Venn intuition)",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 12,
      "id": "PRB.SMP.06.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Overlapping events (Venn intuition): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Overlapping events (Venn intuition).",
      "content": "In a class, 12 play soccer, 10 play basketball, and 4 play both. Students playing soccer or basketball = 12 + 10 − 4 = 18.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.SMP.06",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Overlapping events (Venn intuition)",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 12,
      "id": "PRB.SMP.06.A3",
      "sequence": 3,
      "type": "application",
      "title": "Overlapping events (Venn intuition): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Overlapping events (Venn intuition) into personal, civic/data, and career contexts.",
      "content": "Personal — count friends who like pizza or tacos when some like both. · Civic/Data — combine survey groups with overlap. · Career — count customers who used app support or phone support.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.SMP.06",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Overlapping events (Venn intuition)",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 12,
      "id": "PRB.SMP.06.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Overlapping events (Venn intuition): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Overlapping events (Venn intuition).",
      "content": "Accuracy — 8 Venn/counting probability items ≥7/8 · Explanation — what gets double-counted before subtracting the overlap? · Transfer — solve a two-circle overlap problem from counts.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.SMP.07",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Odds vs probability",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 13,
      "id": "PRB.SMP.07.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Odds vs probability: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Odds vs probability.",
      "content": "Probability compares favorable outcomes to total outcomes; odds compare favorable outcomes to unfavorable outcomes.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.SMP.07",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Odds vs probability",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 13,
      "id": "PRB.SMP.07.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Odds vs probability: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Odds vs probability.",
      "content": "With 3 wins and 7 losses possible, probability of win is 3/10, while odds in favor are 3:7.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.SMP.07",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Odds vs probability",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 13,
      "id": "PRB.SMP.07.A3",
      "sequence": 3,
      "type": "application",
      "title": "Odds vs probability: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Odds vs probability into personal, civic/data, and career contexts.",
      "content": "Personal — translate odds in a game without treating gambling as a goal. · Civic/Data — compare odds language in a news article with probability language. · Career — a risk analyst rewrites odds as probability for clarity.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.SMP.07",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Odds vs probability",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 13,
      "id": "PRB.SMP.07.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Odds vs probability: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Odds vs probability.",
      "content": "Accuracy — 8 odds/probability conversion items ≥7/8 · Explanation — why is 3:7 not the same as 3/7 probability? · Transfer — convert odds 2:5 in favor into probability.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.SMP.08",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Geometric probability (areas as chances)",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 14,
      "id": "PRB.SMP.08.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Geometric probability (areas as chances): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Geometric probability (areas as chances).",
      "content": "When a random point is equally likely across a region, probability can be represented by favorable area divided by total area.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.SMP.08",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Geometric probability (areas as chances)",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 14,
      "id": "PRB.SMP.08.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Geometric probability (areas as chances): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Geometric probability (areas as chances).",
      "content": "A target has a shaded region of 20 cm² inside a 100 cm² rectangle, so the chance a random point lands shaded is 20/100 = 20%.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.SMP.08",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Geometric probability (areas as chances)",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 14,
      "id": "PRB.SMP.08.A3",
      "sequence": 3,
      "type": "application",
      "title": "Geometric probability (areas as chances): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Geometric probability (areas as chances) into personal, civic/data, and career contexts.",
      "content": "Personal — estimate chance a dart hits a marked section of a safe practice board. · Civic/Data — read area-based sampling on a map grid. · Career — inspect coverage area of a sensor field.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.SMP.08",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Geometric probability (areas as chances)",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 14,
      "id": "PRB.SMP.08.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Geometric probability (areas as chances): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Geometric probability (areas as chances).",
      "content": "Accuracy — 8 area probability items ≥7/8 · Explanation — why does equal area matter? · Transfer — find the chance of landing in a 9 m² zone inside a 36 m² court.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.SMP.09",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Calibrating intuition — surprising probabilities",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 15,
      "id": "PRB.SMP.09.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Calibrating intuition — surprising probabilities: core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Calibrating intuition — surprising probabilities.",
      "content": "Human intuition often misreads probability; calculation and simulation help check what feels surprising.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.SMP.09",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Calibrating intuition — surprising probabilities",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 15,
      "id": "PRB.SMP.09.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Calibrating intuition — surprising probabilities: worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Calibrating intuition — surprising probabilities.",
      "content": "A 10% chance can happen several times in a run of trials; unlikely does not mean impossible.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.SMP.09",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Calibrating intuition — surprising probabilities",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 15,
      "id": "PRB.SMP.09.A3",
      "sequence": 3,
      "type": "application",
      "title": "Calibrating intuition — surprising probabilities: applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Calibrating intuition — surprising probabilities into personal, civic/data, and career contexts.",
      "content": "Personal — explain why a rare game outcome can still appear. · Civic/Data — interpret a \"one-in-100\" event across many people. · Career — a tester expects occasional failures even at a low defect rate.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.SMP.09",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Calibrating intuition — surprising probabilities",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 15,
      "id": "PRB.SMP.09.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Calibrating intuition — surprising probabilities: mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Calibrating intuition — surprising probabilities.",
      "content": "Accuracy — 8 intuition-check items comparing predicted and calculated chance ≥7/8 · Explanation — why can rare events happen in large groups? · Transfer — explain why someone eventually winning a low-chance raffle is not proof the raffle is rigged.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    },
    {
      "skillId": "PRB.SMP.10",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Misconceptions — gambler's fallacy (intro)",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 16,
      "id": "PRB.SMP.10.A1",
      "sequence": 1,
      "type": "concept",
      "title": "Misconceptions — gambler's fallacy (intro): core concept",
      "sourceField": "core_idea",
      "objective": "Understand the central idea of Misconceptions — gambler's fallacy (intro).",
      "content": "Independent random events do not become \"due\" because of previous outcomes; past results do not force the next fair trial.",
      "evidence": "Learner can restate the idea, name the quantities involved, and identify when the skill applies."
    },
    {
      "skillId": "PRB.SMP.10",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Misconceptions — gambler's fallacy (intro)",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 16,
      "id": "PRB.SMP.10.A2",
      "sequence": 2,
      "type": "worked_example",
      "title": "Misconceptions — gambler's fallacy (intro): worked example",
      "sourceField": "worked_example",
      "objective": "Follow and explain a solved example for Misconceptions — gambler's fallacy (intro).",
      "content": "If a fair coin lands heads five times, the next toss is still 1/2 heads and 1/2 tails. Tails is not due.",
      "evidence": "Learner can reproduce the reasoning in a nearby example without copying the surface numbers."
    },
    {
      "skillId": "PRB.SMP.10",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Misconceptions — gambler's fallacy (intro)",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 16,
      "id": "PRB.SMP.10.A3",
      "sequence": 3,
      "type": "application",
      "title": "Misconceptions — gambler's fallacy (intro): applied scenarios",
      "sourceField": "scenarios",
      "objective": "Transfer Misconceptions — gambler's fallacy (intro) into personal, civic/data, and career contexts.",
      "content": "Personal — correct a friend's claim that a spinner must land blue next. · Civic/Data — challenge a headline that sees patterns in random streaks. · Career — a quality analyst separates random variation from real process drift.",
      "evidence": "Learner can choose the right setup in at least one unfamiliar context and explain the match."
    },
    {
      "skillId": "PRB.SMP.10",
      "clusterId": "PRB.SMP",
      "domain": "PRB",
      "domainName": "Probability & Risk",
      "skillTitle": "Misconceptions — gambler's fallacy (intro)",
      "clusterTitle": "Simple Probability (PRB.SMP)",
      "band": "6–7",
      "hardLevel": 16,
      "id": "PRB.SMP.10.A4",
      "sequence": 4,
      "type": "mastery_gate",
      "title": "Misconceptions — gambler's fallacy (intro): mastery gate",
      "sourceField": "mastery_gate",
      "objective": "Prove readiness to move beyond Misconceptions — gambler's fallacy (intro).",
      "content": "Accuracy — 8 misconception/error-analysis items ≥7/8 · Explanation — why does independence defeat the \"due\" argument? · Transfer — respond to a claim that a die must roll 6 after many non-6 rolls.",
      "evidence": "Learner passes accuracy, explanation, and transfer evidence using fresh questions."
    }
  ]
}
