What an ISO week number is, and why it has its own year
An ISO week is a Monday-to-Sunday block of exactly seven days, and every week belongs entirely to one year — the year that contains its Thursday. That single rule generates everything else in the standard. Because a week is never split across a year boundary, the first week of a year can begin as early as 29 December and the last can end as late as 3 January, and a date in early January can legitimately carry the previous year's week number.
That is why ISO 8601 defines a separate week-based year. Friday 1 January 2021 belongs to week 53 of 2020, so its full ISO week date is 2020-W53-5. Writing it as week 53 of 2021 is wrong, and it is wrong by a full week in a production schedule. Any system that quotes a week number without also quoting the week-based year is ambiguous for about six days each January.
The rule also determines how many weeks a year has. A year has 53 ISO weeks when 1 January falls on a Thursday, or when a leap year begins on a Wednesday — in either case a 53rd Thursday exists inside the calendar year. Every other year has 52. Across a full 400-year Gregorian cycle there are 71 long years and 329 short ones, so a 53-week year comes round roughly every five or six years.
Week numbering matters most in manufacturing, logistics and European business. Component date codes are stamped with a two-digit year and a two-digit week. Delivery schedules are quoted "week 34". German, Nordic and Dutch offices plan by Kalenderwoche or vecka almost exclusively. Payroll and shift rotas run on weeks because a week is the only period with a fixed length.
The formula, and where the +10 comes from
The one-line calculation is W = ⌊(n − w + 10) / 7⌋, where n is the ordinal day of the year and w is the ISO weekday, Monday 1 through Sunday 7. It is worth understanding the constant rather than memorising it.
Start with n − w. That is the ordinal day of the Sunday before the week containing your date — subtracting the weekday index walks you back to the day before Monday. Add 3 and you land on the Thursday of your week, expressed as an ordinal day that can be zero or negative if the Thursday belongs to the previous year. Now you want to know which week that Thursday sits in, counting from the year start: divide by 7 and take the floor, adding 7 first so the count starts at 1 rather than 0. Three plus seven is the ten.
The result needs two corrections. If W comes out as 0, your week's Thursday belongs to the previous calendar year, so the date sits in that year's final week — 52 or 53, depending on that year. If W comes out as 53 in a year that only holds 52 weeks, your week's Thursday has fallen into the next year, so the date is in week 1 of the following week-based year.
The inverse direction is simpler because 4 January is always in week 1 — it is the earliest date that is guaranteed to be, since week 1 must contain the first Thursday and 4 January is at most three days after it. So the Monday of week 1 is 4 January minus its weekday offset, and the Monday of week W is that plus 7(W − 1).
The two alternative systems in the selector are not standards, they are conventions. The Sunday-start or broadcast system says week 1 is whichever week contains 1 January, with weeks starting on Sunday, so week 1 is often only a few days long in practice and 1 January is always in week 1. The simple system just chops the year into blocks of seven from 1 January, which makes week 53 either one or two days long. Both are easier to explain and neither round-trips cleanly across a year boundary.
Worked example: which ISO week is 2 August 2026?
Work it in three steps with no calendar in front of you.
- Ordinal day. 2026 is not a leap year, so the cumulative month ends are 31, 59, 90, 120, 151, 181, 212 for January through July. 2 August is therefore day 212 + 2 = 214.
- ISO weekday. 1 January 2026 is a Thursday, ISO weekday 4. Day 214 is 213 days later, and 213 mod 7 = 3 (since 7 × 30 = 210). Thursday plus three days is Sunday, ISO weekday 7.
- Apply the formula. W = ⌊(214 − 7 + 10) / 7⌋ = ⌊217 / 7⌋ = 31. Since 2026 has 53 weeks and 31 is between 1 and 53, no correction is needed, and the week-based year is 2026.
- Date range. The date is the Sunday of its week, so the week began six days earlier, on Monday 27 July 2026, and ended on 2 August. The ISO week date is 2026-W31-7.
Now the awkward one. For 1 January 2021: the ordinal day is 1, and 1 January 2021 was a Friday, so w = 5. W = ⌊(1 − 5 + 10) / 7⌋ = ⌊6 / 7⌋ = 0. A zero means roll back. How many weeks did 2020 have? 1 January 2020 was a Wednesday and 2020 was a leap year, which is one of the two long-year conditions, so 2020 had 53 weeks. The answer is therefore week 53 of 2020, running Monday 28 December 2020 to Sunday 3 January 2021.
Check that against 2026 for contrast: 1 January 2026 is a Thursday, giving W = ⌊(1 − 4 + 10)/7⌋ = ⌊7/7⌋ = 1. A Thursday 1 January is always in week 1, which is exactly the rule that makes the year 53 weeks long.
Reading a week number safely
Always carry the week-based year with the week number. "W01" without a year is ambiguous at exactly the moment it matters most, the turn of the year, and the ambiguity is a whole week of production. The ISO week date format is 2026-W31-7: year, W, two-digit week, and optionally the weekday. Written that way it cannot be misread.
Check whether your software agrees with the standard. Spreadsheet week functions are a common source of mismatch: the plain WEEKNUM function in Excel and Google Sheets defaults to the Sunday-start convention, not ISO, and returns 1 for 1 January 2021 where the standard returns 53. ISOWEEKNUM gives the standard answer. Python's date.isocalendar(), PostgreSQL's EXTRACT(WEEK …) and Java's WeekFields.ISO all follow ISO 8601.
Watch for the 53-week year in anything that assumes 52. Annual budgets built on 52 weekly periods are short by one period in a long year, which is why retail and manufacturing calendars using 4-4-5 quarters insert a 53rd week roughly every five or six years and explicitly plan for it. If your comparison of like-for-like weekly sales is year-on-year, a 53-week year shifts every subsequent week by one against the previous year.
Finally, remember that the week number tells you nothing about the month. Week 31 of 2026 spans 27 July to 2 August, straddling two months. Any process that maps weeks to months has to choose a rule — most commonly the month containing the week's Thursday, which is the same tie-break ISO uses for years.
Which recent and coming years hold 53 ISO weeks
| Year | Weekday of 1 January | Leap year? | ISO weeks |
|---|---|---|---|
| 2020 | Wednesday | Yes | 53 |
| 2021 | Friday | No | 52 |
| 2022 | Saturday | No | 52 |
| 2023 | Sunday | No | 52 |
| 2024 | Monday | Yes | 52 |
| 2025 | Wednesday | No | 52 |
| 2026 | Thursday | No | 53 |
| 2027 | Friday | No | 52 |
| 2028 | Saturday | Yes | 52 |
| 2032 | Thursday | Yes | 53 |
| 2037 | Thursday | No | 53 |
Note 2024: a leap year starting on Monday still has only 52 weeks, because the long-year condition needs a Wednesday start. The leap-year rule alone does not make a year long.
Traps in week numbering
- Quoting a week number with the calendar year instead of the week-based year. For about six days each January the two differ, and a schedule slips by a week.
- Assuming Excel's WEEKNUM is ISO. It is not, by default. Use ISOWEEKNUM, or WEEKNUM with the return-type argument 21.
- Building an annual plan on 52 weeks. Roughly every five or six years the ISO year is 53 weeks long, and the extra week has to go somewhere.
- Assuming a leap year has 53 weeks. 2024 was a leap year with 52 ISO weeks. The condition is about which weekday the year starts on, not about its length alone.
- Mapping weeks to months by their first day. A week that starts on 30 July and ends on 5 August belongs to neither month cleanly. Pick a rule — the Thursday rule is the consistent one — and document it.
- Mixing systems between two departments. A supplier using the Sunday-start convention and a customer using ISO will disagree by one on many dates. Check which system a date code uses before you read a week off it with the day of the week calculator.
Related standards and tools
ISO 8601 defines much more than week numbers: it is also the source of the YYYY-MM-DD date format, the 24-hour hh:mm:ss time format, the T separator and the Z suffix for UTC. The current edition is ISO 8601-1:2019, which split the standard into a basic part and an extensions part. Anything you exchange between systems should use it, because it is the only widely-supported format that sorts correctly as plain text.
To move between the pieces: the day of the week calculator gives you the ISO weekday number that this formula needs; the leap year calculator settles the leap condition in the 53-week test; and the age in days calculator converts a span of weeks to an exact day count. If you are handling week numbers in code, the Unix timestamp converter is usually the layer underneath — most libraries derive the ISO week from an epoch value.
One historical footnote. Week numbering was standardised largely because European industry was already using it informally and inconsistently. ISO 2015 in 1976 was the first international text to fix the Monday start and the first-Thursday rule; it was folded into ISO 8601 in 1988. The Monday start is also why the standard defines Sunday as day 7 rather than day 1, which remains the most frequent single point of confusion when moving data between an American and a European system.
