2021RawFinal
*1-Jan*LMLM
9-JanKFKF
*16-Jan*NMNM
23-JanMKMK
30-JanJKJK
6-FebKGKG
*13-Feb*VJVJ
*20-Feb*KFKF
27-FebLMJK
6-MarNMMK
13-MarVJVJ
20-MarKFJK
27-MarMKNM
3-AprJKLM
10-AprKGKG
*17-Apr*MKMK
*24-Apr*JKJK
1-MayLMLM
8-MayNMNM
15-MayVJKF
22-MayKFVJ
*29-May*KGKG
5-JunMKLM
12-JunJKJK
19-JunKGKF
26-JunLMMK
*3-Jul*LMLM
10-JulNMKG
17-JulVJVJ
24-JulKFKF
31-JulMKMK
7-AugJKNM
14-AugKGKG
21-AugLMLM
28-AugNMKF
*4-Sep*NMNM
11-SepVJVJ
18-SepKFMK
25-SepMKJK
2-OctJKNM
*9-Oct*VJVJ
16-OctKGKG
23-OctLMMK
30-OctNMNM
6-NovVJJK
*11-Nov*KFKF
13-NovKFKG
20-NovMKLM
*25-Nov*MKMK
*27-Nov*JKJK
4-DecJKVJ
11-DecKGKF
18-DecLMLM
*25-Dec*KGKG
*1-Jan*NMNM
2022 rotation starts with N. Mikael
Who is up first for the year?

