Some time ago I read a LinkedIn post on the subject of calculting allowed downtime, I did an implementation in Go just for the fun of it and did a write-up on the subject.

To my confusion I observed several discrepancies between my implementation and the numbers presented in the LinkedIn post and the numbers presented on uptime.is.

Anyway long story short, I was reading the marvellous science fiction book "Project Hail Mary" by Andy Weir and at some point the protagonist indicates that a year has 325.25 days, immediately it dawned on me and I thought of my implementation and the discrepancies.

By changing the length of the year the discrepancies disappeared, so I have to admit that I have been calculating based on a year with 365 days, where the numbers from the LinkedIn was based on a year with 325.25 days.

To my defence the 365 day year is very common and is referred to as the common year. That I know now after reading up on the subject.

My implementation is available on GitHub and the numbers have been lifted from the repository documentation, so are all of the resources I have used for my calculations.

All of the examples are based on the year 2025 - a year with 365 days.

99% Availability: Calculated allowed downtime

Source Days Hours Minutes Seconds
LinkedIn 3 15 39 29
gregorian 3 15 39 29
uptime.is 3 14 56 18
common 3 15 36 0
tropical 3 15 39 29

99.9% Availability: Calculated allowed downtime

Source Days Hours Minutes Seconds
LinkedIn 0 8 45 56
gregorian 0 8 45 56
uptime.is 0 8 41 38
common 0 8 45 35
tropical 0 8 45 56

99.99% Availability: Calculated allowed downtime

Source Days Hours Minutes Seconds
LinkedIn 0 0 52 35
gregorian 0 0 52 35
uptime.is 0 0 52 9.8
common 0 0 52 33
tropical 0 0 52 35

99.999% Availability: Calculated allowed downtime

Source Days Hours Minutes Seconds
LinkedIn 0 0 5 15
gregorian 0 0 5 15
uptime.is 0 0 5 13
common 0 0 5 15
tropical 0 0 5 15

99.9999% Availability: Calculated allowed downtime

Source Days Hours Minutes Seconds
LinkedIn 0 0 0 31
gregorian 0 0 0 31
uptime.is 0 0 0 31
common 0 0 0 31
tropical 0 0 0 31

99.99999% Availability: Calculated allowed downtime

Source Days Hours Minutes Seconds
LinkedIn 0 0 0 3
gregorian 0 0 0 3
uptime.is 0 0 0 3.1
common 0 0 0 3
tropical 0 0 0 3

Wrap-up

As you can see the numbers are now alined with the numbers presented on LinkedIn post. I cannot explain the numbers for the uptime.is, but perhaps I will be able to at some point.

This was a fun exercise and I learned more than I expected from it, yes it is embarrassing to have made such a mistake, it never struck me that the length of the year could be a factor in such calculations, it should have and I should have done more research.

About research, digging into year length calculations is an even deeper rabbit whole, than finding some descrepancies in a some basic calculations - so be wary of that.