{
  "audit_metadata": {
    "source_file": "_work_barmodels/chunk_prod_image.json",
    "indices": "512-575",
    "total_questions": 64,
    "question_id_range": "1455-1714",
    "grade_level": "P2",
    "topics": [
      "length/distance (1)",
      "mass/weight — scale reading (12)",
      "money — counting coins/notes (10)",
      "fractions — parts of a whole (12)",
      "time — clock reading (9)",
      "volume — beaker/pail comparison (10)",
      "geometry — equal parts (1)"
    ],
    "audit_date": "2026-06-13",
    "good_count": 59,
    "needs_revision_count": 5
  },

  "results": [
    {
      "index": 512,
      "question_id": 1455,
      "type": 2,
      "topic": "length/distance",
      "verdict": "GOOD",
      "answer": "530",
      "notes": "P2 distance addition word problem (home→fire station→school). Answer 530 m is plausible for addition of two distances shown in diagram. Cannot verify exact values without image, but format and magnitude are consistent with P2 level."
    },
    {
      "index": 513,
      "question_id": 1477,
      "type": 2,
      "topic": "mass — scale reading",
      "verdict": "GOOD",
      "answer": "1",
      "notes": "Direct scale reading, answer 1 kg."
    },
    {
      "index": 514,
      "question_id": 1478,
      "type": 2,
      "topic": "mass — scale reading",
      "verdict": "GOOD",
      "answer": "6",
      "notes": "Box weighs 6 kg. Standard scale-reading question."
    },
    {
      "index": 515,
      "question_id": 1479,
      "type": 2,
      "topic": "mass — scale reading",
      "verdict": "GOOD",
      "answer": "7",
      "notes": "Potatoes weigh 7 kg. Standard scale-reading question."
    },
    {
      "index": 516,
      "question_id": 1480,
      "type": 2,
      "topic": "mass — scale reading",
      "verdict": "GOOD",
      "answer": "9",
      "notes": "Books weigh 9 kg. Standard scale-reading question."
    },
    {
      "index": 517,
      "question_id": 1481,
      "type": 2,
      "topic": "mass — scale reading",
      "verdict": "GOOD",
      "answer": "350",
      "notes": "Scale reading 350 g."
    },
    {
      "index": 518,
      "question_id": 1483,
      "type": 2,
      "topic": "mass — scale reading",
      "verdict": "GOOD",
      "answer": "3",
      "notes": "Paper clip mass 3 g. Realistic mass for a paper clip at P2 level."
    },
    {
      "index": 519,
      "question_id": 1485,
      "type": 2,
      "topic": "mass — scale reading",
      "verdict": "GOOD",
      "answer": "3",
      "notes": "Die mass 3 g."
    },
    {
      "index": 520,
      "question_id": 1486,
      "type": 2,
      "topic": "mass — scale reading",
      "verdict": "GOOD",
      "answer": "5",
      "notes": "Box B mass 5 kg. Image imp2pg117q9.png."
    },
    {
      "index": 521,
      "question_id": 1488,
      "type": 1,
      "topic": "mass — MCQ",
      "verdict": "GOOD",
      "answer": "160",
      "notes": "Bag mass MCQ. Answer 160 g at index 3. correct_index maps correctly to answers[3]."
    },
    {
      "index": 522,
      "question_id": 1489,
      "type": 1,
      "topic": "mass — MCQ",
      "verdict": "GOOD",
      "answer": "3",
      "notes": "Box B mass MCQ. Answer 3 kg at index 2. This is a different box B from index 520 (different question image imp2pg118q3.png). correct_index maps correctly."
    },
    {
      "index": 523,
      "question_id": 1492,
      "type": 2,
      "topic": "mass — scale reading",
      "verdict": "GOOD",
      "answer": "200",
      "notes": "Box C mass 200 g."
    },
    {
      "index": 524,
      "question_id": 1493,
      "type": 2,
      "topic": "mass — scale reading",
      "verdict": "GOOD",
      "answer": "1",
      "notes": "Ball F mass 1 kg."
    },
    {
      "index": 525,
      "question_id": 1494,
      "type": 2,
      "topic": "mass — scale reading",
      "verdict": "GOOD",
      "answer": "3",
      "notes": "Ball H mass 3 kg."
    },
    {
      "index": 526,
      "question_id": 1508,
      "type": 2,
      "topic": "mass — two-blank",
      "verdict": "GOOD",
      "answer": ["12", "6"],
      "notes": "Two blanks: Box G = 12 kg, Box H = 6 kg. correct_index only captures first blank value (12), but both answers are present in the answers array."
    },
    {
      "index": 527,
      "question_id": 1509,
      "type": 2,
      "topic": "money — counting",
      "verdict": "GOOD",
      "answer": "15",
      "notes": "Amount 15 cents. Simple coin counting."
    },
    {
      "index": 528,
      "question_id": 1510,
      "type": 2,
      "topic": "money — counting",
      "verdict": "GOOD",
      "answer": "0.45",
      "notes": "Amount $0.45. Question stem already includes '$' before the input, so answer 0.45 is correctly formatted."
    },
    {
      "index": 529,
      "question_id": 1511,
      "type": 2,
      "topic": "money — counting",
      "verdict": "GOOD",
      "answer": "105",
      "notes": "Amount 105 cents."
    },
    {
      "index": 530,
      "question_id": 1512,
      "type": 2,
      "topic": "money — counting",
      "verdict": "NEEDS_REVISION",
      "answer": "130",
      "issue": "input_step_mismatch",
      "notes": "Question asks for cents (¢) and answer is 130 (cents), but the input tag has step=\"0.01\" which is a dollar increment. The step attribute contradicts the unit in the question text. Should be step=\"1\" for whole-cent input, or the question should ask for dollars."
    },
    {
      "index": 531,
      "question_id": 1513,
      "type": 2,
      "topic": "money — counting",
      "verdict": "NEEDS_REVISION",
      "answer": "27.25",
      "issue": "correct_index_answer_mismatch",
      "notes": "Answer is $27.25 but correct_index is 28. Expected correct_index for answer 27.25 would be 27 (Math.round) or 27 (floor). The value 28 does not match the answer. Possible causes: (a) correct_index was manually entered incorrectly, (b) the answer should be 28.25 or 28.00 not 27.25, or (c) the image shows $28.25 but answer was mistyped. Verify against the scan/image."
    },
    {
      "index": 532,
      "question_id": 1514,
      "type": 2,
      "topic": "money — counting",
      "verdict": "GOOD",
      "answer": "4.70",
      "notes": "Amount $4.70. correct_index=5, Math.round(4.70)=5. Consistent."
    },
    {
      "index": 533,
      "question_id": 1515,
      "type": 2,
      "topic": "money — counting",
      "verdict": "GOOD",
      "answer": "2.90",
      "notes": "Amount $2.90. correct_index=3, Math.round(2.90)=3. Consistent."
    },
    {
      "index": 534,
      "question_id": 1516,
      "type": 2,
      "topic": "money — counting",
      "verdict": "GOOD",
      "answer": "7.05",
      "notes": "Amount $7.05. correct_index=7, Math.round(7.05)=7. Consistent."
    },
    {
      "index": 535,
      "question_id": 1517,
      "type": 2,
      "topic": "money — counting",
      "verdict": "GOOD",
      "answer": "24.60",
      "notes": "Amount $24.60. correct_index=25, Math.round(24.60)=25. Consistent."
    },
    {
      "index": 536,
      "question_id": 1518,
      "type": 2,
      "topic": "money — counting",
      "verdict": "GOOD",
      "answer": "113.25",
      "notes": "Amount $113.25. correct_index=113, Math.round(113.25)=113. Consistent."
    },
    {
      "index": 537,
      "question_id": 1573,
      "type": 1,
      "topic": "money — total",
      "verdict": "GOOD",
      "answer": "$10.65",
      "notes": "Total amount MCQ. Answer $10.65 at index 3. correct_index maps correctly."
    },
    {
      "index": 538,
      "question_id": 1595,
      "type": 2,
      "topic": "fractions — counting parts",
      "verdict": "GOOD",
      "answer": "2",
      "notes": "Rectangle divided into 3 equal parts, 2 parts coloured. Answer 2 is correct for the counting sub-question."
    },
    {
      "index": 539,
      "question_id": 1596,
      "type": 1,
      "topic": "fractions — identifying",
      "verdict": "GOOD",
      "answer": "$$\\frac{2}{3}$$",
      "notes": "Same rectangle (3 equal parts, 2 coloured). Answer 2/3 at index 3. Consistent with index 538. correct_index maps correctly."
    },
    {
      "index": 540,
      "question_id": 1597,
      "type": 1,
      "topic": "fractions — identifying",
      "verdict": "GOOD",
      "answer": "$$\\frac{3}{4}$$",
      "notes": "Circle divided into 8 equal parts. Answer 3/4 (equivalent to 6/8). If 6 of 8 parts are coloured, this is correct. correct_index=1 maps correctly to answers[1]."
    },
    {
      "index": 541,
      "question_id": 1598,
      "type": 1,
      "topic": "fractions — identifying",
      "verdict": "GOOD",
      "answer": "None of the above",
      "notes": "Rectangle divided into 7 equal parts. Answer is 'None of the above' (options were 3/4, 4/3, 4/7). This means the coloured portion is something other than those fractions (e.g. 2/7 or 3/7). Cannot verify exact coloured count without image, but the answer choice is logically valid. correct_index=3 maps correctly."
    },
    {
      "index": 542,
      "question_id": 1599,
      "type": 1,
      "topic": "fractions — identifying",
      "verdict": "GOOD",
      "answer": "$$\\frac{7}{10}$$",
      "notes": "Rectangle divided into 10 equal parts, 7 shaded. Answer 7/10 at index 0. correct_index maps correctly."
    },
    {
      "index": 543,
      "question_id": 1600,
      "type": 1,
      "topic": "fractions — equivalent",
      "verdict": "GOOD",
      "answer": "All of the above",
      "notes": "Triangle divided into 4 equal parts. Answer 'All of the above' (options: 1/2, 2/4). If 2 of 4 parts are coloured, both 1/2 and 2/4 are correct equivalent fractions. correct_index=2 maps correctly."
    },
    {
      "index": 544,
      "question_id": 1609,
      "type": 1,
      "topic": "fractions — complement",
      "verdict": "GOOD",
      "answer": "$$\\frac{3}{5}$$",
      "notes": "Rectangle into 5 parts, asks for portion NOT coloured. Answer 3/5. If 2/5 is coloured, 3/5 is not coloured. Consistent. correct_index=1 maps correctly."
    },
    {
      "index": 545,
      "question_id": 1610,
      "type": 2,
      "topic": "fractions — counting parts",
      "verdict": "GOOD",
      "answer": "5",
      "notes": "Same image as 1611 (imp2pg191q2.png): 5 parts coloured out of 8 total. Consistent with index 546."
    },
    {
      "index": 546,
      "question_id": 1611,
      "type": 2,
      "topic": "fractions — counting parts",
      "verdict": "GOOD",
      "answer": "3",
      "notes": "Same image (imp2pg191q2.png): 3 parts NOT coloured. 8 total minus 5 coloured = 3. Consistent with index 545."
    },
    {
      "index": 547,
      "question_id": 1612,
      "type": 1,
      "topic": "fractions — complement to 1",
      "verdict": "GOOD",
      "answer": "$$\\frac{3}{8}$$",
      "notes": "5/8 + 3/8 = 8/8 = 1 whole. Mathematically correct. correct_index=1 maps correctly."
    },
    {
      "index": 548,
      "question_id": 1614,
      "type": 1,
      "topic": "fractions — complement to 1",
      "verdict": "GOOD",
      "answer": "$$\\frac{7}{10}$$",
      "notes": "7/10 + 3/10 = 10/10 = 1 whole. Mathematically correct. correct_index=0 maps correctly."
    },
    {
      "index": 549,
      "question_id": 1615,
      "type": 2,
      "topic": "fractions — total parts",
      "verdict": "GOOD",
      "answer": "6",
      "notes": "Rectangle divided into 6 equal parts (counting total parts from image imp2pg192q4.png)."
    },
    {
      "index": 550,
      "question_id": 1637,
      "type": 1,
      "topic": "geometry — equal parts",
      "verdict": "GOOD",
      "answer": "C",
      "notes": "Which line cuts shape into equal parts. Answer C at index 2. correct_index maps correctly."
    },
    {
      "index": 551,
      "question_id": 1639,
      "type": 1,
      "topic": "fractions — complement",
      "verdict": "GOOD",
      "answer": "$$\\frac{2}{9}$$",
      "notes": "What fraction is NOT shaded. Answer 2/9. If 7/9 is shaded (option 0), then 2/9 is not shaded. Consistent. correct_index=2 maps correctly."
    },
    {
      "index": 552,
      "question_id": 1640,
      "type": 1,
      "topic": "fractions — figure identification",
      "verdict": "NEEDS_REVISION",
      "answer": "2",
      "issue": "question_text_typo",
      "notes": "Question text reads: 'Which of the following figures shows that \\dfrac{-1}{1} of it is shaded?' The fraction -1/1 (negative one over one) is nonsensical for a shading question. This is almost certainly a typo — likely should be \\dfrac{1}{2}, \\dfrac{1}{3}, or another positive fraction. The answer '2' (figure 2) at correct_index=1 is probably correct for whatever the intended fraction is, but the question text must be fixed."
    },
    {
      "index": 553,
      "question_id": 1663,
      "type": 1,
      "topic": "time — clock reading",
      "verdict": "GOOD",
      "answer": "8.45",
      "notes": "Clock reading MCQ. Answer 8.45 at index 2. correct_index maps correctly."
    },
    {
      "index": 554,
      "question_id": 1664,
      "type": 1,
      "topic": "time — clock reading",
      "verdict": "GOOD",
      "answer": "3.05",
      "notes": "Clock reading MCQ. Answer 3.05 at index 0. correct_index maps correctly."
    },
    {
      "index": 555,
      "question_id": 1666,
      "type": 1,
      "topic": "time — clock reading",
      "verdict": "GOOD",
      "answer": "9.10",
      "notes": "Clock reading MCQ. Answer 9.10 at index 1. correct_index maps correctly."
    },
    {
      "index": 556,
      "question_id": 1667,
      "type": 1,
      "topic": "time — clock reading",
      "verdict": "GOOD",
      "answer": "12.25",
      "notes": "Clock reading MCQ. Answer 12.25 at index 0. correct_index maps correctly."
    },
    {
      "index": 557,
      "question_id": 1674,
      "type": 1,
      "topic": "time — clock reading",
      "verdict": "GOOD",
      "answer": "4.30",
      "notes": "Clock reading MCQ. Answer 4.30 at index 1. correct_index maps correctly."
    },
    {
      "index": 558,
      "question_id": 1675,
      "type": 1,
      "topic": "time — clock reading",
      "verdict": "GOOD",
      "answer": "7.55",
      "notes": "Clock reading MCQ. Answer 7.55 at index 3. correct_index maps correctly."
    },
    {
      "index": 559,
      "question_id": 1693,
      "type": 1,
      "topic": "time — clock reading",
      "verdict": "GOOD",
      "answer": "1.50",
      "notes": "Clock reading MCQ. Answer 1.50 (1:50) at index 1. correct_index maps correctly."
    },
    {
      "index": 560,
      "question_id": 1694,
      "type": 1,
      "topic": "time — clock reading",
      "verdict": "GOOD",
      "answer": "3.30",
      "notes": "Clock reading MCQ. Answer 3.30 at index 1. correct_index maps correctly."
    },
    {
      "index": 561,
      "question_id": 1698,
      "type": 1,
      "topic": "time — word problem",
      "verdict": "GOOD",
      "answer": "7 a.m.",
      "notes": "Bus timing word problem. If watch shows 6:30 a.m. and next bus is half hour later = 7:00 a.m. Answer '7 a.m.' is correct. correct_index=0 maps correctly."
    },
    {
      "index": 562,
      "question_id": 1699,
      "type": 1,
      "topic": "time — word problem",
      "verdict": "GOOD",
      "answer": "2 p.m.",
      "notes": "Watch running 30 min fast. If watch shows 2:30 p.m., actual time = 2:00 p.m. Answer '2 p.m.' is correct. correct_index=1 maps correctly."
    },
    {
      "index": 563,
      "question_id": 1702,
      "type": 2,
      "topic": "time — word problem",
      "verdict": "NEEDS_REVISION",
      "answer": "8",
      "issue": "incomplete_time_format",
      "notes": "Clock is 30 minutes slow; question asks for 'the correct time.' Answer is just '8' (hour only, no minutes). P2 time answers should include minutes for clarity (e.g. '8.00' or '8:00'). If the question specifically asks only for the hour, the question text should state that explicitly. Verify against the image — if the clock shows 7:30, correct time is 8:00 and answer should be '8.00' not '8'."
    },
    {
      "index": 564,
      "question_id": 1703,
      "type": 2,
      "topic": "time — word problem",
      "verdict": "NEEDS_REVISION",
      "answer": "10.3",
      "issue": "ambiguous_time_format",
      "notes": "Clock is 1 hour fast. Answer is '10.3' which is ambiguous — could be 10:03, 10:30, or 10.3 hours. Should be '10.30' to clearly represent 10:30. If the clock shows 11:30 and is 1 hour fast, correct time is 10:30, which should be written as '10.30' or '10:30'."
    },
    {
      "index": 565,
      "question_id": 1704,
      "type": 1,
      "topic": "volume — comparison",
      "verdict": "GOOD",
      "answer": "less than",
      "notes": "Beaker A vs D comparison. Answer 'less than'. Consistent with ordering C < A < D < B derived from all beaker questions using imp2pg213q1.png."
    },
    {
      "index": 566,
      "question_id": 1705,
      "type": 1,
      "topic": "volume — comparison",
      "verdict": "GOOD",
      "answer": "more than",
      "notes": "Beaker B vs C comparison. Answer 'more than'. Consistent with derived ordering B > C."
    },
    {
      "index": 567,
      "question_id": 1706,
      "type": 1,
      "topic": "volume — comparison",
      "verdict": "GOOD",
      "answer": "C",
      "notes": "Which beaker has less water than A. Answer C. Consistent with C < A."
    },
    {
      "index": 568,
      "question_id": 1707,
      "type": 1,
      "topic": "volume — comparison",
      "verdict": "GOOD",
      "answer": "B",
      "notes": "D has less water than which beaker. Answer B. Consistent with D < B."
    },
    {
      "index": 569,
      "question_id": 1708,
      "type": 1,
      "topic": "volume — comparison",
      "verdict": "GOOD",
      "answer": "more water than",
      "notes": "Pail A vs B comparison. Answer 'more water than'. Consistent with pail ordering C > A > B = D."
    },
    {
      "index": 570,
      "question_id": 1709,
      "type": 1,
      "topic": "volume — superlative",
      "verdict": "GOOD",
      "answer": "B",
      "notes": "Beaker with most water. Answer B. Consistent with derived ordering (B is greatest)."
    },
    {
      "index": 571,
      "question_id": 1710,
      "type": 1,
      "topic": "volume — superlative",
      "verdict": "GOOD",
      "answer": "C",
      "notes": "Beaker with least water. Answer C. Consistent with derived ordering (C is least)."
    },
    {
      "index": 572,
      "question_id": 1711,
      "type": 1,
      "topic": "volume — comparison",
      "verdict": "GOOD",
      "answer": "as much water as",
      "notes": "Pail B vs D comparison. Answer 'as much water as'. Consistent with B = D in pail ordering."
    },
    {
      "index": 573,
      "question_id": 1712,
      "type": 1,
      "topic": "volume — superlative",
      "verdict": "GOOD",
      "answer": "C",
      "notes": "Pail with most water. Answer C. Consistent with C being greatest in pail ordering."
    },
    {
      "index": 574,
      "question_id": 1713,
      "type": 2,
      "topic": "volume — difference",
      "verdict": "GOOD",
      "answer": "2",
      "notes": "Pail A has 2 more glasses than Pail D. Consistent with A = D + 2 from pail ordering."
    },
    {
      "index": 575,
      "question_id": 1714,
      "type": 2,
      "topic": "volume — difference",
      "verdict": "GOOD",
      "answer": "5",
      "notes": "Pail B has 5 fewer glasses than Pail C. Consistent with C = B + 5 from pail ordering."
    }
  ],

  "internal_consistency_checks": {
    "beaker_set_imp2pg213q1": {
      "image": "imp2pg213q1.png",
      "questions": ["qid 1704-1707, 1709-1710 (indices 565-568, 570-571)"],
      "derived_ordering": "C < A < D < B (from least to most water)",
      "verified": true,
      "details": "All 6 beaker questions are mutually consistent: C<A (idx567), A<D (idx565), D<B (idx568), B most (idx570), C least (idx571), B>C (idx566)."
    },
    "pail_set_imp2pg214q6": {
      "image": "imp2pg214q6.png",
      "questions": ["qid 1708, 1711-1714 (indices 569, 572-575)"],
      "derived_ordering": "C > A > B = D (from most to least glasses)",
      "verified": true,
      "details": "All 5 pail questions are mutually consistent: A>B (idx569), B=D (idx572), C most (idx573), A has 2 more than D (idx574), B has 5 fewer than C (idx575). Check: C = D+5, A = D+2, so C > A > B=D. All comparisons hold."
    },
    "fraction_set_imp2pg191q2": {
      "image": "imp2pg191q2.png",
      "questions": ["qid 1610-1612 (indices 545-547)"],
      "verified": true,
      "details": "8 equal parts total; 5 coloured, 3 not coloured. 5/8 + 3/8 = 1. All three questions consistent."
    },
    "fraction_set_imp2pg183q2": {
      "image": "imp2pg183q2.png",
      "questions": ["qid 1595-1596 (indices 538-539)"],
      "verified": true,
      "details": "3 equal parts; 2 coloured. FIB answer '2' consistent with MCQ answer '2/3'."
    },
    "correct_index_mcq_validation": {
      "verified": true,
      "details": "All 28 MCQ questions have correct_index values that map within bounds of their respective answers arrays. No out-of-bounds indices."
    }
  },

  "issues_summary": [
    {
      "index": 530,
      "question_id": 1512,
      "severity": "low",
      "issue": "Input step attribute mismatch: step=\"0.01\" on a cents (¢) question with integer answer 130.",
      "recommendation": "Change step to \"1\" for whole-cent input, or convert question to dollar input."
    },
    {
      "index": 531,
      "question_id": 1513,
      "severity": "medium",
      "issue": "correct_index (28) does not match answer value ($27.25). Expected ~27 based on Math.round.",
      "recommendation": "Verify the amount shown in the image imp2pg163q2a.png. If the image shows $27.25, fix correct_index to 27. If the image shows $28.25, fix the answer to 28.25."
    },
    {
      "index": 552,
      "question_id": 1640,
      "severity": "medium",
      "issue": "Question text contains '\\dfrac{-1}{1}' (negative one over one), a clear typo. Should be a positive fraction.",
      "recommendation": "Check the source/scan for the intended fraction (likely 1/2, 1/3, or 1/4 for a P2 shading identification question) and fix the question text."
    },
    {
      "index": 563,
      "question_id": 1702,
      "severity": "low",
      "issue": "Answer is '8' (hour only) for a time question asking for 'the correct time.' Incomplete time format.",
      "recommendation": "If correct time is 8:00, change answer to '8.00'. If the question intentionally asks only for the hour, update question text to specify that."
    },
    {
      "index": 564,
      "question_id": 1703,
      "severity": "medium",
      "issue": "Answer '10.3' is ambiguous. Should be '10.30' to clearly represent 10:30.",
      "recommendation": "Change answer from '10.3' to '10.30'. Verify against the clock image: if clock shows 11:30 and is 1 hour fast, correct time = 10:30."
    }
  ]
}
