Printing every badge the night before feels prepared. Then a sponsor changes their guest, a speaker arrives with a colleague, and half the stack never gets picked up. The desk spends the morning hunting for a name that was spelled differently on the spreadsheet.
Print at the moment of check-in
The useful badge is the one that exists because the person is standing there. Scan the code, confirm the record, and print the tag with the logo, the name, and the role for that event.
Walk-ins get the same treatment. Search the list, add them if they are not on it, and print. You are not maintaining a second pile of blanks with handwriting on them.
