Treadstone Associates
Article · Capacity & planning

How do I forecast busy season workload?

Start from the statutory calendar, which is fixed and public, then layer your own history on it. And stop forecasting hours — forecast arrivals, service time, wait time and review capacity.

Treadstone Associates · Updated 2026

Key takeaways

  • • The shape is already set by law: slips by the last day of February; personal returns 30 April; the self-employed 15 June; trusts 90 days after year-end; corporations six months after theirs.
  • • Forecast four things, none of which is “hours”: when files become workable, service time, wait time on missing records, and review capacity.
  • • In Ontario the peak has a legal price — 8-hour days and 48-hour weeks unless agreed in writing, and overtime after 44 hours at time and a half.
  • • AI cleans the history, segments clients by behaviour and drafts the chase list weeks earlier. A partner decides the staffing plan.

The short answer

Start from the statutory calendar, which is fixed and public, then layer your own history on top of it. AI is a curve-fitter over your time and job records — useful for turning three years of messy timesheets into a week-by-week arrival profile, useless at knowing that a client will incorporate in November.

The mistake most firms make is forecasting hours. Hours are an output. Forecast three things instead: when files arrive, how long each takes once it can be started, and how much of the delay is you waiting for the client. Those three drive everything else, and only the first is genuinely seasonal.

The deadline skeleton is already known

Before touching a model, write down the shape the law imposes. Section 150(1) of the Income Tax Act sets the returns calendar: a corporation files within six months after the end of its taxation year; an estate or trust within 90 days from the end of the year; and any other person on or before the following April 30, or June 15 for an individual who carried on a business in the year (with a further rule for a cohabiting spouse or common-law partner). Separately, section 205(1) of the Income Tax Regulations requires the information returns filed under that Part — the slips — on or before the last day of February for the preceding calendar year.

That single paragraph explains most of a Canadian firm’s seasonality. February is slips. Late winter to 30 April is personal tax. Mid-June catches the self-employed. Corporate work is not seasonal at all in the statute — it is spread by clients’ year-end dates, which is why a firm with sixty December year-ends has a June cliff that a firm with the same revenue and scattered year-ends does not.

What to actually forecast

  • • Arrivals. For each client and service, the week the file becomes workable. Not the deadline — the week you can start.
  • • Service time. Median hours from workable to ready-for-review, by service and by complexity band. Use the median, not the mean; one nightmare file distorts an average badly.
  • • Wait time. Hours of elapsed calendar time lost waiting for missing records. This is usually the largest and least measured component, and it is the one you can actually reduce.
  • • Review capacity. The partner or manager hours available in each week. This is almost always the binding constraint, and it is the number a headcount forecast hides.

Model those four and the queue falls out of them. Model “total hours in March” and you have a number that cannot tell you whether to hire, to move deadlines, or to chase records earlier.

Capacity is legally constrained, and the constraint is provincial

In Ontario the Employment Standards Act guidance on hours of work sets a daily maximum of eight hours (or the established regular workday if longer) and a weekly maximum of 48 hours, exceeded only by an electronic or written agreement between employee and employer. Overtime begins after 44 hours in a work week and is paid at one and a half times the regular rate; managers and supervisors do not qualify where the work they do is managerial or supervisory.

So a busy-season plan that quietly assumes 60-hour weeks from salaried staff is a plan with an unpriced legal component. Model the overtime cost explicitly and you will usually find that pulling work forward is cheaper than paying for the peak. Other provinces set different thresholds — name yours before you build the model.

Where AI earns its place

Three jobs, all of them clerical rather than clever. Cleaning the history: mapping inconsistent time-entry descriptions onto jobs and services so the arrival profile can be computed at all. Segmenting clients: grouping by behaviour — who reliably delivers records in week one, who never does before the last fortnight — which is far more predictive than size. Drafting the intervention: generating the chase list and the client-specific request, weeks earlier than a person would have got to it.

Practice systems already carry the raw material. Karbon’s time and budgets feature describes estimating and tracking time against jobs, comparing budgets to actual outcomes and seeing who has capacity, and its reporting and analysis dashboards cover outstanding jobs and team capacity. Whatever system you use, the forecast is only as good as the job coding underneath it.

What AI does not do is decide. A staffing plan, a decision to decline work, or a conversation with a client about moving a year-end is a partner’s call, made with the forecast in front of them.

Worked example (illustrative)

An Ontario firm has 260 personal returns and 90 corporate year-ends, 55 of which fall on 31 December. The naive plan staffs March and April. The arrival profile, once the history is cleaned, shows something different: personal files cluster in the last ten days before 30 April, and the June corporate deadline for the December year-ends lands directly on top of the June 15 self-employed filings.

Two changes come out of it. Records requests for the December year-ends go out in February rather than April, moving workable dates earlier without moving any deadline. And the twenty clients with the longest historical wait times get a different request format and a follow-up scheduled before they are late rather than after.

Measure the thing you can count: the number of files workable four weeks before their deadline, before and after. Hours saved is not measurable and makes a poor business case.

Where this sits in the firm

This is capacity planning for delivery to a book of clients. Once you have the forecast, the reporting layer that sits on it is covered in utilisation and realisation reporting and building a partner dashboard. Your own month-end close is a different job and lives on the accounting automation page. On the employment side, Treadstone’s sister firm covers Ontario hours of work limits.

Questions we get asked

How much history do I need?
At least two full cycles, because a single cycle cannot separate a trend from a one-off. With less than that you are describing last year rather than forecasting.

What if we do not track time by job?
Then fix that first. A forecast built on unallocated time tells you the firm was busy, which you already knew. Job-level coding is the prerequisite, not the enhancement.

Can it predict a new client’s volume?
Only by analogy to similar existing clients, and you should treat that as a starting estimate a partner adjusts, not an output.

How do I know the forecast is any good?
Score it. Record the forecast, compare it to what happened, and look at the error by week and by service. A forecast nobody scores is a decoration.

Turn three years of timesheets into a plan you can staff to.

A 30-minute call is enough to tell you whether AI pays for itself here.