happytails.ai

Question bank coverage audit

Compare the questions in your bank with the blueprint you intended, objective by objective and difficulty band by band. Gaps, overages and untargeted cells are listed so you know what to write next.

Up to 2,000 rows and 200,000 characters, each cell up to 2,000 characters. Marks and targets have at most two decimal places; question count targets are whole numbers. Everything is computed on your device and nothing is uploaded. Downloads: JSON report, CSV of every cell and a printable HTML matrix. Start with the header row. Target rows leave id empty; question rows give an id and the marks. Up to 200,000 characters. Review the settings before running.

Your result

Report a problem or share an idea.

How to use Question bank coverage audit
  1. Paste a CSV with the header kind,id,objective,band,value.
  2. Add one target row per objective and band, then one question row per question with its marks.
  3. Choose whether to compare marks or the number of questions.
  4. Run the audit, then download the coverage report, the CSV and the printable matrix.

Useful next steps

How coverage is counted

Each question adds its marks, or 1 when counting questions, to the cell for its objective and band. The difference is the actual value minus the target, so a negative difference is a gap and a positive one an overage. Cells with questions but no target are listed as untargeted. This is the table of specifications method described by Notar, Zuelke, Wilson and Yunker, Journal of Instructional Psychology 31(2), 2004, checked 2026-10-16.

Input rules

Target rows use kind target and leave id empty. Question rows use kind question and need a unique id. Objective and band names must match exactly, including letter case. Marks may have at most two decimal places, and a target of 0 is allowed.

Limits

The audit checks counts and marks only. It does not judge whether a question really tests its objective or really belongs in its band.