GET READY
Matura testing process
This page describes the testing and submission process. You receive an exam package with a ready-made answer template. Fill it with your model’s answers, then submit the completed answers.json.
- Download the exam package.It includes the questions, separate PNG image files (
.png), andanswers-template.json. - Fill the included answer template.Every question ID is already there. Replace the empty answer strings with your model’s answers. Save as
answers.json. - Submit only
answers.json.Open the submission page and enter your team code there.
This page explains the format. The mock below lets you try it before the final exam.
FILES
Download the exam package
The mock package contains the full May 2023 history Matura: 37 items, 60 points. Question text is in exam.json. Images are separate PNG files (.png) in the images/ folder. Send both the text and the linked image files to your model. No PDF extraction is needed.
exam.json— questions and source text.images/— 19 separate PNG image files (.png), linked from the questions.answers-template.json— your answer sheet, with all question IDs already filled in and blank spaces for answers.README.md— the instructions.
Unzip the package and keep exam.json next to the images folder.
Preparing download…
You do not need to create the answer file from scratch. The template comes with the exam; it contains blank answer fields, not suggested solutions.
OUTPUT CONTRACT
Fill the answer template
Open answers-template.json from the package. Keep exam_id and every id unchanged. Fill only the answer values. Save the completed file as answers.json.
{
"exam_id": "history-2023-mock-v1",
"answers": [
{"id": "1", "answer": "Rozstrzygnięcie: … Uzasadnienie: …"},
{"id": "2.1", "answer": "…"}
]
}Shortened example with placeholders. Your included template already has all 37 entries.
- Write each answer as text, in Polish. Include any justification requested by the question. Follow its
answer_format. - Keep every question. If your model cannot answer, leave
"answer": "". Do not remove the entry. - Put the full essay in answer
"26". Include the chosen topic number and at least 300 words. - Submit answers only. Leave out chat logs and internal reasoning traces. Enter your team code and solution name on the submission page.
Exact file rules and limits
- Keep all 37 IDs exactly once, as strings. Order does not matter.
- Every
answermust be a string, including choices and true/false answers. Do not use numbers, arrays, ornull. - Top level: only
exam_idandanswers. Each entry: onlyidandanswer. - Use UTF-8 JSON, at most 1 MiB. Each answer allows up to 100,000 characters.
- Encode line breaks as
\n. A JSON library handles quotes and escaping. - The values shown in
answer_formatillustrate syntax; they are not solutions.
LIVE FILE VIEW
Explore the actual exam
These are the exact values from the downloadable file. Choose an item to see its text, images, and JSON.
Question
Source text
Expected answer syntax
Syntax examples are not correct answers.
JSON for this question
Full exam.json · all 37 items
Full answers-template.json · all 37 empty answers
INPUT CONTRACT
Exam JSON reference
Fields, image paths, and checksums
Your harness is the code that sends inputs to your model and collects its answers. It can run on a laptop, AWS, Modal, or any other environment.
Exam-level fields
| Field | Type | Meaning |
|---|---|---|
exam_id | string | history-2023-mock-v1. Copy it into the answer file unchanged. |
title, language | string | The paper title and pl for Polish. |
source_exam_id, source_url | string | Original CKE paper identifier and PDF source, for reference. |
input_format | string | separate-text-and-images-v1. |
max_points | number | 60 points for the full paper. |
instructions | string | Instructions that apply to every question. |
items | array | All 37 scored items, including subquestions and the essay. |
Each object inside items
| Field | Type | How to use it |
|---|---|---|
id | string | Question ID, e.g. "2.1". Preserve it exactly. |
group | number | Original question number, e.g. 2 for items 2.1 and 2.2. |
max_points | number | The maximum score for this item. |
question | string | The task. Send the complete text to your model. |
source_text | string | Supporting passages, citations, and tables. Send these too. |
images | array | Every linked image is part of the input. An empty array means no image for this item. |
answer_format | string | Required answer syntax. Examples show formatting, not the solution. |
Images are separate PNG files (.png)
{
"path": "images/Z01.png",
"source_page": 4,
"sha256": "…"
}Resolve path relative to the folder containing exam.json. Load that PNG and send its image content to your model. Sending only the filename does not supply the image.
source_page identifies the original PDF page. sha256 lets you verify the downloaded image bytes. Related questions can share the same image. Maps, diagrams, and labels remain in the PNGs; written sources have text transcriptions where supplied. No PDF extraction is required.
HAND IN
Format feedback, then grading
At the submission link, choose the exam, enter your team code and solution name, and upload your completed answers.json.
Feedback on your file format
We will check that your answers follow the required JSON format and give you feedback. The checks cover the exam ID, required question IDs, duplicates, answer types, and file size. If something is wrong, the feedback will tell you what to fix. Blank answers are allowed.
After a successful submission, keep your receipt. Format checks confirm that we can read your file; correctness is checked during grading.
LLM grading: roughly every 30 minutes
We aim to grade newly submitted answers with LLMs every 30 minutes. Results will be available after each batch finishes.
This schedule may change. If API credits run out, we may switch to grading locally through our subscriptions, so results could take longer.
Final exam
The final exam will have its own download and exam_id. Use its own template when it is released. The mock ID is only for this practice paper.