In this guide 6 sections
A retention schedule is a table that gives every record type a keep-for period, a start event and a deletion method. Set the periods per record type, confirm legal minimums with your accountant or lawyer, then run deletion as scheduled jobs that also reach exports, attachments and restored backups.
List the record types before you pick any periods
Open the system first. Leads, quotations, invoices, KYC scans, CVs, support tickets, call recordings and site photos all count, and most owners find ten or twelve types they had never named. Walk through the CRM, the accounts package, the HR folder, the shared drive and the mailbox export folder, since each gathers personal records.
Beside each type, note the system that stores it, the person who owns it and every other place a copy might sit. One CV may sit in the careers inbox, the HR sheet and a shared drive at once, and each copy needs its own rule. Name the owner too.
Do not start with the law. Start with what you hold. If a record type has no owner, nobody will approve its deletion, and it will still be sitting there when the next audit or breach arrives.
- Lead and enquiry records
- Invoices, credit notes and receipts
- KYC files such as ID scans
- CVs and interview notes
- Support tickets with screenshots
Give each type a start event and a keep period
A period needs a clock start. An invoice is kept from the end of the financial year, not the day it was raised, so its clock starts late. A lead’s clock starts at its last contact, and a CV’s starts when the vacancy closes and the shortlist is final.
Give the start event its own column. Software can only count days if the table names the date field it counts from, so write that field’s name beside the keep period. For a quotation the clock starts when the order is lost or the contract ends, which are two different date fields.
Where a record serves two purposes, the longer purpose wins, but only for the fields that genuinely need it, such as the invoice amounts. Drop the cheque scan.
- Start event: last contact, closure, exit
- Keep period in months or years
- Date field the clock reads
- One short line stating the reason
Confirm the minimum periods with your accountant or lawyer
Some records carry a legal minimum. Tax books, payroll registers, provident fund challans and signed contracts are the usual ones, so never copy a period from a blog post, including this one. Your accountant can tell you how long the sales ledger, purchase bills and bank statements must stay, and your lawyer can answer for employment files and identity documents.
Ask your chartered accountant about books and invoices, and your lawyer about employee files, KYC and anything specific to your sector. Record each answer and its date. A table citing a dated email from your adviser is far easier to defend than one citing a hunch.
Where no minimum applies, choose a short period. The Digital Personal Data Protection Act expects you to stop holding personal data once its purpose is served, so a defensible reason beats a round number. Write the reason down.
Run deletion as scheduled jobs, not as a yearly clean-up
A yearly purge depends on memory. Build a weekly job instead. It finds records past their date, removes or anonymises them, and writes a log line for every batch it processes. Run it from a server schedule under a service account that holds delete rights on only those tables, and have it email a summary after every run.
Start in report-only mode. The job lists what it would delete, and the owner reads that list for two or three runs before anything is removed. After three clean runs in a row, flip the flag and keep the log file for as long as your adviser says.
Some deletions would break linked records. An invoice may point to a customer row, so anonymise the name, mobile and email fields and keep the amounts and GST numbers.
- Weekly job per record type
- Report-only trial runs first
- Anonymise fields on linked records
- Legal hold flag pauses deletion
Reach the copies: exports, attachments and restored backups
Deleting the row is half the job. The same person’s data also lives in CSV exports on laptops, email attachments, report folders and the nightly backup, and each of those counts as a copy. Search laptops and shared folders for old exports named leads_final.csv or customers_backup.xlsx, which outlive the system they came from.
Backups are the awkward case. You rarely edit a backup, so keep a deletion register of what was removed and when, and replay it after any restore before the system goes live.
Test with one dummy customer. Create them, wait for the clock to expire and see which copies survive, then fix every survivor and schedule the same test each quarter. Name an owner for each survivor.
Retention schedule worksheet
One line per record type. Columns: record type, system and owner, start event, keep period, legal minimum and who confirmed it, deletion method, copies to clear and last test date. A block at the foot lists legal-hold cases and restore replay steps, plus the name of whoever signs off each quarterly test.
Open a blank worksheet to printQuestions owners ask
How long should we keep lead records?
No single answer exists. Many firms keep a lead for a set time after the last contact and then delete it, unless the person became a customer. Write down the reason, then let a scheduled job apply the rule every week without anyone having to remember it.
Can we keep everything just in case?
That is risky. Holding personal data with no purpose adds exposure in a breach and works against the Digital Personal Data Protection Act, which expects data to go once its purpose ends. Keep only what a rule requires.
Do backups have to be edited to remove one person?
Usually not. Keep a deletion register, hold backups for a short fixed period and replay the register after any restore, before the restored system serves a single user. Confirm the approach with your lawyer.
Who should own the schedule?
Name one person. Often that is the IT manager or the operations head, who approves changes, reads the job logs and runs the quarterly test. Also record an owner for every record type, since the schedule owner cannot know every folder and mailbox in the business.
