{
  "version": "1.0.0",
  "title": "Twelve data-reasoning practice exercises",
  "created": "2026-09-14",
  "scope": "Original synthetic examples for self-directed adult, introductory undergraduate and professional data-literacy practice. Arithmetic is tested; educator review and teaching outcomes are not established.",
  "license": {
    "name": "CC BY 4.0",
    "url": "https://creativecommons.org/licenses/by/4.0/",
    "attribution": "Twelve data-reasoning practice exercises, Skills Path / Editorial Desk Media, version 1.0.0 (2026-09-14), CC BY 4.0. Identify any changes.",
    "appliesTo": "Original text, tables and answer keys in the skills-reasoning- manifest and educator package only.",
    "exclusions": "Third-party linked material, trademarks, existing site code, other publications and unrelated downloads."
  },
  "review": {
    "arithmetic": "Recomputed in tests/skills-reasoning.test.mjs; independent reviewer requested.",
    "educatorReview": "Not obtained",
    "teachingUses": 0,
    "adoption": "No evidence available"
  },
  "exercises": [
    {
      "id": "weighted-completion",
      "title": "Combine unequal class sizes",
      "objective": "Use group size to combine completion rates.",
      "prerequisites": [
        "Add, subtract, multiply and divide small numbers.",
        "Read a table; distinguish a count from a rate."
      ],
      "data": {
        "headers": [
          "Group",
          "Completed",
          "Enrolled"
        ],
        "rows": [
          [
            "Small",
            18,
            20
          ],
          [
            "Large",
            54,
            80
          ]
        ],
        "assumptions": [
          "Each learner occurs in exactly one group.",
          "Completion status is known for all 100 learners."
        ]
      },
      "question": "What percentage of all enrolled learners completed? State the numerator and denominator.",
      "variants": {
        "worked": {
          "prompt": "Follow the worked reasoning: What percentage of all enrolled learners completed? State the numerator and denominator.",
          "steps": [
            "Count all completions: 18 + 54 = 72.",
            "Count all enrolled learners: 20 + 80 = 100.",
            "Compute 72 / 100 × 100 = 72%."
          ],
          "answer": "72 percent"
        },
        "partiallySupported": {
          "prompt": "What percentage of all enrolled learners completed? State the numerator and denominator.",
          "hints": [
            "Combine the counts before dividing.",
            "The two classes have different numbers of learners; an equal average of their percentages changes the weighting."
          ]
        },
        "independent": {
          "prompt": "What percentage of all enrolled learners completed? State the numerator and denominator."
        }
      },
      "answer": {
        "value": 72,
        "unit": "percent",
        "explanation": "The population contains 100 learners, so each learner gets equal weight. The group rates, 90% and 67.5%, should not receive equal group weight.",
        "commonWrongAnswers": [
          {
            "value": 78.75,
            "whyWrong": "This is (90 + 67.5) / 2: it gives a group of 20 the same weight as a group of 80."
          }
        ]
      }
    },
    {
      "id": "weighted-cost",
      "title": "Average cost per notebook",
      "objective": "Weight unit costs by quantities.",
      "prerequisites": [
        "Add, subtract, multiply and divide small numbers.",
        "Read a table; distinguish a count from a rate."
      ],
      "data": {
        "headers": [
          "Batch",
          "Notebooks",
          "Cost per notebook (dollars)"
        ],
        "rows": [
          [
            "First",
            10,
            2
          ],
          [
            "Second",
            30,
            4
          ]
        ],
        "assumptions": [
          "All notebooks are interchangeable for this calculation.",
          "Costs include all charges; quantities are fully received."
        ]
      },
      "question": "What is the average cost per notebook across both batches?",
      "variants": {
        "worked": {
          "prompt": "Follow the worked reasoning: What is the average cost per notebook across both batches?",
          "steps": [
            "First batch cost: 10 × 2 = 20 dollars; second batch cost: 30 × 4 = 120 dollars.",
            "Total cost is 140 dollars for 40 notebooks.",
            "140 / 40 = 3.50 dollars per notebook."
          ],
          "answer": "3.5 dollars per notebook"
        },
        "partiallySupported": {
          "prompt": "What is the average cost per notebook across both batches?",
          "hints": [
            "Compute total dollars spent on each batch.",
            "Divide total dollars by total notebooks, not by the number of batches."
          ]
        },
        "independent": {
          "prompt": "What is the average cost per notebook across both batches?"
        }
      },
      "answer": {
        "value": 3.5,
        "unit": "dollars per notebook",
        "explanation": "Each notebook, rather than each purchase event, is the unit being averaged.",
        "commonWrongAnswers": [
          {
            "value": 3,
            "whyWrong": "Averaging the two listed unit prices ignores that three times as many notebooks cost 4 dollars."
          }
        ]
      }
    },
    {
      "id": "duplicate-rows",
      "title": "Count removable exact duplicates",
      "objective": "Distinguish excess rows from every row in a duplicate group.",
      "prerequisites": [
        "Add, subtract, multiply and divide small numbers.",
        "Read a table; distinguish a count from a rate."
      ],
      "data": {
        "headers": [
          "Learner ID",
          "Workshop"
        ],
        "rows": [
          [
            "A",
            "Mapping"
          ],
          [
            "A",
            "Mapping"
          ],
          [
            "B",
            "Charts"
          ],
          [
            "C",
            "Tables"
          ],
          [
            "C",
            "Tables"
          ],
          [
            "C",
            "Tables"
          ]
        ],
        "assumptions": [
          "A duplicate means identical values in both columns.",
          "Keep one copy of each distinct row; no empty values occur."
        ]
      },
      "question": "How many rows are removed when one copy of each distinct row is retained?",
      "variants": {
        "worked": {
          "prompt": "Follow the worked reasoning: How many rows are removed when one copy of each distinct row is retained?",
          "steps": [
            "There are six input rows and three distinct rows: A/Mapping, B/Charts and C/Tables.",
            "The A group removes one excess row; the C group removes two.",
            "Total removed: 1 + 2 = 3 rows."
          ],
          "answer": "3 rows"
        },
        "partiallySupported": {
          "prompt": "How many rows are removed when one copy of each distinct row is retained?",
          "hints": [
            "Count how many copies to retain, not how many rows belong to a repeated group.",
            "For a group containing n identical rows, remove n − 1."
          ]
        },
        "independent": {
          "prompt": "How many rows are removed when one copy of each distinct row is retained?"
        }
      },
      "answer": {
        "value": 3,
        "unit": "rows",
        "explanation": "Five rows belong to duplicate groups, but retaining one from each group means only three are removable.",
        "commonWrongAnswers": [
          {
            "value": 5,
            "whyWrong": "This counts all rows in repeated groups, including the copies that must remain."
          },
          {
            "value": 2,
            "whyWrong": "This counts repeated groups, not excess rows."
          }
        ]
      }
    },
    {
      "id": "duplicate-key-groups",
      "title": "Count repeated identifiers",
      "objective": "Keep repeated keys distinct from identical rows.",
      "prerequisites": [
        "Add, subtract, multiply and divide small numbers.",
        "Read a table; distinguish a count from a rate."
      ],
      "data": {
        "headers": [
          "Record key",
          "State"
        ],
        "rows": [
          [
            "K1",
            "draft"
          ],
          [
            "K1",
            "final"
          ],
          [
            "K2",
            "draft"
          ],
          [
            "K3",
            "draft"
          ],
          [
            "K3",
            "final"
          ],
          [
            "K3",
            "archived"
          ]
        ],
        "assumptions": [
          "A repeated key is any key appearing more than once.",
          "Different states are meaningful; do not remove rows based on the key alone."
        ]
      },
      "question": "How many distinct keys occur more than once?",
      "variants": {
        "worked": {
          "prompt": "Follow the worked reasoning: How many distinct keys occur more than once?",
          "steps": [
            "K1 appears twice, K2 once and K3 three times.",
            "Only K1 and K3 meet the more-than-once condition.",
            "There are two repeated keys; all six full rows are different."
          ],
          "answer": "2 keys"
        },
        "partiallySupported": {
          "prompt": "How many distinct keys occur more than once?",
          "hints": [
            "Group by the first column only.",
            "Count groups whose size exceeds one; do not sum their row counts."
          ]
        },
        "independent": {
          "prompt": "How many distinct keys occur more than once?"
        }
      },
      "answer": {
        "value": 2,
        "unit": "keys",
        "explanation": "Repeated identifiers can signal multiple versions, not accidental copies. This question counts groups and does not authorize deletion.",
        "commonWrongAnswers": [
          {
            "value": 3,
            "whyWrong": "This is the number of excess occurrences if one row per key were retained, a different question."
          },
          {
            "value": 0,
            "whyWrong": "There are no identical full rows, but there are repeated keys."
          }
        ]
      }
    },
    {
      "id": "missing-observed-mean",
      "title": "Average only observed readings",
      "objective": "State the missing-value policy and keep genuine zeros.",
      "prerequisites": [
        "Add, subtract, multiply and divide small numbers.",
        "Read a table; distinguish a count from a rate."
      ],
      "data": {
        "headers": [
          "Record",
          "Reading"
        ],
        "rows": [
          [
            "R1",
            0
          ],
          [
            "R2",
            10
          ],
          [
            "R3",
            null
          ],
          [
            "R4",
            5
          ],
          [
            "R5",
            null
          ]
        ],
        "assumptions": [
          "null means not observed, never zero.",
          "Compute the mean of observed readings only.",
          "No claim is made about the mean of all five underlying true values."
        ]
      },
      "question": "What is the mean of the observed readings, retaining the real zero?",
      "variants": {
        "worked": {
          "prompt": "Follow the worked reasoning: What is the mean of the observed readings, retaining the real zero?",
          "steps": [
            "Observed readings are 0, 10 and 5; the two null entries are excluded.",
            "Their total is 15 and their count is three.",
            "15 / 3 = 5 reading units."
          ],
          "answer": "5 reading units"
        },
        "partiallySupported": {
          "prompt": "What is the mean of the observed readings, retaining the real zero?",
          "hints": [
            "A real zero is a measured value and belongs in the denominator.",
            "Write both the included values and the number of included values."
          ]
        },
        "independent": {
          "prompt": "What is the mean of the observed readings, retaining the real zero?"
        }
      },
      "answer": {
        "value": 5,
        "unit": "reading units",
        "explanation": "The observed mean uses three readings. Treating unknown values as zero invents observations; deleting the genuine zero also changes the question.",
        "commonWrongAnswers": [
          {
            "value": 3,
            "whyWrong": "Dividing 15 by all five records silently treats the missing readings as zero."
          },
          {
            "value": 7.5,
            "whyWrong": "Dropping the real zero leaves only 10 and 5 and overstates the observed mean."
          }
        ]
      }
    },
    {
      "id": "missing-completion-bound",
      "title": "Report a bound with unknown statuses",
      "objective": "Distinguish a lower bound from a completed-data estimate.",
      "prerequisites": [
        "Add, subtract, multiply and divide small numbers.",
        "Read a table; distinguish a count from a rate."
      ],
      "data": {
        "headers": [
          "Learner",
          "Status"
        ],
        "rows": [
          [
            "L1",
            "complete"
          ],
          [
            "L2",
            "complete"
          ],
          [
            "L3",
            "complete"
          ],
          [
            "L4",
            "complete"
          ],
          [
            "L5",
            "complete"
          ],
          [
            "L6",
            "incomplete"
          ],
          [
            "L7",
            "incomplete"
          ],
          [
            "L8",
            null
          ],
          [
            "L9",
            null
          ],
          [
            "L10",
            null
          ]
        ],
        "assumptions": [
          "Every row is a distinct enrolled learner.",
          "null means completion status unknown.",
          "Known statuses are correct; unknown learners may be complete or incomplete."
        ]
      },
      "question": "What is the smallest possible completion percentage among all ten enrolled learners?",
      "variants": {
        "worked": {
          "prompt": "Follow the worked reasoning: What is the smallest possible completion percentage among all ten enrolled learners?",
          "steps": [
            "Five of ten learners are definitely complete.",
            "The minimum occurs if none of the three unknown learners is complete.",
            "5 / 10 × 100 = 50%. The maximum would be 8 / 10 × 100 = 80%."
          ],
          "answer": "50 percent"
        },
        "partiallySupported": {
          "prompt": "What is the smallest possible completion percentage among all ten enrolled learners?",
          "hints": [
            "Use every enrolled learner in the denominator.",
            "A lower bound is a possible minimum, not a claim that unknown statuses are actually incomplete."
          ]
        },
        "independent": {
          "prompt": "What is the smallest possible completion percentage among all ten enrolled learners?"
        }
      },
      "answer": {
        "value": 50,
        "unit": "percent",
        "explanation": "Completion lies between 50% and 80% under these assumptions. The observed-status rate of 5/7 does not identify the whole group's rate.",
        "commonWrongAnswers": [
          {
            "value": 71.428571,
            "whyWrong": "This approximately describes only the seven known statuses, not the minimum among all ten learners."
          },
          {
            "value": 80,
            "whyWrong": "This is the upper bound if all three unknown statuses are complete."
          }
        ]
      }
    },
    {
      "id": "percentage-points",
      "title": "Separate points from relative growth",
      "objective": "Subtract rates when the requested unit is percentage points.",
      "prerequisites": [
        "Add, subtract, multiply and divide small numbers.",
        "Read a table; distinguish a count from a rate."
      ],
      "data": {
        "headers": [
          "Period",
          "Completed",
          "Enrolled"
        ],
        "rows": [
          [
            "Before",
            20,
            100
          ],
          [
            "After",
            25,
            100
          ]
        ],
        "assumptions": [
          "The periods contain comparable groups for this descriptive calculation.",
          "No causal effect is inferred."
        ]
      },
      "question": "How many percentage points did the completion rate increase?",
      "variants": {
        "worked": {
          "prompt": "Follow the worked reasoning: How many percentage points did the completion rate increase?",
          "steps": [
            "The rates are 20 / 100 = 20% and 25 / 100 = 25%.",
            "Subtract the percentages: 25 − 20 = 5.",
            "The increase is 5 percentage points; the relative increase is a different quantity."
          ],
          "answer": "5 percentage points"
        },
        "partiallySupported": {
          "prompt": "How many percentage points did the completion rate increase?",
          "hints": [
            "Express both rates as percentages first.",
            "Use subtraction without dividing by the baseline percentage."
          ]
        },
        "independent": {
          "prompt": "How many percentage points did the completion rate increase?"
        }
      },
      "answer": {
        "value": 5,
        "unit": "percentage points",
        "explanation": "A change from 20% to 25% is 5 percentage points. Its 25% relative increase uses another denominator and unit.",
        "commonWrongAnswers": [
          {
            "value": 25,
            "whyWrong": "This is relative percentage growth, not the percentage-point difference."
          }
        ]
      }
    },
    {
      "id": "relative-change",
      "title": "Find relative growth from a baseline",
      "objective": "Use the original count as the denominator of relative change.",
      "prerequisites": [
        "Add, subtract, multiply and divide small numbers.",
        "Read a table; distinguish a count from a rate."
      ],
      "data": {
        "headers": [
          "Period",
          "Completed projects"
        ],
        "rows": [
          [
            "Before",
            20
          ],
          [
            "After",
            25
          ]
        ],
        "assumptions": [
          "These are counts across equally long periods.",
          "The original count is nonzero."
        ]
      },
      "question": "What is the percentage increase in completed projects relative to the original count?",
      "variants": {
        "worked": {
          "prompt": "Follow the worked reasoning: What is the percentage increase in completed projects relative to the original count?",
          "steps": [
            "The absolute increase is 25 − 20 = 5 projects.",
            "Divide the increase by the original 20 projects: 5 / 20 = 0.25.",
            "Multiply by 100 to express 25% relative growth."
          ],
          "answer": "25 percent"
        },
        "partiallySupported": {
          "prompt": "What is the percentage increase in completed projects relative to the original count?",
          "hints": [
            "Subtract to find the increase in projects.",
            "The baseline is the original period, not the final period."
          ]
        },
        "independent": {
          "prompt": "What is the percentage increase in completed projects relative to the original count?"
        }
      },
      "answer": {
        "value": 25,
        "unit": "percent",
        "explanation": "Relative growth compares the change with the original amount. Counts are not rates, so an absolute increase of five projects is not five percentage points.",
        "commonWrongAnswers": [
          {
            "value": 20,
            "whyWrong": "Dividing the increase by the final 25 uses the wrong baseline."
          },
          {
            "value": 5,
            "whyWrong": "This is the increase in projects, not its percentage relative to the original count."
          }
        ]
      }
    },
    {
      "id": "flag-denominator",
      "title": "Interpret a flagged document",
      "objective": "Use the requested conditional denominator.",
      "prerequisites": [
        "Add, subtract, multiply and divide small numbers.",
        "Read a table; distinguish a count from a rate."
      ],
      "data": {
        "headers": [
          "Actual document state",
          "Flagged",
          "Not flagged"
        ],
        "rows": [
          [
            "Has formatting error",
            8,
            2
          ],
          [
            "No formatting error",
            32,
            58
          ]
        ],
        "assumptions": [
          "All 100 documents were checked and the actual state was verified.",
          "Each document appears in exactly one cell.",
          "This is a synthetic document example, not a model accuracy claim."
        ]
      },
      "question": "Among flagged documents, what percentage actually has a formatting error?",
      "variants": {
        "worked": {
          "prompt": "Follow the worked reasoning: Among flagged documents, what percentage actually has a formatting error?",
          "steps": [
            "There are 8 + 32 = 40 flagged documents.",
            "Eight of those 40 actually have an error.",
            "8 / 40 × 100 = 20%."
          ],
          "answer": "20 percent"
        },
        "partiallySupported": {
          "prompt": "Among flagged documents, what percentage actually has a formatting error?",
          "hints": [
            "The words 'among flagged' determine which column is the denominator.",
            "Count both correct and incorrect flags."
          ]
        },
        "independent": {
          "prompt": "Among flagged documents, what percentage actually has a formatting error?"
        }
      },
      "answer": {
        "value": 20,
        "unit": "percent",
        "explanation": "The 80% rate of flagging erroneous documents (8/10) answers a different conditional question. Both quantities can be true at once.",
        "commonWrongAnswers": [
          {
            "value": 80,
            "whyWrong": "This is the percentage of erroneous documents that were flagged, reversing the condition."
          },
          {
            "value": 8,
            "whyWrong": "This divides by all 100 documents instead of the 40 flagged documents."
          }
        ]
      }
    },
    {
      "id": "median-outlier",
      "title": "Choose the requested middle value",
      "objective": "Compute a median without substituting a mean.",
      "prerequisites": [
        "Add, subtract, multiply and divide small numbers.",
        "Read a table; distinguish a count from a rate."
      ],
      "data": {
        "headers": [
          "Task",
          "Minutes"
        ],
        "rows": [
          [
            "A",
            4
          ],
          [
            "B",
            5
          ],
          [
            "C",
            100
          ],
          [
            "D",
            5
          ],
          [
            "E",
            6
          ]
        ],
        "assumptions": [
          "All five observations are genuine and equally weighted.",
          "The question asks for a median, not a prediction of a future task."
        ]
      },
      "question": "What is the median task duration?",
      "variants": {
        "worked": {
          "prompt": "Follow the worked reasoning: What is the median task duration?",
          "steps": [
            "Order the observations: 4, 5, 5, 6, 100.",
            "With five observations, the third is the middle value.",
            "The median is 5 minutes; the mean is 120 / 5 = 24 minutes."
          ],
          "answer": "5 minutes"
        },
        "partiallySupported": {
          "prompt": "What is the median task duration?",
          "hints": [
            "Sort the values numerically.",
            "Choose the middle position; do not average all values."
          ]
        },
        "independent": {
          "prompt": "What is the median task duration?"
        }
      },
      "answer": {
        "value": 5,
        "unit": "minutes",
        "explanation": "The median is defined by position. The unusually long task affects the mean much more, but it is not automatically an error to delete.",
        "commonWrongAnswers": [
          {
            "value": 24,
            "whyWrong": "This is the arithmetic mean, not the median."
          },
          {
            "value": 100,
            "whyWrong": "This is the middle row of the unsorted display; a median requires ordering the values."
          }
        ]
      }
    },
    {
      "id": "subgroup-weights",
      "title": "Compare with explicit subgroup weights",
      "objective": "Separate an aggregate comparison from an equally weighted subgroup comparison.",
      "prerequisites": [
        "Add, subtract, multiply and divide small numbers.",
        "Read a table; distinguish a count from a rate."
      ],
      "data": {
        "headers": [
          "Method",
          "Difficulty",
          "Successful",
          "Attempted"
        ],
        "rows": [
          [
            "A",
            "Easy",
            9,
            10
          ],
          [
            "A",
            "Hard",
            30,
            100
          ],
          [
            "B",
            "Easy",
            80,
            100
          ],
          [
            "B",
            "Hard",
            2,
            10
          ]
        ],
        "assumptions": [
          "Success means the same outcome in every row.",
          "Compute a descriptive standardized comparison giving Easy and Hard equal 50% weights for each method.",
          "These data do not establish a causal benefit or justify a universal population weighting."
        ]
      },
      "question": "Under equal Easy/Hard weights, how many percentage points higher is method A's success rate than method B's?",
      "variants": {
        "worked": {
          "prompt": "Follow the worked reasoning: Under equal Easy/Hard weights, how many percentage points higher is method A's success rate than method B's?",
          "steps": [
            "Method A subgroup rates: 9/10 = 90% and 30/100 = 30%; their equal-weight average is 60%.",
            "Method B subgroup rates: 80/100 = 80% and 2/10 = 20%; their equal-weight average is 50%.",
            "The standardized difference is 60 − 50 = 10 percentage points. Raw aggregate rates would rank B above A because the subgroup mixes differ."
          ],
          "answer": "10 percentage points"
        },
        "partiallySupported": {
          "prompt": "Under equal Easy/Hard weights, how many percentage points higher is method A's success rate than method B's?",
          "hints": [
            "Compute one rate per method and difficulty.",
            "Use the specified 50/50 weights, not the observed numbers of attempts."
          ]
        },
        "independent": {
          "prompt": "Under equal Easy/Hard weights, how many percentage points higher is method A's success rate than method B's?"
        }
      },
      "answer": {
        "value": 10,
        "unit": "percentage points",
        "explanation": "Equal subgroup weights are a chosen comparison policy. The raw aggregates, 39/110 and 82/110, answer a different question; neither automatically estimates a causal effect.",
        "commonWrongAnswers": [
          {
            "value": -39.090909,
            "whyWrong": "This approximately subtracts raw aggregate rates, ignoring the explicitly requested equal subgroup weights."
          },
          {
            "value": 20,
            "whyWrong": "This adds the two ten-point subgroup advantages instead of averaging them."
          }
        ]
      }
    },
    {
      "id": "overlapping-groups",
      "title": "Count a union once",
      "objective": "Remove the overlap when combining two memberships.",
      "prerequisites": [
        "Add, subtract, multiply and divide small numbers.",
        "Read a table; distinguish a count from a rate."
      ],
      "data": {
        "headers": [
          "Membership",
          "Learners"
        ],
        "rows": [
          [
            "Spreadsheet workshop",
            30
          ],
          [
            "Chart workshop",
            22
          ],
          [
            "Both workshops",
            12
          ]
        ],
        "assumptions": [
          "Counts refer to distinct learners within each workshop.",
          "The twelve learners in both are already included in each of the first two counts.",
          "No other workshops are part of this question."
        ]
      },
      "question": "How many distinct learners attended at least one of the two workshops?",
      "variants": {
        "worked": {
          "prompt": "Follow the worked reasoning: How many distinct learners attended at least one of the two workshops?",
          "steps": [
            "Adding the workshop counts gives 30 + 22 = 52 memberships.",
            "The twelve learners in both were counted twice.",
            "Subtract them once: 52 − 12 = 40 distinct learners."
          ],
          "answer": "40 learners"
        },
        "partiallySupported": {
          "prompt": "How many distinct learners attended at least one of the two workshops?",
          "hints": [
            "A learner attending both contributes one to each workshop count.",
            "For 'at least one', keep the overlapping learners once."
          ]
        },
        "independent": {
          "prompt": "How many distinct learners attended at least one of the two workshops?"
        }
      },
      "answer": {
        "value": 40,
        "unit": "learners",
        "explanation": "The union includes single-workshop and both-workshop learners. Subtracting the intersection twice would count only people who attended exactly one workshop.",
        "commonWrongAnswers": [
          {
            "value": 52,
            "whyWrong": "This counts memberships rather than distinct learners."
          },
          {
            "value": 28,
            "whyWrong": "Subtracting the overlap twice counts exactly one workshop, excluding learners who attended both."
          }
        ]
      }
    }
  ]
}
