Compliance calendar for an accounting practice: how to set it up

How to organise a practice’s filing calendar so no deadline relies on memory, who checks what, and how to handle last-minute extensions.

4 min read

Every accounting practice knows the deadlines. No practice misses a filing because it didn’t know the date. Filings are missed because the date was known but the client wasn’t on the list — one out of forty, the one who never sends anything, the one who joined in March.

So what you need isn’t a calendar of deadlines. It’s a calendar of obligations per client. That difference is the whole job. Note: deadlines and obligations change constantly and extensions are granted — your calendar is an organisational tool; the official source remains the announcements of the tax authority in your country.

The obligations profile: once per client

Before any calendar, each client needs a list of what they owe and how often. Without it, the calendar only knows dates, not whom they apply to.

  • Type of books and VAT status — monthly, quarterly, exempt.
  • Payroll: yes/no, number of employees, special schemes.
  • Withholding taxes, dividend tax, levies.
  • Intra-EU transactions and the related returns.
  • Annual: the company tax return, customer and supplier listings, the balance sheet where required, filings with the business register.
  • Non-tax but critical: social security contributions, operating licences, renewals, grants with deliverables.

This profile is updated whenever something changes for the client, not just once at onboarding. The client who hired their first employee acquired five new obligations that same day.

Two dates, not one

The filing deadline isn’t the date you work to. Every obligation has an internal date — the day it must be ready — and an official deadline. The gap between them isn’t a luxury; it’s the practice’s resilience against a system that crashes on the last day.

In practice: an internal date three working days before for routine filings, two weeks before for annual ones. And a third date, earlier than all of them: when the client’s material must have arrived.

The grid that shows the truth

The useful tool isn’t a list of dates — it’s a grid with clients in the rows and the period’s obligations in the columns, with each cell in one of four states:

  1. No material received — the category that needs emptying first.
  2. Received, not processed.
  3. Processed, not filed.
  4. Filed — with the date and submission reference.

Why it works: it shows you the empty cells. A list of deadlines never shows you who’s missing, because whoever’s missing simply doesn’t appear anywhere.

Who checks what

  • Daily: what fell due yesterday and wasn’t marked as filed.
  • Every Monday: all obligations for the next ten days, by handler, and which clients haven’t sent their material.
  • At the start of each month: clients who changed something last month — a new business, a new hire, a change of details — whose profile hasn’t been updated.
  • A fortnight before every major annual deadline: which files are still incomplete.

An extension isn’t a gift

Every extension feels like relief, but it just squeezes the same workload into fewer days, usually right on top of the next deadline. The way to stop it costing you: stick to your internal date. The practice works to its own timetable and the extension remains a safety buffer for the clients who will be late.

The same applies to online platforms: in the final hours before a deadline the system is slow or down, and that’s no argument to anyone.

What stays on record after filing

Date, submission reference, who filed it and the proof of submission. And for amended returns, the reason. Two years later, in an inspection, the question won’t be whether it was filed but why it was filed a second time.

In TaxPro, obligations hang off each client’s record rather than a shared calendar, so the “who’s missing” grid builds itself and the reminder goes to the handler responsible for that client.

Conclusion

Start from the obligations profile per client, not from the calendar. Keep an internal date separate from the official one. And check the empty cells — because the problem is never the deadline you know, but the client who never appeared on the list.