Attendance Register Maker

Build a printable attendance sheet for a class or a club, with names down the side and sessions across the top. The percentage counts only the sessions that actually ran, which is where a hand-kept register usually goes wrong.

How to use it

Paste in your class list, set the date range, and weekends and holidays are shaded out rather than counted.

  1. Paste the names and set the dates A fortnight at a time is about what fits across a sheet of paper. Leave the end date blank and you get one.
  2. Add the closures Write half term and any staff training days in the holidays box. Those columns are shaded and left out of every sum.
  3. Mark it, or print it blank Type one letter in a box and use the arrow keys to move along. The percentages appear beside each name. If you would rather use a pen, just print.
Full instructions

In depth

Tracking who showed up, and dividing by the right number

How to build a printable attendance grid from a class list, what each code means, why the percentage leaves unmarked boxes out of the sum, and the settings that keep the sheet honest over a whole term.

Screenshot: What the percentage is actually divided by
What the percentage is actually divided by as it appears when the page opens.

What the register does

A class register is a grid. Names run down one side and school days run across the top. Each box holds a single letter that says whether a child was there, late, away with permission or away without it. The sum at the end of the row turns that into a percentage.

This tool builds that grid from a pasted name list and a date range. Weekends are shaded out by default. Holidays and closures you add are shaded too. The boxes that remain are the ones the percentage is worked out from.

Teachers use it as the sheet they carry to the playground or hand to a supply teacher. Parents see it at a meeting. A tutor running a small group can print one for the fridge. It is not the statutory record a school has to keep in its own system, but it is the working copy that goes where the official system cannot.

Filling in the panel on the right

Title is a free text field at the top. It defaults to Attendance register, but you can write anything that belongs in the printed header. Class or group prints underneath it, so you can tell one sheet from another when several are pinned to the wall.

Names takes one name per line, or names separated by commas. If two children share the same name the second one is numbered so their marks stay apart. Typing surnames or initials avoids that and keeps the printout easy to read.

From and To set the date range. A fortnight is about what fits across a sheet of paper at a readable size. Leave To blank and you get a fortnight automatically.

Sessions a day offers two choices. One gives a single box per day. Two splits each day into a morning and an afternoon column, which doubles the number of boxes across the page.

Leave weekends out altogether is ticked by default. Unticking it adds Saturday and Sunday columns, which suits a boarding house or a weekend class.

Holidays and closures is a text box for dates. Write each date as a number in the form 2026-10-26, or a range like 2026-10-26 to 2026-10-30. Those columns are shaded and left out of every sum.

Show the attendance column controls whether the percentage appears at the end of each row. Turn it off if you only want the grid. Blank rows at the bottom adds spare lines for anyone who joins mid-term. It starts at two.

The codes and what they count as

The legend prints along the foot of every sheet so nobody has to memorise it. A forward slash or a back slash counts as present. L is late but arrived in time to be marked present. T is an approved trip. E and H are authorised absence. A is unauthorised absence. The hash symbol means there was no session at all.

Present codes add to the top of the fraction. Absence codes add to the bottom but not the top. The hash adds to neither side. That last point matters more than it sounds. Marking a snow day as an absence invents an absence that never happened, and the percentage drops for every child in the room.

How the percentage works

The formula is sessions present divided by sessions that counted, times a hundred. Sessions that counted means every box that has a present or absent code in it. Boxes still empty and boxes marked with a hash are left out of the bottom of that sum.

This protects a half-finished register from looking like a disaster. If you have only filled in Monday and Tuesday, the percentage is based on two days, not five. The foot of the sheet says how many boxes are still unmarked, so you can see at a glance how complete the register is.

An authorised absence still counts as an absence in the percentage. Authorising it changes the paperwork, not the number. A child off ill for two weeks has the same attendance figure as one who was truant, and a parent looking at 85 per cent deserves to know which it was.

Marking the grid, or printing it blank

You can type directly into the boxes on screen. Each box accepts one letter. The arrow keys move you along the row or down the column, which is faster than clicking every cell. The percentages update as you type.

If you prefer pen and paper, print the sheet without entering any marks. The grid comes out with empty boxes, the legend at the foot, and a header with the title, class name and date range. Landscape printing fits more days across the page. A fortnight of two-session days is twenty boxes wide, and portrait squeezes them narrower than a pen nib can handle.

Clear every mark wipes everything you have typed. Download .txt saves a plain text copy of the names and marks. Print sends the sheet to your printer or, if you choose Save as PDF in the print dialog, saves it as a file.

A worked example from start to finish

A Year 4 teacher has 28 children and wants a register for the first two weeks of November. She pastes the names from a spreadsheet, sets From to 2026-11-02 and leaves To blank. The tool adds a fortnight ending 2026-11-13.

