Most after-school programs, tutoring centres and homework clubs still run on a clipboard by the door: a printed grid with each child's name, an arrival time, a departure time and a signature from whoever collected them. It works, and it has three gaps that show up sooner or later. Nobody can see at a glance who is still in the building. The times are whatever the adult wrote down. And the totals for a term have to be typed up from paper by someone at the end of a long day.
This guide covers the free routes first, then where they break, then a setup that turns the clipboard into rows in a Google Sheet the program controls, with formulas for a live list of who is still here and a daily view of arrival and pickup times.
Written by QR to Sheets, which sells the scanner link described in the second half of this guide, so weigh that accordingly. The paper and Google Forms routes come first, and for a small club they are genuinely enough. Facts about OneTap, brightwheel and Procare were read on each vendor's own pages on 2026-10-08.
What does a QR sign-in and sign-out record, and what does it not?
Start with the boundary, because pickup is a safeguarding question before it is a spreadsheet question. A scan records that a child's card was scanned on the Sign in or Sign out link at a time. That is presence and time. A scan proves a code was presented to the camera; it does not prove who was holding the card.
It does not verify who is authorised to collect a child. It does not check an adult's ID, compare them against an approved list, flag a custody restriction or stop a child leaving with the wrong person. That job belongs to your program's own pickup policy, and staff carry it out before they scan anything:
- An authorised pickup list for each child, kept where the member of staff at the door can see it, and updated when a family tells you something has changed.
- A rule for adults staff do not recognise, such as photo ID checked against the list, or a phone call to the parent before the child leaves.
- Whatever your licensing body, school or insurer requires for release of a child. Their rules decide this, not the tool you record it in.
- Somewhere to record who collected the child if your policy needs it. A scan row holds the card ID, the time and the link, not the adult's name, so keep a pickup column on paper or a short form if you need one.
Can a paper sheet or a free Google Form do this?
Yes, and for a small group they are the right answer. The paper sign-in and sign-out sheet costs nothing, needs no signal and gives you a signature. A Google Form is the free digital version: a form with the child's name and a choice of Sign in or Sign out, opened from a QR poster by the door, with each submission landing as a timestamped row in a linked spreadsheet. Google Forms timestamps are real dates, which makes the formulas later in this guide slightly simpler.
Both start to break once the group grows past a dozen or so children, in predictable places:
- Pickup is the busiest five minutes of the day. A parent holding a toddler and a book bag types a name on a phone, and the queue backs up into the corridor.
- Typed names do not match. Ana, Anna and ana lopez are three spellings of one child, so a formula that compares the form with your list misses her until someone tidies the sheet.
- It is self-reported. A form can be submitted from the car park, or for a sibling who is not there, and every response looks identical.
- It needs signal on the parent's phone. A submission attempted with no signal fails, and the parent walks off assuming it worked.
- Neither tells you who is still in the building without someone counting. Paper has to be read line by line; a form needs a formula, which the sections below provide and which work on form responses too.
- Younger children cannot use a form themselves, so an adult does every entry either way.
How does the scanned version work?
The change is direction. Instead of each parent filling something in, one member of staff at the door scans a card for each child. The card holds a short ID, never the name, so a card left on the bus reveals nothing. The free QR code ID card maker turns a pasted list of names and IDs into printable cards in the browser, with no signup.
In QR to Sheets you connect the program's Google Sheet once, then create two scanner links, named Sign in and Sign out, both writing to the same tab, here called Log. Each scan adds one row: the scan time in column A, the card's ID in column B, and the link in column C. Column C is the scanner_email column, and for a scanner link it holds link: followed by the link's name, so the rows read link:Sign in and link:Sign out rather than the bare words. The formulas below match on those exact values. Columns D, E and F hold the workspace name, the device type and a scan ID.
- The time is written as text in the form YYYY-MM-DD HH:MM:SS, in the timezone set for your workspace, so 3:02 pm at the door reads 2026-10-08 15:02:40. Set the timezone in Settings before the first day, and set the spreadsheet's own time zone under File, Settings to the same zone.
- Because the time is text, it sorts correctly but is not a date until converted. The formulas below either match the date part of the text or convert it with VALUE().
- If the Log tab was empty when scanning started, the first scan is in row 1. Type the six column names, scanned_at, qr_value, scanner_email, organization, device_type and scan_id, into row 1 before the first day, so every formula can start at row 2.
Who scans, and on which phone?
Staff scan. Children never open the link, and parents do not use their own phones on it. Each phone that scans counts as one device. Free covers one phone; Premium is $7 per phone per month. People being scanned never open the link and need nothing.
- One staff phone at the door is one device even though it uses both links. Open both links in the same browser on that phone and switch between them; a link opened in another app or a private tab counts as a new device.
- A tablet on a stand at the door works the same way and stays one device however many children it scans. Running a shared check-in tablet covers the practical side.
- The free plan allows one active scanner link, so it can run one direction only. That is enough to try the setup for a week; sign-in and sign-out together need the paid plan, which for one door phone is 7 USD a month.
- The free plan's 300 scans are in total, not per month. Twenty children scanned once a day on one link use them in three school weeks; scanned in and out on the paid plan, the scan count is unlimited.
- A forgotten or damaged card is not a problem: the scanner has a manual entry field, so staff type the ID and the row is written the same way.
If the signal drops, the open scanner keeps saving scans on the phone and sends them when the signal is back, each with its original scan time. Those rows can land lower in the sheet than later scans, which is why the formulas below look at the time in each row rather than at row order.
Repeats are recorded, not refused. Repeat detection works per link, so a Sign out scan after a Sign in scan is not a repeat. If a card is scanned twice on the same link within 12 hours, the phone shows an amber notice and the second row is saved anyway; the formulas below count each child once. Keep the link's Accept duplicate scans setting on. Switched off, a link records each code once, ever, and would refuse every child's sign-in from the second day.
How do I see which children are still here?
This is the list that matters at the end of the day, and the one a clipboard cannot give you. Keep three tabs: Roster, with the ID in column A and the name in column B; Log, where the scans land; and Today, with the date in cell B1. Put =TODAY() in B1 for a live view, or type a date to look back at another day. Type Still here in H2 of the Today tab, then in H3:
- Still here: =IFERROR(FILTER(Roster!A2:B, Roster!A2:A<>"", COUNTIFS(Log!B:B, Roster!A2:A, Log!C:C, "link:Sign in", Log!A:A, TEXT($B$1,"yyyy-mm-dd")&"*")>0, COUNTIFS(Log!B:B, Roster!A2:A, Log!C:C, "link:Sign out", Log!A:A, TEXT($B$1,"yyyy-mm-dd")&"*")=0), "Everyone has signed out")
- It lists the ID and name of every child with a Sign in scan on that date and no Sign out scan, and shows Everyone has signed out when the list is empty.
- TEXT($B$1,"yyyy-mm-dd")&"*" builds a pattern such as 2026-10-08*, which matches every text timestamp from that day. Google's COUNTIF help confirms that * matches zero or more characters in a criterion.
- A child scanned twice on Sign in still appears once, because the formula asks whether any sign-in exists, not how many.
- One limit: a child who signs out and comes back the same day shows as gone. That is rare after school; if it happens in your program, read that child's rows in the Log.
If you collect sign-ins with a Google Form instead, the same idea works, but the form's timestamps are real dates, so the date test changes. The guide to finding who is absent has the Google Form version of each formula, a list of children who have not arrived yet, and a present and absent grid across dates.
A daily view of arrival and pickup times
On the same Today tab, to the left of the still-here list, a per-child view answers the questions parents and coordinators actually ask: what time did she arrive, when was she collected, is anyone unaccounted for. Put the headers ID, Name, Signed in, Signed out, Status and Hours in A3 to F3, list every child in A4 with =FILTER(Roster!A2:B, Roster!A2:A<>""), then add these in row 4 and fill them down as far as the list goes:
- Signed in, in C4: =IFERROR(MIN(FILTER(VALUE(Log!$A$2:$A), Log!$B$2:$B=$A4, Log!$C$2:$C="link:Sign in", LEFT(Log!$A$2:$A,10)=TEXT($B$1,"yyyy-mm-dd"))), "")
- Signed out, in D4: =IFERROR(MAX(FILTER(VALUE(Log!$A$2:$A), Log!$B$2:$B=$A4, Log!$C$2:$C="link:Sign out", LEFT(Log!$A$2:$A,10)=TEXT($B$1,"yyyy-mm-dd"))), "")
- Status, in E4: =IF(AND(C4="", D4=""), "Not here today", IF(C4="", "Check: sign-out with no sign-in", IF(D4="", "Still here", "Gone home")))
- Hours present, in F4: =IF(AND(ISNUMBER(C4), ISNUMBER(D4)), ROUND((D4-C4)*24, 2), "")
- Format columns C and D as Format, Number, Time, or they show as long decimals.
How it works: LEFT(...,10) keeps rows from the chosen date, VALUE() turns each matching text timestamp into a real time, and MIN and MAX pick the earliest sign-in and the latest sign-out by time, not by position in the sheet, so a scan that reached the sheet late still counts correctly. A Check status means a Sign out scan with no Sign in scan that day, usually a missed scan at arrival or a card scanned on the wrong link. Fix it at the door the next day rather than by editing the Log.
Hours present are a duration between two scans, useful for spotting a child who is routinely collected late. They are not a billing or payroll record, and the formulas do not apply your fee rules. For staff hours, the hours worked guide pairs every clock-in with its clock-out across days.
Which tool fits: a sheet, a form or childcare software?
Search for after-school sign-in and most results are childcare and program management vendors. They do things a spreadsheet does not, and if you need those things you should buy one. As of 2026-10-08, OneTap's after-school page describes QR code passes and an iPad kiosk, and a timestamped check-out where staff add a note about who picked the child up. brightwheel's preschool attendance page says each child's authorized pickup list is stored in their profile and visible at checkout, and its help centre says contacts marked as Approved Pickups can check students in and out. Procare's blog says it assigns each authorized person a unique four-digit PIN, and that parents can check in by scanning a QR code at the centre.
| Option | Who records it | Authorised pickup check | Who is still here | Cost as published |
|---|---|---|---|---|
| Paper sign-in and sign-out sheet | The adult writes a time and signs | Staff, by eye, against your own list | Read the sheet line by line | Free |
| Google Form with a QR poster | The parent types on their own phone | None in the form | A formula you add to the response sheet | Free |
| QR to Sheets scanner links | Staff scan each child's card on a door phone | None; your pickup policy decides before the scan | A formula you add, given in this guide | Free for one phone, one link and 300 scans in total; then 7 USD per phone per month |
| OneTap | QR pass, iPad kiosk, check-in code or staff | Pickup note added by staff at check-out | Built in | Free up to 20 profiles; Basic 49.99 USD a month billed yearly, up to 250 profiles |
| brightwheel | Teachers tap on a phone; approved pickups check in and out | Authorized pickup list visible at checkout | Built in | Not stated on the pages read |
| Procare | Parents via app, QR code or PIN | Four-digit PIN for each authorized person | Built in | Not stated on the page read |
Choose childcare software when you are a licensed provider, when staff need the pickup list on screen at the moment of checkout, or when you also need billing and a parent app. Choose a sheet when your program already runs a pickup policy on paper, what is missing is a fast door and a record you own in Google Sheets, and nobody wants another system for families to log into.
| Capability | Paper sheet or Google Form | QR to Sheets |
|---|---|---|
| Cost | Free | Free for one phone, one link and 300 scans in total; two links need the paid plan |
| Who does the work at pickup | Each parent writes or types | One member of staff scans a card |
| Names that do not match | Common with typed names | Rare, because the ID is read from the card |
| Who is still here | Read the sheet or add a formula | A formula you add, given above |
| Signal drops | Paper is unaffected; a form fails to submit | Scans are kept on the phone and sent when the signal is back |
| Checks who may collect a child | No; staff do, against your list | No; staff do, against your list |
| Where the record lives | A clipboard or your Google Sheet | Your Google Sheet |
Children's data in a program spreadsheet
- Put an ID in the QR code, never a name, a date of birth or a parent's phone number. Any phone camera can read a QR code, so a lost card should reveal nothing.
- Keep the sheet in the program's own Google account, shared only with the coordinators who need it. Staff scanning at the door never get access to the spreadsheet: scanning adds rows without sharing the file.
- Keep pickup lists and custody notes wherever your policy says they belong, not in the scan log.
- Set a retention period. Your safeguarding and data protection policies decide how long sign-in records are kept; this guide is not legal advice.
If some children are too young for a card in a backpack, keep the cards in a box at the door and have staff pull each one as the child arrives; the guide to QR attendance for people without smartphones covers other ways to hold the codes.
Pricing, stated plainly. One phone, one scanner link and up to 300 scans in total cost nothing, which covers a trial in one direction. Sign-in and sign-out at one door need two links, which means the paid plan at 7 USD per registered device per month: one door phone is 7 USD a month, and two doors with a phone each are 14 USD. The ID cards come from a free tool that needs no signup.
Step by step
- 1
Give every child an ID on a Roster tab
One row per child: a short ID such as K-014 in column A, the name in column B and the group in column C. The ID goes in the QR code; the name stays in the sheet.
- 2
Print one card per child
Paste the ID and name columns into a free QR ID card maker, choose ID only for the code, and print on card stock. A card can live in a backpack tag or a folder kept at the door.
- 3
Create two scanner links, Sign in and Sign out
Point both at the same tab of the same Google Sheet. Every row records which link it came through, so arrivals and departures can be told apart without guessing from scan order.
- 4
Scan at the door on a staff phone
Staff scan each card on the Sign in link as the child arrives. At pickup, staff first apply your pickup policy to the adult, then scan the card on the Sign out link.
- 5
Keep a still-here list open
One formula on a Today tab lists every child signed in today with no sign-out yet. Before the last member of staff leaves, that list should be empty.
Frequently asked questions
Does QR to Sheets check who is allowed to pick up a child?+
No. It records that a child's card was scanned on the Sign out link and when. It does not check an adult's identity or compare them with an authorised pickup list. Staff apply your program's pickup policy first, then scan.
Do parents or children need an app or a phone?+
No. A member of staff scans each child's printed card in the phone's browser, with no app and no account. Children never open the link and parents do not use their own phones. Each phone that scans counts as one device, and the free plan covers one phone.
How do I see which children are still here at the end of the day?+
Keep a Roster tab of IDs and names, and use a FILTER with two COUNTIFS: one for a Sign in scan dated today and one for a Sign out scan dated today. Children with the first and not the second are still in the building.
Can one QR code handle both sign-in and sign-out?+
One card per child, yes. Use two scanner links, Sign in and Sign out, so each row records the direction. Guessing direction from scan order breaks the first time a card is scanned twice.
What happens when a child forgets their card?+
Staff type the child's ID into the scanner's manual entry field, which writes the same kind of row as a scan. Keep a printed list of IDs at the door for this.
What does it cost for one door?+
Trying it with one phone and one link is free up to 300 scans in total. Sign-in and sign-out need two links, so the paid plan, which is 7 USD a month for the one phone at the door. The ID card maker is free.