*31-Dec*FanucciFanucci
7-JanEldridgeEldridge
*14-Jan*KafinaKafina
21-JanGazulaGazula
28-JanL. MikaelL. Mikael
4-FebN. MikaelN. Mikael
11-FebJoshiJoshi
*18-Feb*KrasnerKrasner
*25-Feb*EldridgeEldridge
4-MarFanucciGazula
11-MarKafinaL. Mikael
18-MarKrasnerKrasner
25-MarEldridgeEldridge
1-AprGazulaKafina
8-AprL. MikaelFanucci
*15-Apr*GazulaGazula
*22-Apr*L. MikaelL. Mikael
29-AprN. MikaelN. Mikael
6-MayJoshiJoshi
13-MayFanucciFanucci
20-MayKafinaKafina
*27-May*N. MikaelN. Mikael
3-JunKrasnerKrasner
10-JunEldridgeEldridge
17-JunGazulaGazula
24-JunL. MikaelL. Mikael
1-JulN. MikaelN. Mikael
*3-Jul*JoshiJoshi
8-JulJoshiEldridge
15-JulFanucciFanucci
22-JulKafinaKafina
29-JulKrasnerKrasner
5-AugEldridgeJoshi
12-AugGazulaGazula
19-AugL. MikaelKafina
26-AugN. MikaelN. Mikael
*2-Sep*FanucciFanucci
9-SepJoshiJoshi
16-SepFanucciGazula
23-SepKafinaL. Mikael
30-SepKrasnerEldridge
*7-Oct*KafinaKafina
14-OctEldridgeKrasner
21-OctGazulaFanucci
28-OctL. MikaelL. Mikael
4-NovN. MikaelN. Mikael
*11-Nov*KrasnerKrasner
18-NovJoshiKafina
*23-Nov*EldridgeEldridge
*25-Nov*GazulaGazula
2-DecFanucciFanucci
9-DecKafinaJoshi
16-DecKrasnerKrasner
*23-Dec*L. MikaelL. Mikael
*30-Dec*KafinaKafina
2018 rotation starts with Eldridge
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)
7651475f274f330916130e0158571c117b07667f6c7b686d2a59545952534a474f524a48475608031d06067a5e7f6c7b686d2d505f55381e7a584e4c5252505412050007054a667f6c78220209533b1808017b46565642534a52080502383f4a667c2313196e4d06050818167058474840575157363b39383c070a1a01000803025a72555c53311c190b1a0e1415115d42563f4a667f6f
795143532d4f30041c140406561e107c7263653903140804001f1a09060e6a4f4e57414c57550d01103b7526031a455a58505d16120708066e5a475746416d2d505f55111e7a584e4c52575450120304060163653400171102171f1a09060e6a4f4553444c57560701103b7022174c455a58505d16120803056e5f465542416d015055435a5b252f170a1e4f040a52
7951475f3707174535001d1053531c117b074f7c2a14070e065a121808017b46565341544a54070200113c050e0e455a58505d16120602036e5e4e5543416d2d505f55111e7a584e4c525350511200000102636535001e0d474d0a02081816705f4e48445753571f38725453330a04455a58505d16120707066e58425644416d0e58534a445a222f0f041a0e084b5c5d5d
64595f53261b1745380e140d561e107c7263653903140804001f1a09060e6a4f45544a4c57550f05103b7526031a455a58505d161208010f6e56455041416d2d505f55111e7a584e4c52535156120703020763653400171102171f1a09060e6a4f4553444c54550c04103b7022174c455a58505d161203000e6e5f465044416d13565c555442220519161a082706505f5350453741180006
7f5143422a01562e13070e0b5e1e107c7263653404110a2803595b5354166b56415d5b41555d081f06010f7b4f7c2a14070e065a121808017b4656574a564a55080200113c000a1a095249505d0e1b10060f7a4243504452476f775d5d54166b584e545b415550061f030000774f7c27170417004d121808017b46565746544a540d0703113c050e0e455a58505d161203070f6e5f445042416d085453565858222f13081713140a515a5f42466d000402
78514816014f3d17131209004d1e107c7263653903140804001f1a09060e6a4f4251414c5f550e02103b7e2c0213455a58505d16120405066e58405c4b416d265a5e5c111e765f4e4c525451541205020204636530040a414f5c080a191102775c5b514452534535565f52422c1d1c040b210a04565e565e44200a580b1715
7e595d5f220156281b0a0600531e107c7263653903140804001f1a09060e6a4f45534b4c50520800103b7526031a455a565f5416120302066e5e465544416d2d505f55111e7457474c52595e5c120200010f636530040a414f52070319110473585b5746525345355e5d585d220a1a251f0014165257541f593108
7c51564f63221f0e13040b491f7f74113c0c09100c11045d45170b07091f635c405c5f5650520d123a79592e0a564d4559564c1f0a09081b735f465c526b25005a425543166b56415d5b415f510e1f090201754f7c231319474d080a011816715f4148405554511f3873545a2f4f5e524a504e450c01001c07735e4645780c0e0e5e575c715b221c05081705490a4d55
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