{
  "paper": {
    "school": "Tao Nan",
    "year": 2022,
    "level": "P1",
    "label": "Review 1",
    "source_prefix": "Tao Nan 2022 P1 Review 1",
    "has_answer_key": true,
    "notes": "20 questions, /20 marks, 2022 Primary 1 Holistic Assessment Mathematics Review 1. Answer key found on PDF pages 11-12 and cross-checked against every question. IMAGE CROPS NOT GENERATED: python/PyMuPDF execution was denied by the sandbox (Bash + PowerShell both refused `python`/`py`), so no q<n>.png files could be rendered. The image_file names below are the intended crops; they still need to be produced once python is permitted. Source PDF saved as paper.pdf in this folder."
  },
  "questions": [
    {
      "n": 1,
      "type_id": 0,
      "question": "Colour 8 bees.",
      "answer0": null, "answer1": null, "answer2": null, "answer3": null,
      "correct_answer": null,
      "skill_id": 1,
      "difficulty_id": 1,
      "explanation": "There are 14 bees in the box. Colour any 8 of them.",
      "hints": ["Count out 8 bees one by one.", "Stop colouring once you reach 8."],
      "source": "Tao Nan 2022 P1 Review 1 Q1",
      "image_needed": true,
      "image_options": false,
      "image_file": "q1.png",
      "notes": "Non-standard (colour task). Answer key shows 8 of the 14 bees coloured; any 8 is acceptable. Counting skill. Image shows 14 bees in two rows. CROP PENDING (python blocked)."
    },
    {
      "n": 2,
      "type_id": 2,
      "question": "The greatest number is [?].",
      "answer0": "20", "answer1": null, "answer2": null, "answer3": null,
      "correct_answer": null,
      "skill_id": 4,
      "difficulty_id": 1,
      "explanation": "Among 11, 19, 20 and 10, the greatest is 20.",
      "hints": ["Compare the tens digit first.", "20 is bigger than 19, 11 and 10."],
      "source": "Tao Nan 2022 P1 Review 1 Q2",
      "image_needed": true,
      "image_options": false,
      "image_file": "q2.png",
      "notes": "Four star shapes hold the numbers 11, 19, 20, 10. Answer key: 20. CROP PENDING (python blocked)."
    },
    {
      "n": 3,
      "type_id": 1,
      "question": "Count and write the number of sweets in words.",
      "answer0": "nine", "answer1": "ten", "answer2": "eight", "answer3": "seven",
      "correct_answer": 0,
      "skill_id": 1,
      "difficulty_id": 1,
      "explanation": "There are 9 sweets in the box, written as nine.",
      "hints": ["Count each sweet once.", "Write the count as a word, not a numeral."],
      "source": "Tao Nan 2022 P1 Review 1 Q3",
      "image_needed": true,
      "image_options": false,
      "image_file": "q3.png",
      "notes": "Word-answer converted to MCQ per spec. Original is a text fill-in (printed prompt 'There are ___ sweets in all.'). Count = 9 sweets; answer key: nine. CROP PENDING (python blocked)."
    },
    {
      "n": 4,
      "type_id": 2,
      "question": "Count and write the correct number of cars. There are [?] cars altogether.",
      "answer0": "12", "answer1": null, "answer2": null, "answer3": null,
      "correct_answer": null,
      "skill_id": 1,
      "difficulty_id": 1,
      "explanation": "There are 12 cars in the box (two rows of 6).",
      "hints": ["Count the top row, then the bottom row.", "6 + 6 = 12."],
      "source": "Tao Nan 2022 P1 Review 1 Q4",
      "image_needed": true,
      "image_options": false,
      "image_file": "q4.png",
      "notes": "Count = 12 cars; answer key: 12. CROP PENDING (python blocked)."
    },
    {
      "n": 5,
      "type_id": 0,
      "question": "Colour the 6th duck.",
      "answer0": null, "answer1": null, "answer2": null, "answer3": null,
      "correct_answer": null,
      "skill_id": 7,
      "difficulty_id": 1,
      "explanation": "Counting from the duck marked 1st, the 6th duck is coloured.",
      "hints": ["Find the duck labelled 1st as the starting point.", "Count 1st, 2nd ... up to the 6th."],
      "source": "Tao Nan 2022 P1 Review 1 Q5",
      "image_needed": true,
      "image_options": false,
      "image_file": "q5.png",
      "notes": "Non-standard (colour, ordinal). Ten ducks in a row; '1st' is marked on the right. Answer key colours the 6th duck (counting from the 1st marker). Ordinal numbers. CROP PENDING (python blocked)."
    },
    {
      "n": 6,
      "type_id": 0,
      "question": "Arrange the numbers in order. Begin with the greatest.",
      "answer0": "19", "answer1": "16", "answer2": "12", "answer3": "2",
      "correct_answer": null,
      "skill_id": 5,
      "difficulty_id": 2,
      "explanation": "Ordering 19, 16, 2, 12 from greatest to smallest gives 19, 16, 12, 2.",
      "hints": ["Greatest goes first.", "Compare two numbers at a time."],
      "source": "Tao Nan 2022 P1 Review 1 Q6",
      "image_needed": true,
      "image_options": false,
      "image_file": "q6.png",
      "notes": "Non-standard ordering: four number cards (19, 16, 2, 12) written into a row of boxes, greatest first. Answer key: 19 / 16 / 12 / 2. answer0..3 hold the ordered sequence. CROP PENDING (python blocked)."
    },
    {
      "n": 7,
      "type_id": 2,
      "question": "4 and [?] make 6.",
      "answer0": "2", "answer1": null, "answer2": null, "answer3": null,
      "correct_answer": null,
      "skill_id": 8,
      "difficulty_id": 1,
      "explanation": "4 + 2 = 6, so the missing part is 2.",
      "hints": ["Think of the number bond of 6.", "6 - 4 = 2."],
      "source": "Tao Nan 2022 P1 Review 1 Q7",
      "image_needed": false,
      "image_options": false,
      "image_file": null,
      "notes": "Answer key: 2."
    },
    {
      "n": 8,
      "type_id": 2,
      "question": "3 less than 5 is [?].",
      "answer0": "2", "answer1": null, "answer2": null, "answer3": null,
      "correct_answer": null,
      "skill_id": 13,
      "difficulty_id": 1,
      "explanation": "5 - 3 = 2.",
      "hints": ["'less than' means subtract.", "Count back 3 from 5."],
      "source": "Tao Nan 2022 P1 Review 1 Q8",
      "image_needed": false,
      "image_options": false,
      "image_file": null,
      "notes": "Answer key: 2."
    },
    {
      "n": 9,
      "type_id": 0,
      "question": "Look at the picture. Circle the second person from the cashier.",
      "answer0": null, "answer1": null, "answer2": null, "answer3": null,
      "correct_answer": null,
      "skill_id": 7,
      "difficulty_id": 2,
      "explanation": "Counting from the cashier, the first person is the one being served and the second person is the next in the queue; circle that person.",
      "hints": ["Find the cashier first.", "The second person is one place behind the first in line."],
      "source": "Tao Nan 2022 P1 Review 1 Q9",
      "image_needed": true,
      "image_options": false,
      "image_file": "q9.png",
      "notes": "Non-standard (circle). Supermarket queue scene; answer key marks the second person from the cashier. Ordinal numbers. CROP PENDING (python blocked)."
    },
    {
      "n": 10,
      "type_id": 2,
      "question": "Complete the number bond. [?]",
      "answer0": "6", "answer1": null, "answer2": null, "answer3": null,
      "correct_answer": null,
      "skill_id": 8,
      "difficulty_id": 1,
      "explanation": "The whole is 8 and one part is 2, so the missing part is 8 - 2 = 6.",
      "hints": ["8 is the whole at the top.", "8 - 2 = 6."],
      "source": "Tao Nan 2022 P1 Review 1 Q10",
      "image_needed": true,
      "image_options": false,
      "image_file": "q10.png",
      "notes": "Number bond: whole = 8, given part = 2, empty part = answer. Answer key: 6. CROP PENDING (python blocked)."
    },
    {
      "n": 11,
      "type_id": 2,
      "question": "10 – 3 = [?]",
      "answer0": "7", "answer1": null, "answer2": null, "answer3": null,
      "correct_answer": null,
      "skill_id": 13,
      "difficulty_id": 1,
      "explanation": "10 - 3 = 7.",
      "hints": ["Cross out 3 of the 10 flowers.", "Count the flowers left."],
      "source": "Tao Nan 2022 P1 Review 1 Q11",
      "image_needed": true,
      "image_options": false,
      "image_file": "q11.png",
      "notes": "10 flowers with 3 crossed out support the equation 10 - 3 = ___. Answer key: 7. Image is supportive but printed inside the figure box, so crop it. CROP PENDING (python blocked)."
    },
    {
      "n": 12,
      "type_id": 0,
      "question": "Colour two numbers that add up to 9.",
      "answer0": "2", "answer1": "7", "answer2": null, "answer3": null,
      "correct_answer": null,
      "skill_id": 11,
      "difficulty_id": 1,
      "explanation": "From 2, 3, 5 and 7, the pair 2 + 7 = 9.",
      "hints": ["Try pairing each number with another.", "2 + 7 = 9."],
      "source": "Tao Nan 2022 P1 Review 1 Q12",
      "image_needed": true,
      "image_options": false,
      "image_file": "q12.png",
      "notes": "Non-standard (colour). Four number boxes: 2, 3, 5, 7. Answer key: 2 and 7. answer0/1 hold the chosen pair. CROP PENDING (python blocked)."
    },
    {
      "n": 13,
      "type_id": 0,
      "question": "Colour the two vans that gives the same answer.",
      "answer0": "5 + 10", "answer1": "6 + 9", "answer2": null, "answer3": null,
      "correct_answer": null,
      "skill_id": 11,
      "difficulty_id": 2,
      "explanation": "5 + 10 = 15 and 6 + 9 = 15, so those two vans match. (4 + 3 = 7, 2 + 4 = 6.)",
      "hints": ["Work out each van's sum.", "Look for two sums that are equal."],
      "source": "Tao Nan 2022 P1 Review 1 Q13",
      "image_needed": true,
      "image_options": false,
      "image_file": "q13.png",
      "notes": "Non-standard (colour). Four vans labelled 4+3, 5+10, 6+9, 2+4. Answer key: 5+10 and 6+9 (both = 15). answer0/1 hold the matching pair. CROP PENDING (python blocked)."
    },
    {
      "n": 14,
      "type_id": 0,
      "question": "Look at the objects. Which object has the shape of a square? Circle this object.",
      "answer0": null, "answer1": null, "answer2": null, "answer3": null,
      "correct_answer": null,
      "skill_id": 26,
      "difficulty_id": 1,
      "explanation": "The square cracker/biscuit is the object shaped like a square; circle it.",
      "hints": ["A square has 4 equal sides.", "Compare each object to a square."],
      "source": "Tao Nan 2022 P1 Review 1 Q14",
      "image_needed": true,
      "image_options": false,
      "image_file": "q14.png",
      "notes": "Non-standard (circle). Four objects: triangular sandwich, kite, square cracker, chocolate bar. Answer key circles the square cracker (bottom-left). CROP PENDING (python blocked)."
    },
    {
      "n": 15,
      "type_id": 1,
      "question": "The figures are grouped according to their [?].",
      "answer0": "size", "answer1": "shape", "answer2": "colour", "answer3": null,
      "correct_answer": 0,
      "skill_id": 26,
      "difficulty_id": 2,
      "explanation": "The left group holds the large shapes and the right group holds the small shapes, so they are grouped by size.",
      "hints": ["Both groups contain a mix of shapes and colours.", "What differs is how big the figures are."],
      "source": "Tao Nan 2022 P1 Review 1 Q15",
      "image_needed": true,
      "image_options": false,
      "image_file": "q15.png",
      "notes": "Printed as a fill-in choosing among 'shape', 'size' or 'colour'; rendered as 3-option MCQ per spec word-answer rule. Answer key: size. Two boxes of figures grouped large vs small. CROP PENDING (python blocked)."
    },
    {
      "n": 16,
      "type_id": 0,
      "question": "The figure is formed by a quarter circle and a half circle. Using a ruler, draw lines to show the 2 shapes.",
      "answer0": null, "answer1": null, "answer2": null, "answer3": null,
      "correct_answer": null,
      "skill_id": 26,
      "difficulty_id": 2,
      "explanation": "Draw the two radii of the missing quarter so the figure splits into a quarter circle and a half circle.",
      "hints": ["A whole circle is 4 quarters.", "Half a circle is 2 quarters; a quarter is 1 quarter."],
      "source": "Tao Nan 2022 P1 Review 1 Q16",
      "image_needed": true,
      "image_options": false,
      "image_file": "q16.png",
      "notes": "Non-standard (draw). Three-quarter-circle figure; answer key draws the two radii splitting it into a half circle and a quarter circle. CROP PENDING (python blocked)."
    },
    {
      "n": 17,
      "type_id": 0,
      "question": "Colour all the triangles.",
      "answer0": null, "answer1": null, "answer2": null, "answer3": null,
      "correct_answer": null,
      "skill_id": 26,
      "difficulty_id": 1,
      "explanation": "There are two triangles in the box (an inverted triangle and a right-angled triangle); colour both.",
      "hints": ["A triangle has 3 sides.", "Ignore the circle, oval, rectangle, square and quarter circle."],
      "source": "Tao Nan 2022 P1 Review 1 Q17",
      "image_needed": true,
      "image_options": false,
      "image_file": "q17.png",
      "notes": "Non-standard (colour). Box of shapes (quarter circle, oval, rectangle, inverted triangle, circle, right-angled triangle, square, circle). Answer key colours the 2 triangles. CROP PENDING (python blocked)."
    },
    {
      "n": 18,
      "type_id": 2,
      "question": "There are 7 children running in the field. 3 of them are girls. How many boys are there? There are [?] boys.",
      "answer0": "4", "answer1": null, "answer2": null, "answer3": null,
      "correct_answer": null,
      "skill_id": 15,
      "difficulty_id": 2,
      "explanation": "7 - 3 = 4 boys.",
      "hints": ["Total children minus girls gives boys.", "7 - 3 = 4."],
      "source": "Tao Nan 2022 P1 Review 1 Q18",
      "image_needed": false,
      "image_options": false,
      "image_file": null,
      "notes": "Answer key: 7 - 3 = 4; there are 4 boys. The printed boxes/circle/equals are a blank number-sentence template (no data), so no image needed."
    },
    {
      "n": 19,
      "type_id": 2,
      "question": "Andrew has 5 erasers. His friend gives him 4 more erasers. How many erasers does Andrew have altogether? Andrew has [?] erasers altogether.",
      "answer0": "9", "answer1": null, "answer2": null, "answer3": null,
      "correct_answer": null,
      "skill_id": 15,
      "difficulty_id": 1,
      "explanation": "5 + 4 = 9 erasers.",
      "hints": ["'more' means add.", "5 + 4 = 9."],
      "source": "Tao Nan 2022 P1 Review 1 Q19",
      "image_needed": false,
      "image_options": false,
      "image_file": null,
      "notes": "Answer key: 5 + 4 = 9; Andrew has 9 erasers. Printed boxes are a blank number-sentence template, no image needed."
    },
    {
      "n": 20,
      "type_id": 2,
      "question": "Dora has 10 stickers. She has 2 more stickers than Beth. How many stickers does Beth have? Beth has [?] stickers.",
      "answer0": "8", "answer1": null, "answer2": null, "answer3": null,
      "correct_answer": null,
      "skill_id": 15,
      "difficulty_id": 2,
      "explanation": "Dora has 2 more than Beth, so Beth has 10 - 2 = 8 stickers.",
      "hints": ["Beth has fewer than Dora.", "10 - 2 = 8."],
      "source": "Tao Nan 2022 P1 Review 1 Q20",
      "image_needed": false,
      "image_options": false,
      "image_file": null,
      "notes": "Answer key: 10 - 2 = 8; Beth has 8 stickers. Printed boxes are a blank number-sentence template, no image needed."
    }
  ]
}