Sessions a day is set to Two. Leave weekends out altogether stays ticked. She types 2026-11-06 into the Holidays and closures box because that Friday is a staff training day. The grid now shows eighteen columns: nine school days times two sessions, minus the two sessions on the training day which are shaded.

She prints one copy blank for the wall. On Friday she opens the page again, types the codes into the boxes for the week, and prints a second copy to file. The child who was absent on Wednesday morning and afternoon shows two A marks. The percentage reads 87.5 - that is seven sessions present out of eight that counted, since the training day was not counted.

The next Monday she moves the From date forward a week and the marks she entered the previous week are still there, stored in the browser. She can keep going week by week through the term.

Mistakes that quietly change the numbers

  • Forgetting to mark a closure. Every unmarked box on a closure day is an absence waiting to happen. Add it to the holidays box and the column is shaded and excluded.
  • Using A for a snow day. The hash is the right code. A means someone chose not to come. A closed school is not that.
  • Printing in portrait with two sessions a day. The columns come out too narrow to write in. Switch to landscape or drop to one session a day.
  • Leaving old marks in and changing the date range. The tool stores marks against the name and the date, so sliding the range forward is fine. Changing names or restarting the range can leave stale data behind. Clear every mark resets it.
  • Treating the percentage as a report. It is a live count, not an official figure. The school's own management system is the record that matters.

When a different classroom tool fits better

  • For a simple tick chart with stars or stickers, the Reward Chart Maker gives bigger squares and a goal line.
  • For a chart that arranges children into seats rather than rows of a register, the Seating Chart Maker handles layouts and keep-apart rules.
  • For marking work rather than presence, the Rubric Maker builds a weighted scoring grid.
  • For a quick roll call with no dates or columns, a plain checklist printed from any text editor is simpler than a register.

The names stay on your own device

A class list is personal data, and this tool treats it that way. Names and marks are held in the browser on your own machine. Nothing is sent to a server. There is no account, no upload, and no copy sitting anywhere else.

You can prove it. Load the page, disconnect from the network, paste a name list and press Print. Everything still works. Closing the tab and clearing your browser data is all the cleanup there is. For a school laptop on a locked-down network, that simplicity is a feature rather than a limitation.

Help

What the percentage is actually divided by

Paste in your class list, set the date range, and weekends and holidays are shaded out rather than counted. From there it goes either way: print it blank and fill it in with a pen, or type the codes straight into the boxes and watch each child's figure and the class figure settle as you go.

Paste the names and set the dates

A fortnight at a time is about what fits across a sheet of paper. Leave the end date blank and you get one.

Add the closures

Write half term and any staff training days in the holidays box. Those columns are shaded and left out of every sum.

Mark it, or print it blank

Type one letter in a box and use the arrow keys to move along. The percentages appear beside each name. If you would rather use a pen, just print.

The class list never leaves this device

Names and marks are held in this browser so you can come back tomorrow and carry on, and nowhere else — nothing is uploaded. "Clear every mark" wipes what is stored. A register is a legal record, so keep the school’s own system as the copy that counts and treat this as the sheet you carry around.

Good to know

An authorised absence is still an absence

Authorising it changes the paperwork, not the number. A child off ill for a fortnight has the same attendance figure as one who was off without permission, and a parent shown 92 per cent deserves to know which it was.

Empty boxes are not absences

A session nobody has marked yet is left out of the total rather than counted against the child. The foot of the sheet says how many are still unmarked, so a half-finished register cannot quietly look like a crisis.

The hash is not an absence either

Marking a session # means there was no session — snow, a closure, an inset day. It counts towards neither side, because dividing by it invents absences that never happened.

Print it landscape

A fortnight of two-session days is twenty boxes across. Portrait squeezes them under five millimetres wide, which is narrower than a pen nib is forgiving.

Common questions

How is the attendance percentage worked out?
Sessions present, divided by the sessions that counted, times a hundred. Closed sessions and unmarked boxes are left out of the bottom of that sum.
What do the codes mean?
The legend prints along the foot of every sheet. A forward or back slash is present, L is late but in time, T is an approved trip, E and H are authorised absence, A is unauthorised, and # means there was no session.
Can I keep using it over a whole term?
Marks are stored against the name and the date, so moving the range forward keeps everything you already entered. Print a fortnight at a time.
What if two children have the same name?
The second one is numbered automatically, so their marks stay apart. Type surnames or initials to keep it readable.
Is this an official register?
No. Schools have to keep the statutory record in their own system. This is a working sheet for the classroom wall, the trip, or the cover teacher.