Permits expire on a printed date. Put that date where mail goes out.
Reminders before the expiry.
Permits have a number, an issuer, a location and a date. Spreadsheets grow until the date column is a mix of text and real dates. A tracker that only accepts a real expiry is boring and that is the point.
Fields that matter
Name, holder, issuer, reference number, expiry, reminder days, owner email. Location if you have more than one site. Notes for "must be on the wall in the kitchen".
Multi-site
A restaurant group with four addresses should not share one "health permit" row. One row per permit per site. Filter by location when you want a site list.
After a renewal
Update the expiry, keep the same item. The audit trail should show the change. Do not rely on someone deleting the row.
FAQ
Can I import a spreadsheet?
If the product import accepts your columns, yes. Clean the dates first. "Q3" is not a date.
What if the issuer is late sending the new paper?
Keep the old expiry visible until you hold the new one. Add a note. Do not pretend.