> For the complete documentation index, see [llms.txt](https://synap.ac/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://synap.ac/docs/platform/exams/dynamic-exam-selection.md).

# Dynamic exam selection

Dynamic exams create a question paper for each attempt by applying rules to a tagged question bank. They are useful when you have enough questions to give students different but comparable papers.

A dynamic exam is more than “pick some questions at random”. Each rule says which questions can be used and how many Synap should select. The rules can only work while the source quizzes contain enough eligible, correctly tagged questions.

{% hint style="info" %}
Dynamic settings have no effect on static exams.
{% endhint %}

### Explainable selection

Keep each rule simple enough that another administrator can answer: “Which questions qualify, how many are chosen, and what happens if the pool is too small?” Several overlapping rules can select from the same eligible pool, so test the complete blueprint rather than proving each row independently.

After a question or tag update, regenerate test attempts. A rule that worked at publication can later become impossible if eligible questions are removed, retagged or made unavailable.

### Filter rules

A rule describes which questions are eligible and how many to select. Build rules around stable facets such as subject, topic, skill and difficulty.

For every rule, document:

| Check                    | Why it matters                                                                   |
| ------------------------ | -------------------------------------------------------------------------------- |
| Required count           | Defines how many questions the rule contributes                                  |
| Eligible bank size       | A rule cannot create meaningful variation if only the minimum number is eligible |
| Overlap with other rules | The same item may satisfy more than one rule unless the design prevents it       |
| Marks and difficulty     | Equal question counts do not guarantee equivalent papers                         |
| Manual-marking mix       | Different generated papers can create uneven marking workload                    |
| EMQ membership           | Grouped items must remain coherent when selected                                 |

### Restrict variations

Set a maximum number of distinct generated papers, from 1 to 50. This is useful when you want controlled rotation rather than a unique combination for every candidate.

* A low limit simplifies paper review and appeals.
* A high limit reduces repeated exposure but gives you more possible papers to preview and compare.
* A limit of one is not the same as a static exam: the paper is still generated through dynamic rules.

### Shuffling controls

| Setting                          | What it does                                                     | What to check                                                                      |
| -------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| Shuffle all questions            | Mixes questions selected across rules while retaining EMQ groups | Removes visible rule blocks; do not use if rule order communicates section meaning |
| Shuffle filter order per attempt | Randomises the order in which rule blocks are delivered          | Candidates may encounter topics in different sequences                             |
| Default tag set                  | Selects the tag set used by dynamic configuration                | Standardise this before authors build rules                                        |

### Make sure there are enough questions

Leave some spare questions in every eligible pool. If a rule asks for 10 questions and exactly 10 match, every student receives the same 10 and removing just one will prevent Synap from generating the paper.

A practical review includes:

1. count eligible questions for every rule;
2. generate multiple papers and compare total marks, difficulty and manual-marking load;
3. check for duplicate questions or overlapping content;
4. test resits, especially **Prefer unseen questions**;
5. repeat the check after changing the source quizzes or their tags.

### Dynamic exams and resits

| Resit mode              | Dynamic behaviour                                                        |
| ----------------------- | ------------------------------------------------------------------------ |
| Standard                | Generates a new randomised paper                                         |
| Prefer unseen questions | Prioritises questions the candidate has not already seen, where possible |
| Fixed                   | Reuses the previous question set                                         |
| Progressive             | Reuses the previous set and asks only previously incorrect questions     |

Prefer unseen questions depends on bank depth. “Prefer” is not a guarantee where rules cannot be satisfied entirely with unseen content.

{% hint style="warning" %}
Changing tags can change which questions appear in future attempts, even though the exam’s filter rules still look the same. Generate another preview after changing the question bank or its tags.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://synap.ac/docs/platform/exams/dynamic-exam-selection.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
