Before you upload
Questions and answers
If your question isn't answered here, ask us through the contact page. We reply by email.
About ResitLens
What is ResitLens?
ResitLens is mock triage software for further education colleges in England running GCSE maths resit groups. Upload the marks per question from a mock your group has already sat, and get a plan showing which topics to teach, to which students, in the hours you have.
We don't sell exams, courses or revision content. We help you decide what to prioritise in the time you have. Every ranking is a suggestion until a teacher confirms it.
Who is it for?
Heads of maths and curriculum leads at further education colleges in England who run GCSE maths resit groups, and the teachers who take those groups. It is built around the mocks those groups already sit on real board past papers.
Getting the marks in
What exactly does the marks file need to look like?
A CSV with a header row and one row per student. The first column is the student ID. Every other column is one question part, headed with the question number and part letter as printed on the paper, such as 3, 4a or 12b. Columns headed total, total marks, sum, overall or grade are ignored.
Each cell holds a whole or decimal number of marks. For a question the student did not attempt, leave the cell blank or write ab.
Is there a template I can fill in?
Yes. The upload page has a blank template for each live paper: just the header row, with every column already headed correctly. A filled-in example sits beside it so you can see the layout. Download the template, add one row per student, and upload it.
What do I put in the first column if we cannot use names?
Any pseudonymous ID your college already uses, such as a candidate number or MIS reference, or a code you make up. The rule is: letters, digits, dashes and underscores only, with at least one digit, up to 32 characters, no spaces.
Not a ULN or a UPN: those are national identifiers that follow a student between institutions, and a column headed with either is rejected.
Keep the lookup linking those IDs to your students inside the college. We never ask for it and it is never uploaded, and the upload rejects any file that looks like it contains names.
What makes the upload reject a column?
A heading containing any of these words: name, forename, surname, first name, last name, given, family, pupil, learner, student, candidate, email, DOB, date of birth, birth, postcode, address, phone, mobile, tutor, teacher, ULN, UPN. "Student", "learner" and "candidate" are fine when followed by ID, number, no or ref, so Student ID and Candidate number both work as the ID column's heading.
It also rejects any column after the first that holds text instead of marks, unless it is headed total, total marks, sum, overall or grade, which are ignored. Finally, it rejects any column whose heading is not a question part on the paper, and names that column.
Our spreadsheet has one column per question, not per question part. Can we still use it?
Not against a library paper. The ranking needs to know which part a mark was lost on to work out which topic it belongs to, so a question-level column will be reported as not matching the paper.
Instead, you can use the college-labelled route: supply your own topic list that defines the parts exactly as your sheet records them, and the ranking runs against that. Or ask for the paper to be mapped, and upload part-level marks next time.
Our paper is not in the list. What do we do now?
You have two options. Add the paper to the mapping queue on the paper library page. The queue is public, so you can see where your request stands. Or supply the college's own topic list alongside the marks on the upload page, and the ranking runs against that.
A topic list has one row per question part, giving the marks and a topic name in your own words. It takes well under an hour per paper, you only write it once, and the same group's next mock reuses it.
What do I put for a student who was absent?
A blank cell, or any of ab, abs, absent, x, na, n/a or a dash. These are recorded as not attempted, never as zero, and are not counted. If the student attempted the question and scored nothing, write 0: a dash is read as absent.
My file was rejected and I have fixed what it said. Why is it still rejected?
The error message lists up to ten problem rows or columns, then says how many more there are. Fixing the ten listed leaves the rest. Check the count on the last line of the list, and fix every problem before uploading again.
Can I upload two teaching groups in one file?
No. One upload is one teaching group of up to 400 rows, so each plan covers a group a teacher actually teaches. Split the file and upload each group separately.
How do I get a CSV out of our spreadsheet or MIS?
In Excel or Google Sheets, use Save as or Download and choose CSV. Delete any rows above the header, any totals row at the bottom, and any column holding names, tutor groups or comments before you save.
Your data
Does any student data leave the college?
Marks and the pseudonymous IDs you choose leave the college. Names, dates of birth and contact details never do: the upload rejects any file that contains them. The key linking your IDs to your students stays with you, and we never ask for it.
What exactly do you store?
The marks per question part, the IDs you chose, the college name, and one work address for notices about the upload. We also store the plan and decision record built from the marks, and a note of which version of the terms was accepted.
No page sets cookies, runs an analytics script or makes a third-party request. Our own count of page opens records the path, the event type, the time and, where there is one, the upload ID. Our hosting provider also keeps standard request logs, including IP addresses, for 30 days. The privacy notice has the details.
How long do you keep it, and what happens at the end?
Uploaded marks and the pages built from them are deleted 12 months after upload, or sooner on request.
The uploads, the plans and the records built from them are deleted together when they fall due.
How do we get our data deleted?
Delete a plan yourself from the bottom of its page, or ask us through the contact page. Deletion removes the marks, the plan and the record together, and it happens at once rather than being queued. Our hosting provider then completes deletion from its own systems within its published maximum of 180 days. You can ask us to delete one upload or everything the college has ever sent.
In your message, say which plan: give its link, or the college name if you want everything deleted.
Who is the controller and who is the processor?
For uploaded marks the college is the controller and this service is the processor, acting on the college's instructions under the processor terms accepted at upload.
For a message sent from the contact page, or for outreach we sent you, this service is the controller. The privacy notice covers both.
Can anyone with the plan link see our marks?
Yes. A plan's address is a long random string that cannot be guessed, and search engines never index it, but anyone you forward it to can open it. Treat the link with the same care as the marks.
There is no login and we do not email the link unless you ask, so save it as soon as the page opens. If it is lost, write to us from the work address given at upload and we will send it to that address only, never to another. You can delete a plan yourself from the bottom of its page, or ask us through the contact page.
Do you train any model on what we upload?
No. Uploaded data is never used to train anything, and it is never shared or sold.
Do we need our data protection lead to approve this first?
That is your decision, and most colleges will want to. The privacy notice and the processor terms are written for a data protection officer to read. The answer to the question they usually ask: the data is pseudonymised before it reaches us, and we hold no key to re-identify it.
Reading the plan
What does "marks in play" mean?
The number of marks this group lost on a topic, weighted by how quickly that topic can usually be recovered. Deeper topics count at half weight. It is a count of marks, never of grades, and every row names the weighting used.
Why is the top topic not the one where the group lost the most marks?
Because the recommended order weighs marks lost against how recoverable the topic is. When a verified boundary is on file, it also weighs how close the students who lost those marks are to the grade 4 estimate.
Switch the order to "by marks lost" to see the raw ranking. The rank column keeps the recommended position so you can see where the two disagree.
What is the difference between the two student numbers on a row?
The "students who lost marks" column counts everyone in the group who dropped at least one mark on that topic. The "why here" sentence counts the smaller group who lost half or more of the marks available. The first tells you the reach, the second tells you the depth.
Where does the line come from, and how do I move it?
It comes from two numbers: the hours you have available and the hours you allow per topic session. The number of topics above the line is the first divided by the second, rounded down. Change either and press "Draw the line". Everything below the line stays on the page: the line is where your time runs out, not where the analysis stops.
Are the hours I enter saved?
No. The plan opens at 4 hours each time. The hours you confirm, or the ones you record with a changed plan, are written into the decision record, so the record keeps what you decided.
What does "below grade 4 (estimate)" mean, and how much should I trust it?
It is the gap between a student's total and the grade 4 mark on this paper in a previous series, taken from the board's own published boundary document. The board publishes that figure as a guide only, because grades are awarded on the whole qualification, not on one paper. That is one reason we label it an estimate. The other is that boundaries move every year and are not published until results day.
It is a lens on the ordering and never a filter: no student is removed from any view because of it.
Why is there no grade 4 column on my plan when the sample has one?
Because no verified boundary is on file for your paper. That is the confidence threshold at work: below it, the page shows nothing rather than a number that would be a guess. The assumptions list on the page says so.
What is recoverability, and what if I disagree with it?
A judgement about whether a topic is usually quick or slow to bring back. Slow topics count at half weight. It is an assumption, not a measurement, and every row shows its source. If you disagree, supply your own quick or deep labels in a college topic list, or change the plan and say why.
Can I change the plan?
Yes, that's the point. Tick the topics you'll actually run and give a one-line reason. Both go on the record next to the ranking you overruled.
What is the decision record for?
A dated log of what the marks showed and what you decided, built as you use the plan. Export it as a CSV for a funding audit, or to show senior leaders how the mock data was used.
Does the record carry over to the next mock?
No. Each upload has its own record, and the next mock's plan starts a new one. Export the record from each plan you want to keep.
What is in the CSV exports?
Three files. The group lists: the topics above the line at the hours currently shown, one row per student per topic, with the marks lost and the reason for the topic. The decision record: the date, the event and what happened. The marks: every student's marks per question part, as uploaded, with a blank where a mark was absent.
Some question parts are not showing. Why?
Because the file had no column for them, so no student has a mark for them and they are not counted. They are listed at the top of the plan page so you can judge whether it matters.
What happens when the same group sits another mock?
Upload it using the link at the bottom of the plan. The paper stays fixed to the first mock, and the new plan shows how marks have moved by topic and by student since then. Unmatched IDs are listed, not dropped.
Cost and scope
What does it cost?
Free until 28 February 2027, which covers the November 2026 series and January mocks. Any college, no card, no limit on uploads, nothing to cancel.
A paid college licence starts on 1 March 2027, for the June 2027 series. Its price will be published on this site by 1 December 2026, so a college can budget for it before anyone is asked to pay.
Do you sell exams, courses or content?
We don't sell exams, courses or revision content. We help you decide what to prioritise in the time you have.
Does this replace the free analysis our board gives us?
No, keep using it. It shows you how one mock went. ResitLens tells you what to do next with the hours you have, follows the same group from one mock window to the next, and records what was decided each time.
Which subjects and boards does it cover?
Foundation maths first: AQA 8300 and Edexcel 1MA1. Any other maths paper can be ranked through the college-labelled route, where you supply the topic list. English is not covered yet.
How do we get help if something goes wrong?
Ask us through the contact page. Send the column headings from your file rather than the file itself: we do not need any marks or IDs to diagnose a header row. We reply by email.
Free practice material
We point you to free material and never create content ourselves. These sites publish free practice by topic:
Still stuck?
Send the column headings from your file rather than the file itself. We do not need any marks or IDs to diagnose a header row.