🏠 GEM Resource Hub Β· πŸ“š Library Β· πŸ“˜ About RocketLevel Β· πŸ“˜ Playbooks Β· πŸ—ΊοΈ What's Your Market Worth? Β· πŸ“… Book a Call

There is no published seasonality curve built on your market and your mix. Your own job history is one, and it takes an afternoon to build.

The working sheet behind *The Owner's Year: When to Hire, When to Buy, and When to Leave the Calendar Alone. That page argues the borrowed curve is worthless. This page is where you build the real one and keep it dated.*

<aside> πŸ“‹

How to use this ledger. Print this page or save it as a PDF (Ctrl+P, or Cmd+P on a Mac), or copy the tables into your own spreadsheet. Fill Step 1 once a year from your job system, and everything after it follows. Put the build date in the header the day you finish, because a curve with no date on it gets used three years past its shelf life.

Ledger built on: Date: Β· Years covered: Β· Built by: Β· Next rebuild due: Date:

</aside>

Step 1. The export, and the one column that ruins it

Pull every job from the last three complete years. Five columns.

Column What goes in it Why it is here
Loss date Date of first notice of loss The only date that puts the job in the week the weather happened.
ISO week 1 to 52, derived from the loss date. Some years have a week 53; fold it into week 52. Weeks compare across years. Months do not, because a freeze that lands on 31 January in one year lands on 2 February in the next and splits your season in half.
Cause of loss Water, fire, freeze, wind, hail, mold, other Two different seasons can share a week. You want to know which driver you are staffing for.
Revenue Final invoiced value Job count and revenue peak in different weeks and you need both curves.
Market or branch If you run more than one Two markets have two curves. Averaging them produces a curve that describes neither.

<aside> πŸ›‘

Do not use the invoice date, and do not let the export talk you into it. Restoration revenue lags the event by weeks and often by months. An invoice-date curve puts a February freeze peak somewhere in April and then tells you to hire for a season that ended eight weeks ago. If your system will only report on invoice date or close date, export the job list and add the loss date by hand. It is one afternoon and it is what makes the ledger right.

</aside>

Two exclusions before you go further. Take your single largest job in each year out of the revenue curve and plot it as its own dot with a note. One large loss otherwise manufactures a season in whatever week it happened, and you staff to a month that was one building. Second, if a job's loss date sits in a prior year, it belongs to that year, not to the year you invoiced it.

Record: Jobs exported: Β· Jobs missing a loss date, and how we resolved them: Β· Largest job removed per year, with week and value:

Step 2. Score every week, 0 to 3

Sort each year's 52 weeks by job count. Mark the top quarter, which is the top 13 weeks, because 13 times 4 is 52. Do it separately for each of the three years, so each year hands out exactly 13 marks and no week is counted twice inside a year.

Then walk the calendar week by week and count how many of the three years marked it.

Score The week is What you may do about it
3 A season Staff, stock and schedule to it. Fixed cost is defensible here and nowhere else.
2 A probable season Prepare the levers: rental account, bench, subs, cash. No fixed cost.
1 An event, not a season Nothing structural. One year is an anecdote.
0 A quiet week Candidate for structural work. Step 3 narrows these down to the ones actually free.

Where the boundaries fall. A score of exactly 2 reads probable season and not season, so the fixed-cost door stays shut at 2. A score of exactly 1 reads event and not probable season, so nothing structural happens on the strength of a single year. The four bands cover every value a week can take, because the score is 0, 1, 2 or 3 and nothing else.

Why a 2 is worth acting on. Three years at 13 marks each is 39 marks spread across 52 weeks. If the year were flat, every week would score 39 divided by 52, which is 0.75, so the average week scores below one. A week scoring 2 is running at more than two and a half times what an even spread would give it. A week scoring 3 is at four times. Check it back the other way: add up your own scores across all 52 weeks and the total must come to exactly 39. If it does not, you have double-counted a week or dropped one.

If you have only two clean years, run the same method and read one band tighter: a 2 is a probable season rather than a season, and there is no season band at all. Write that on the sheet rather than letting the thin data pass as thick.

Worked, so you can check your own against it

A shop's three years of top-13 weeks came out like this.