Welcome to my personal site! I hope you enjoyed dogbirthdaycalculator.com.
For dog breeds, I used the top 50 breeds from the American Kennel Club. Life expectancy for each breed mostly comes from Adams et al. 2010, "Methods and mortality results of a health survey of purebred dogs in the UK." "Average" life expectancy is the median. I excluded Belgian Minois (#41), Cane Corso (#30), English Cocker Spaniel (#50), and the Miniature American Shepherd (#29), since Adams et al. doesn't have data for those. For Unknown/general life expectancy (and the "Mixed" life expectancy bonus) as well as for German shepherds, I used O'Neill et al. 2013, "Longevity and mortality of owned dogs in England" instead.
For human life expectancy in each country, I used the 50 most populated countries, with statistics based on the latest United Nations Population Division estimates. I assume no correlation between the average life expectancy of dogs in a certain country and the life expectancy of humans in that country.
Finally, for the custom birthday formulas, the "veterinary" formula comes from the American Veterinary Medical Association. Dogs age 15 dog-years in their first calendar year, 9 more dog-years in their second calendar year, and 5 dog-years for every calendar year after that. For the "scientific" formula, I drew on Wang et al. 2020, "Quantitative translation of dog-to-human aging by conserved remodeling of the DNA methylome" which calculates dog-years with the formula: 16*ln(human-years)+31.
There are a surprising number of subtle choices you have to make when designing date calcuations. I'll briefly highlight two.
First, in order to maintain the common idea of "half-birthdays" or even "quarter-birthdays," you can't just calculate a proportion of the year from the number of calendar days. We would say that a human who's born on Jan 1 has a half-birthday on July 1, because that's 6 months later. But if you just count the number of days, July 1 isn't the midpoint: there are 181 days before it (when there's no Leap Year Day), compared to 184 days from then until the end of the year. Thus, I went to the trouble to implement month-based reckoning, where each month counts as a full 1/12 of the year, whether that's February or December. On the site, you can see that through the indication of how many months old your dog is, and how your dog can be exactly .5 or .25 parts of a year old at 6 month and 3 month intervals.
A second, related nuance is that we don't have a lot of intuition in everyday life for assessing how much of a month has passed. The main exception is that if you reach the end of the month it feels "basically" the same to us as a full month. So if a dog is born on Mar 30, then obviously on Apr 30 it will be one month old. But if a dog is born on Mar 31, then on Apr 30 it will still be "basically" one month old, because we're at the end of April. If your dog is in one of these edge cases, then on the website you'll see their age indicated as "basically" some number of months old.