There’s a lot of sticky legacy code out there in the world. But none as sticky as the gregorian calendar. Most of it does a decent job of keeping track of time, but one piece of it I just can’t get over. We really need to do something about months.

In the context of analytics, months are a really bad unit of measurement with two fundamental flaws:

  1. The have an inconsistent number of days.
  2. They have an inconsistent number of weeks.

Weeks don’t suffer from either of these problems. A week will always be seven days, and there aren’t any ridiculous rules like the 2nd week of the year has eight days, but only if the year is divisible by 4, except sometimes. Wednesday always comes after Tuesday and you never need to check the calendar.

Years aren’t perfect because of leap years, but compared to months that seems rather minor. And when you have a leap year, there’s an actual reason grounded in science. Why does August have 31 days (or is it 30? Did you know without checking the calendar)?

In the data field, months as a unit of comparison is fraught with problems. Want to compare month-to-date with the same month last year? You’ll have to check the number of working days because there’s a high likelihood that one of those months has a different number of weekend days. And since the number of working days is likely around 22-23 you are looking at a 5% variance just because of the weirdness of months. Comparing the current month to the previous month is even worse. You could just as easily be comparing a month that starts on a Saturday to a month that starts on a Monday. For just about any analytics measurement those will have wildly different outcomes.

Months are also a rather unfair deal for anyone whose paycheck doesn’t also come monthly. Why is rent the same in February as it is in August? The daily rate essentially fluctuates based on the number of days in the month. When I was a musician who worked weekends I began to notice a few times a year there were five weekends in the month and then I was flush with cash, at least temporarily. It was nice, but it all seemed so arbitrary. Why can’t a month just have a set number of weeks in it?

There are proposed solutions to the madness of months. My favorite is the International Fixed Calendar. This would divide all months into 28 days, giving us 13 months exactly equal, with one extra day as a holiday. New Year’s might even be fun, since it would be a crazy extra day that isn’t even actually a day of the week.

If that’s too wild for you, stick to quarterly measurements, and divide them up as 4-4-5 weeks. Then you have equivalency in your time domains and the analytics at least stands a chance of being a useful measurement.

Just don’t use months. Months can’t be trusted.