hi
012345678910111213
0*31-Dec**30-Dec**31-Dec**1-Jan**1-Jan**1-Jan**1-Jan**31-Dec**30-Dec**31-Dec**1-Jan**1-Jan**1-Jan**1-Jan*
17-Jan6-Jan5-Jan4-Jan3-Jan9-Jan8-Jan7-Jan6-Jan5-Jan4-Jan3-Jan9-Jan8-Jan
2*14-Jan**13-Jan*12-Jan11-Jan10-Jan*16-Jan**15-Jan**14-Jan**13-Jan*12-Jan11-Jan10-Jan*16-Jan**15-Jan*
321-Jan20-Jan*19-Jan**18-Jan**17-Jan*23-Jan22-Jan21-Jan20-Jan*19-Jan**18-Jan**17-Jan*23-Jan22-Jan
428-Jan27-Jan26-Jan25-Jan24-Jan30-Jan29-Jan28-Jan27-Jan26-Jan25-Jan24-Jan30-Jan29-Jan
54-Feb3-Feb2-Feb1-Feb31-Jan6-Feb5-Feb4-Feb3-Feb2-Feb1-Feb31-Jan6-Feb5-Feb
611-Feb10-Feb9-Feb8-Feb7-Feb*13-Feb*12-Feb11-Feb10-Feb9-Feb8-Feb7-Feb*13-Feb*12-Feb
7*18-Feb**17-Feb**16-Feb**15-Feb**14-Feb**20-Feb**19-Feb**18-Jan**17-Feb**16-Feb**15-Feb**14-Feb**20-Feb**19-Feb*
8*25-Feb**24-Feb**23-Feb**22-Feb**21-Feb*27-Feb*26-Feb**25-Jan**24-Feb**23-Feb**22-Feb**21-Feb*27-Feb*26-Feb*
94-Mar3-Mar2-Mar1-Mar28-Feb6-Mar5-Mar3-Mar2-Mar1-Mar29-Feb28-Feb5-Mar4-Mar
1011-Mar10-Mar9-Mar8-Mar7-Mar13-Mar12-Mar10-Mar9-Mar8-Mar7-Mar6-Mar12-Mar11-Mar
1118-Mar17-Mar16-Mar15-Mar14-Mar20-Mar19-Mar17-Mar16-Mar15-Mar14-Mar13-Mar19-Mar18-Mar
1225-Mar24-Mar23-Mar22-Mar21-Mar27-Mar26-Mar24-Mar23-Mar22-Mar21-Mar20-Mar26-Mar25-Mar
131-Apr31-Mar30-Mar29-Mar28-Mar3-Apr2-Apr31-Mar30-Mar29-Mar28-Mar27-Mar2-Apr1-Apr
148-Apr7-Apr6-Apr5-Apr4-Apr10-Apr9-Apr7-Apr6-Apr5-Apr4-Apr3-Apr9-Apr8-Apr
15*15-Apr**14-Apr**13-Apr*12-Apr11-Apr*17-Apr**16-Apr**14-Apr**13-Apr*12-Apr11-Apr10-Apr*16-Apr**15-Apr*
16*22-Apr**21-Apr**20-Apr**19-Apr**18-Apr**24-Apr**23-Apr**21-Apr**20-Apr**19-Apr**18-Apr**17-Apr**23-Apr**22-Apr*
1729-Apr28-Apr27-Apr*26-Apr**25-Apr*1-May30-Apr28-Apr27-Apr*26-Apr**25-Apr**24-Apr*30-Apr29-Apr
186-May5-May4-May3-May2-May8-May7-May5-May4-May3-May2-May1-May7-May6-May
1913-May12-May11-May10-May9-May15-May14-May12-May11-May10-May9-May8-May14-May13-May
2020-May19-May18-May17-May16-May22-May21-May19-May18-May17-May16-May15-May21-May20-May
21*27-May**26-May**25-May**24-May**23-May**29-May**28-May**26-May**25-May**24-May**23-May*22-May*28-May**27-May*
223-Jun2-Jun1-Jun31-May30-May5-Jun4-Jun2-Jun1-Jun31-May30-May*29-May*4-Jun3-Jun
2310-Jun9-Jun8-Jun7-Jun6-Jun12-Jun11-Jun9-Jun8-Jun7-Jun6-Jun5-Jun11-Jun10-Jun
2417-Jun16-Jun15-Jun14-Jun13-Jun19-Jun18-Jun16-Jun15-Jun14-Jun13-Jun12-Jun18-Jun17-Jun
2524-Jun23-Jun22-Jun21-Jun20-Jun26-Jun25-Jun23-Jun22-Jun21-Jun20-Jun19-Jun25-Jun24-Jun
261-Jul30-Jun29-Jun28-Jun27-Jun*3-Jul**2-Jul*30-Jun29-Jun28-Jun29-Jun26-Jun*2-Jul*1-Jul
27*3-Jul**4-Jul**4-Jul**4-Jul**4-Jul*10-Jul9-Jul*4-Jul**4-Jul**4-Jul**4-Jul**3-Jul*9-Jul*3-Jul*
288-Jul7-Jul6-Jul12-Jul11-Jul17-Jul16-Jul7-Jul6-Jul12-Jul11-Jul10-Jul16-Jul8-Jul
2915-Jul14-Jul13-Jul19-Jul18-Jul24-Jul23-Jul14-Jul13-Jul19-Jul18-Jul17-Jul23-Jul15-Jul
3022-Jul21-Jul20-Jul26-Jul25-Jul31-Jul30-Jul21-Jul20-Jul26-Jul25-Jul24-Jul30-Jul22-Jul
3129-Jul28-Jul27-Jul2-Aug1-Aug7-Aug6-Aug28-Jul27-Jul2-Aug1-Aug31-Jul6-Aug29-Jul
325-Aug4-Aug3-Aug9-Aug8-Aug14-Aug13-Aug4-Aug3-Aug9-Aug8-Aug7-Aug13-Aug5-Aug
3312-Aug11-Aug10-Aug16-Aug15-Aug21-Aug20-Aug11-Aug10-Aug16-Aug15-Aug14-Aug20-Aug12-Aug
3419-Aug18-Aug17-Aug23-Aug22-Aug28-Aug27-Aug18-Aug17-Aug23-Aug22-Aug21-Aug27-Aug12-Aug
3526-Aug25-Aug24-Aug*30-Aug*29-Aug*4-Sep**3-Sep*25-Aug24-Aug*30-Aug*29-Aug28-Aug*3-Sep*26-Aug
36*2-Sep**1-Sep**31-Aug*6-Sep*5-Sep*11-Sep10-Sep*1-Sep**31-Aug*6-Sep*5-Sep**4-Sep*10-Sep*2-Sep*
379-Sep8-Sep7-Sep13-Sep12-Sep18-Sep17-Sep8-Sep7-Sep13-Sep12-Sep11-Sep17-Sep9-Sep
3816-Sep15-Sep14-Sep20-Sep19-Sep25-Sep24-Sep15-Sep14-Sep20-Sep19-Sep18-Sep24-Sep16-Sep
3923-Sep22-Sep21-Sep27-Sep26-Sep2-Oct1-Oct22-Sep21-Sep27-Sep26-Sep25-Sep1-Oct23-Sep
4030-Sep29-Sep28-Sep4-Oct3-Oct*9-Oct**8-Oct*29-Sep28-Sep4-Oct3-Oct2-Oct*8-Oct*30-Sep
41*7-Oct**6-Oct*5-Oct*11-Oct**10-Oct*16-Oct15-Oct*6-Oct*5-Oct*11-Oct**10-Oct**9-Oct*15-Oct*7-Oct*
4214-Oct13-Oct*12-Oct*18-Oct17-Oct23-Oct22-Oct13-Oct*12-Oct*18-Oct17-Oct16-Oct22-Oct14-Oct
4321-Oct20-Oct19-Oct25-Oct24-Oct30-Oct29-Oct20-Oct19-Oct25-Oct24-Oct23-Oct29-Oct21-Oct
4428-Oct27-Oct26-Oct1-Nov31-Oct6-Nov5-Nov27-Oct26-Oct1-Nov31-Oct30-Oct5-Nov28-Oct
454-Nov3-Nov2-Nov8-Nov7-Nov*11-Nov**11-Nov*3-Nov2-Nov8-Nov7-Nov6-Nov*11-Nov*4-Nov
46*11-Nov**10-Nov**9-Nov**10-Nov**11-Nov*13-Nov19-Nov*10-Nov**9-Nov**10-Nov**11-Nov**11-Nov*19-Nov*11-Nov*
4718-Nov17-Nov16-Nov15-Nov14-Nov20-Nov*24-Nov*17-Nov16-Nov15-Nov14-Nov13-Nov*24-Nov*18-Nov
48*23-Nov**22-Nov*23-Nov22-Nov21-Nov*25-Nov**26-Nov**22-Nov*23-Nov22-Nov21-Nov20-Nov*26-Nov**23-Nov*
49*25-Nov**24-Nov**28-Nov**27-Nov**26-Nov**27-Nov*3-Dec*24-Nov**28-Nov**27-Nov**26-Nov**25-Nov*3-Dec*25-Nov*
502-Dec1-Dec*30-Nov**29-Nov**28-Nov*4-Dec10-Dec1-Dec*30-Nov**29-Nov**28-Nov**27-Nov*10-Dec2-Dec
519-Dec8-Dec7-Dec6-Dec5-Dec11-Dec17-Dec8-Dec7-Dec6-Dec5-Dec4-Dec17-Dec9-Dec
5216-Dec15-Dec14-Dec13-Dec12-Dec18-Dec*24-Dec*15-Dec14-Dec13-Dec12-Dec11-Dec*24-Dec*16-Dec
53*23-Dec*22-Dec21-Dec20-Dec19-Dec*25-Dec*22-Dec21-Dec20-Dec19-Dec18-Dec *23-Dec*
54*24-Dec**25-Dec**25-Dec**25-Dec**24-Dec**25-Dec**25-Dec**25-Dec**25-Dec*
55*29-Dec**28-Dec**27-Dec**29-Dec**28-Dec**27-Dec*
Contact Info
(For any dweebs looking at this page, it's a Vernam cipher)
091817280f4722005c4551532b554500256e6e2e54565b5327594d74565f4d410a02011d7249577e686d27045e5c12187b4e5d6441505d511f05030276706f050e0a01411a0905086b59537e544a555505073b3a001c003d041544490b070a19624a537b4c5757590139387623015f6d495e53591b100a027154557d51576d6b565f55432914030d0008084f515f5f3948
09181324150f0541755148452e18496d2c236d6b7d565459211c456558505c48120601056f485d7d516e6e27534812187b4e5d64415157541f010a0073706f050e0a01411a0905086b59577a554a565102043b3a011c0921414f51510a1912037241487b5753566838725755321c176d495e53591b1005067254527952516d6b5957534a3715040d18060c0e5d1e515f2f73
14100b2804130541785f41582b554500256e6e2e54565b5327594d74565f4d4101010a1d7249557a686d27045e5c12187b4e5d64415f54581f09010571706f050e0a01411a0905086b59577b524a515201013b3a001c003d041544490b070a19624a537b4c5454520439387623015f6d495e53591b1001017a54557d54516d6b44595c55270d04270e140c0872535d5d211816394f09011538
0f1817390809442a53565b5e23554500256e6e2e54565b5327594d74565f4d410008051d724e557d686d27045e5c12187541546441505d581f05070671706f050e0a01411a070a016b595778584a575004043b3a04181d6d495e53591b1001067b54557f54576d6b5f5b53562b17040d040a0113415f5c582d0a15630e15036b
08181c6d23472f1353435c5530554500256e6e2e54565b5327594d74565f4d410604011d7a49547d686d2c0e5f5512187b4e5d64415350511f0704097b706f0e040b08411a0502086b59507b504a535301023b3a04181d6d495e53591b1006047154517b52536d6b565f51442d0b0f2c182709005b5c545f301a00630f02106838
0e1009240009442c5b5b53552e554500256e6e2e54565b5327594d74565f4d4101060b1d754e527f686d27045e5c121875415464415457511f01020074706f050e0a01411a070a016b595d74584a545102093b3a04181d6d49505c501b1000007554577952536d6b5e5d5b5b231c090d0c0617125f55561e2d0b02446b
0c180234412a0d0a53555e1c623421446b2802075b53570a62515c7a594e445204091f07754e57446b2f0b0c57101a077a484c6d595e5d4c020002094b7327280417011312180b077a5045755556495801070439483f0435414f535903191202724e487f555450683873575c2e594d7a59564d410103021d7349547d686d09085951575c0214043e120a01051c5f40574b73
Under the calendar system we use in Western civilization today, there are 14 distinct yearly calendars - one beginning on each weekday for a non-leap year and one beginning on each weekday for a leap year. Because of the Gregorian leap year system in use since 1582, (off by 1/2 second per century), these calendars rotate in a 400-year perpetual cycle. That is, 1613, 2013, 2413, etc., all have the same calendar and each is followed by the same calendar in 1614, 2014, 2414, etc. If you don't cross a century mark (--00), the cycles are 28 years.

So how does this relate to coverage?
Well, it turns out that the number of coverage periods in a year is not the same for each of the 14 calendar types. That number varies from 53 to 56 and depends upon how many "fixed" holidays (Jan 1, Jul 4, Nov 11, Dec 25) fall on Fri/Sat/Sun/Mon vs. Tue/Wed/Thu. Also, over the years, consensus has determined which possible coverage periods are "premium" versus "non-premium." In this regard, premium periods have to been shown to include not only standard holidays, but the weekends following school vacation weeks in February and April. Taking this into account, there are between 39 and 41 non-premium coverage periods and 14 or 15 premium coverage periods in any given year, which means 4 or 5 non-premium coverage periods and 1 or 2 premium coverage periods per doc for an 8-person coverage group. There are 1537 coverage periods in the 28-year cycle (1133 non-premium and 404 premium periods). Since neither 1133 nor 404 are divisible by 8 (coverage docs), neither 28-year premium nor non-premium coverage cycles arithmetically align. The least common multiple of 404 and 8 is 808, corresponding to a 56-year repeating cycle (for premium coverage periods only. Looking at the next cycle up, 400 years, there are 21957 coverage periods, (16185 non-premium and 5772 premium periods). Neither of these is divisible by 8, either. The non-premium cycle, therefore, requires 3200 years to re-align, and the premium cycle requires 800 years (least common multiples of [16185, 8], [5772, 8]), which is the time it will take to get back to 2013, calendar/coverage-wise.

Since a 3200-year cycle is probably too long to wait for mathematically-guaranteed equal coverage distribution, another scheme must be implemented. Several possibilities are illustrated on this page. The left-hand table depicts a straight rotation scheme blind to premium vs. non-premium periods. Since 6 out of the 14 calendar types have 56 (divisible by 8) coverage periods, this leads to "clumping" of premium coverage for certain individuals for certain premium periods, and does not result in equitable premium coverage distribution.

The next simplest scheme would be to "uncouple" premium and non-premium coverage periods, having each rotate separately. For practical purposes, this works fine when neither number of premium periods (14 and 15) is integer divisible by the number of docs (to work perfectly, those quantities would need to be relatively prime), as portrayed in the center table on the linked page. However, if we go back down to 7 docs, it doesn't. Why? 8 of the 14 calendar types have 14 premium periods, and there are blocks of 4 consecutive years which each have that number of premium periods. Since 14 is divisible by 7, this would result in 1 doc having the same premium period 4 or even 5 years in a row.

A more generalizable solution, which is the one currently implemented, is illustrated in the right-hand table (and on the right on this page). In this scheme, which should be obvious from the table itself, the 1st premium period of the year rotates through the Coverage Group on an 8-year cycle, assuring equitable premium period distribution. The only issues with this scheme are:
(1) In a 28 year cycle, there are only 12 years with a (premium) weekend between Christmas and New Years (Ch+). Obviously, those "extra" weekends cannot be equally apportioned - 4 docs get 2 of them and 4 docs only get 1. Boo hoo. This could be solved by incorporating a "doc offset" for the next 28 year cycle (in 2044) with a different doc.
(2) Due to the uncoupling of premium and non-premium coverage, in a given year, 1 doc could have 5 non-premium and 2 premium coverage periods (total of 7) and another could have 4 non-premium and 1 premium coverage periods (total of 5). This is a hypothetical but not a real concern. Projecting the schedule out for the remainder of this century, the difference in highest and lowest assigned coverage periods is cumulatively only 3. Check it out.
(3) Since the coverages are uncoupled, a doc could have a premium coverage period immediately preceded or succeeded by a non-premium coverage period. This is easily remedied via some minor arbitrary manual adjustments.

Historical Holiday Coverage
*NYMLKPresPre+PatSpr+MemIndLabColVetThkTh+ChrCh+
2003xxDE????????MK??????JKDE??MK??
2004DE??DE??????MK????MKJKDE??JK
2005DE??JK??????????DE??MKKFDEJK
2006DEMMMKMMJKPCKFDEIBMKPCDEMKJK
2007DEDEMKMMJKMMKFJKVJDEDEVJMKMMMK
2008VJMKMKMMJKJKDEVJKFMKJKNMKFJKJK
2009DEJKKFJKJKNMVJJKDENMMKVJDEMK
2010KFVJMKNMKFMKVJKFDENMJKKFDEJK
2011MKLMKFMKNMSGDEKFSGMKVJNMLMJK
2012VJDEVJKFLMNMMKVJKFDEMKLMDEJKSH
2013DELMNMVJKFMKJKDELMNMVJKFMKJKDE
2014LMNMVJKFMKJKDELMNMVJKFMKJKDELM
2015NMVJKGMKJKDELMNMVJKFKGJKDELM
2016VJKFMKJKDEKGLMNMVJKFMKJKDEKG
2017KFMKJKDEKGLMNMVJKFMKJKDEKGLM
2018MKJKKGLMNMVJKFMKJKKGLMNMVJKFMK
2019LMNMVJKFMKJKMMKGLMNMVJKFMKJKMM
2020KGLMNMVJKFMKJKKGLMNMVJKFMKJK