It just so happens that there's a a convenient pattern to whom is usually called to be the next prophet of The Church of Jesus Christ of Latter-day Saints. For most of the 20th century and all of the 21st century so far, the pattern has been that the prophet of the church is the most senior apostle (by date of calling to the Quorum of the Twelve) becomes the prophet when the previous prophet dies. There are 15 of these apostles at any given time: three in the "First Presidency", comprising the prophet and his two counselors, and twelve in the Quorum of the Twelve Apostles.
Given the ages of the apostles and some average actuarial life tables (which we use here despite knowing that these men are generally far healthier than the average population), we can fairly easily calculate the likely age of death of the current apostles and rank them by seniority to find some likely scenarios for new prophets.
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from datetime import datetime, timedelta
from collections import defaultdict
Here we load some actuarial life tables which give the population-level probability of death at any particular age.
full_life_table = pd.read_csv('data/life_table.csv')
full_life_table.set_index('Age',inplace=True)
full_life_table[80:90]
M | F | |
---|---|---|
Age | ||
80 | 0.061620 | 0.043899 |
81 | 0.068153 | 0.048807 |
82 | 0.075349 | 0.054374 |
83 | 0.083230 | 0.060661 |
84 | 0.091933 | 0.067751 |
85 | 0.101625 | 0.075729 |
86 | 0.112448 | 0.084673 |
87 | 0.124502 | 0.094645 |
88 | 0.137837 | 0.105694 |
89 | 0.152458 | 0.117853 |
# grab the values for the "Male" column
prob_death = full_life_table.M.values
It would be slightly more convient to work with these values if we knew, for a man of any particular age, the probability of being alive at any age. We calculate a new life table which has along each row $x$ the probability that a man of age $x$ will live to reach age $y$.
# Create a new life table
l = len(prob_death)
life_table = np.ones((l,l))
for i in range(0,l,1):
for j in range(i,l,1):
life_table[i][j]=np.prod(1 - prob_death[i:j+1])
# Load current apostle ages and seniority
apostle_data = pd.read_csv('data/apostles.csv')
apostle_data
Name | Birth | Twelve | Ordained | Seniority | |
---|---|---|---|---|---|
0 | Thomas S. Monson | 08/21/1927 | 10/04/1963 | 10/10/1963 | 1 |
1 | Boyd K. Packer | 09/10/1924 | 04/06/1970 | 04/09/1970 | 2 |
2 | L. Tom Perry | 08/05/1922 | 04/06/1974 | 04/11/1974 | 3 |
3 | Russell M. Nelson | 09/09/1924 | 04/07/1984 | 04/12/1984 | 4 |
4 | Dallin H. Oaks | 08/12/1932 | 04/07/1984 | 05/03/1984 | 5 |
5 | M. Russell Ballard | 10/08/1928 | 10/06/1985 | 10/10/1985 | 6 |
6 | Richard G. Scott | 11/07/1928 | 10/01/1988 | 10/06/1988 | 7 |
7 | Robert D. Hales | 08/24/1932 | 04/07/1994 | 04/07/1994 | 8 |
8 | Jeffrey R. Holland | 12/03/1940 | 06/23/1994 | 06/23/1994 | 9 |
9 | Henry B. Eyring | 05/31/1933 | 04/01/1995 | 04/01/1995 | 10 |
10 | Dieter F. Uchtdorf | 11/06/1940 | 10/02/2004 | 10/07/2004 | 11 |
11 | David A. Bednar | 06/15/1952 | 10/07/2004 | 10/07/2004 | 12 |
12 | Quentin L. Cook | 09/08/1940 | 10/06/2007 | 10/11/2007 | 13 |
13 | D. Todd Christofferson | 01/24/1945 | 04/05/2008 | 04/10/2008 | 14 |
14 | Neil L. Andersen | 08/09/1951 | 04/04/2009 | 04/09/2009 | 15 |
For programming convenience, this class captures some simple calculations we will need to do for each prophet.
class Apostle:
def __init__(self,name,birth,twelve,ordained,seniority):
self.name=name
self.birth=datetime.strptime(birth,'%m/%d/%Y')
self.twelve=datetime.strptime(twelve,'%m/%d/%Y')
self.ordained=datetime.strptime(ordained,'%m/%d/%Y')
self.seniority=seniority
def __str__(self):
return self.name
def age(self,year):
"""Return the apostle's age in a particular year."""
return year-self.birth.year
def current_age(self):
"""Return the apostle's age in the current year."""
current_year = datetime.now().year
return self.age(current_year)
def most_probable_death_year(self,life_table):
"""Return the apostle's most likely year of death given
a particular life table."""
current_age = self.current_age()
age_of_death = np.argmax(life_table[current_age]<.5)
return self.birth.year + age_of_death
def most_probable_life_state(self,year,life_table):
"""Return True if, given the most probable year of death,
the apostle is alive in any part of a particular year
given a particular life table."""
return year <= self.most_probable_death_year(life_table)
def simulate_death_year(self,life_table):
"""Return a death year randomly drawn from the distribution
of likely death years given a particular life table."""
death_year = np.argmin(life_table[self.current_age()] > np.random.random(len(life_table[0])))
return self.birth.year + death_year
def simulate_life_state(self,year,life_table):
"""Return True if the apostle is alive given a year of death
drawn from the distribution of likely death years given
by a particular life table."""
life_state = self.simulate_death_year(life_table)
return year <= self.simulate_death_year(life_table)
# Create apostle objects and print their ages
apostles = []
for i,row in apostle_data.iterrows():
apostle = Apostle(row.Name,row.Birth,row.Twelve,row.Ordained,row.Seniority)
apostles.append(apostle)
print "{}. {} is {} years old".format(apostle.seniority,apostle.name,apostle.current_age())
1. Thomas S. Monson is 87 years old 2. Boyd K. Packer is 90 years old 3. L. Tom Perry is 92 years old 4. Russell M. Nelson is 90 years old 5. Dallin H. Oaks is 82 years old 6. M. Russell Ballard is 86 years old 7. Richard G. Scott is 86 years old 8. Robert D. Hales is 82 years old 9. Jeffrey R. Holland is 74 years old 10. Henry B. Eyring is 81 years old 11. Dieter F. Uchtdorf is 74 years old 12. David A. Bednar is 62 years old 13. Quentin L. Cook is 74 years old 14. D. Todd Christofferson is 69 years old 15. Neil L. Andersen is 63 years old
Now we define two more functions to help us calculate who is prophet in a particular year. Each of these functions uses a different method to calculate who will be prophet:
The simplest method simply calculates which year each apostle is likely to die in (by taking the first year they are more likely to be dead than alive) and returns the most senior living apostle who is more likely to be alive than dead.
A slightly more interesting (and more robust) method runs a simulation for each apostle, making draws from the whole distribution of probable years of death. If we run this simulation many many times, we will end up with estimates of the probability that each apostle will be prophet in any particular year. This method will end up giving us a clearer picture than the winner takes all method.
This method repeats the Monte-Carlo simulation but allows for manual adjustment of the health of the apostles be adding or subtracting years from their life. By default, since all have lived very healthy lives, eight years are subtracted from each of their ages (to simulate an average life expectancy of 85. From there, up to two years is added or subtracted to account for perceived health status (very unhealthy, unhealty, normal, healthy, very healthy).
# define some helper functions for calculating who is prophet in a particular year
# using two different methods
def most_probable_prophet_in_year(apostles,year,life_table):
"""Return the apostle (given a list of apostles) most likely
to be prophet in a particular year"""
apostles_alive = [apostle for apostle in apostles
if apostle.most_probable_life_state(year,life_table)]
if len(apostles_alive) == 0:
return None
apostle_index = np.argmin([apostle.seniority for apostle in apostles_alive])
return apostles_alive[apostle_index]
def simulate_prophet_in_year(apostles,year,life_table):
"""Return the apostle (given a list of apostles) who is prophet
in a particular year after simulating each apostle's life state
in the given year."""
apostles_alive = [apostle for apostle in apostles
if apostle.simulate_life_state(year,life_table)]
if len(apostles_alive) == 0:
return None
apostle_index = np.argmin([apostle.seniority for apostle in apostles_alive])
return apostles_alive[apostle_index]
# Plot a histogram of each apostle's likely death years
for apostle in apostles:
death_year_dist = []
for i in range(10000):
death_year_dist.append(apostle.simulate_death_year(life_table))
plt.hist(death_year_dist,bins=range(2014,2040))
plt.title("Histogram of year of death of {}".format(apostle.name))
plt.show()
# Given our model, who is most likely to be prophet in the year 2020?
print most_probable_prophet_in_year(apostles,2020,life_table)
Dallin H. Oaks
# Given our model, who is most likely to be prophet in every year from now until 2040?
for year in range(2014,2040):
print "{}: {}".format(year, most_probable_prophet_in_year(apostles,year,life_table))
2014: Thomas S. Monson 2015: Thomas S. Monson 2016: Thomas S. Monson 2017: Thomas S. Monson 2018: Thomas S. Monson 2019: Dallin H. Oaks 2020: Dallin H. Oaks 2021: Jeffrey R. Holland 2022: Jeffrey R. Holland 2023: Jeffrey R. Holland 2024: Jeffrey R. Holland 2025: Jeffrey R. Holland 2026: David A. Bednar 2027: David A. Bednar 2028: David A. Bednar 2029: David A. Bednar 2030: David A. Bednar 2031: David A. Bednar 2032: David A. Bednar 2033: David A. Bednar 2034: David A. Bednar 2035: None 2036: None 2037: None 2038: None 2039: None
What if we looked at the probabilities over 10000 trials? This would give us a more accurate picture of how likely it is that any of the current apostles will be prophet in any particular year. Note that it is possible (and probable) that in some of the later years none of the current apostles will be alive. In these cases, I have assigned a probability of prophethood to "other".
def run_simulation(n_trials,apostles,life_table):
for year in range(2014,2040):
prophets = defaultdict(list)
for i in range(n_trials):
prophet = simulate_prophet_in_year(apostles,year,life_table)
if prophet is not None:
prophets[prophet.name].append(1)
else:
prophets["other"].append(1)
probabilities = []
for key,count in prophets.items():
probabilities.append((key,float(len(count))/n_trials))
probabilities = sorted(probabilities,key=lambda x: x[1],reverse=True)
print year
for name,probability in probabilities:
print " {} ({})".format(name,probability)
print
run_simulation(10000,apostles,life_table)
2014 Thomas S. Monson (1.0) 2015 Thomas S. Monson (0.8719) Boyd K. Packer (0.1071) L. Tom Perry (0.017) Russell M. Nelson (0.0029) Dallin H. Oaks (0.001) M. Russell Ballard (0.0001) 2016 Thomas S. Monson (0.6626) Boyd K. Packer (0.1932) L. Tom Perry (0.0702) Russell M. Nelson (0.042) Dallin H. Oaks (0.0249) M. Russell Ballard (0.0046) Richard G. Scott (0.0018) Robert D. Hales (0.0007) 2017 Thomas S. Monson (0.4135) Boyd K. Packer (0.1755) Dallin H. Oaks (0.1323) Russell M. Nelson (0.0947) L. Tom Perry (0.0934) M. Russell Ballard (0.0395) Richard G. Scott (0.0224) Robert D. Hales (0.0184) Jeffrey R. Holland (0.0085) Henry B. Eyring (0.0012) Dieter F. Uchtdorf (0.0003) David A. Bednar (0.0003) 2018 Dallin H. Oaks (0.2291) Thomas S. Monson (0.2185) Boyd K. Packer (0.0996) M. Russell Ballard (0.0817) Russell M. Nelson (0.0817) Robert D. Hales (0.074) Jeffrey R. Holland (0.0675) Richard G. Scott (0.0607) L. Tom Perry (0.056) Henry B. Eyring (0.0152) Dieter F. Uchtdorf (0.0101) David A. Bednar (0.0051) Quentin L. Cook (0.0006) D. Todd Christofferson (0.0002) 2019 Dallin H. Oaks (0.2114) Jeffrey R. Holland (0.19) Robert D. Hales (0.1189) Thomas S. Monson (0.0977) M. Russell Ballard (0.0727) Richard G. Scott (0.064) Dieter F. Uchtdorf (0.0612) Henry B. Eyring (0.0483) David A. Bednar (0.0403) Boyd K. Packer (0.0355) Russell M. Nelson (0.0338) L. Tom Perry (0.016) Quentin L. Cook (0.0046) D. Todd Christofferson (0.0043) Neil L. Andersen (0.0009) other (0.0004) 2020 Jeffrey R. Holland (0.265) Dallin H. Oaks (0.132) David A. Bednar (0.1312) Dieter F. Uchtdorf (0.125) Robert D. Hales (0.1039) Henry B. Eyring (0.0652) Richard G. Scott (0.04) M. Russell Ballard (0.0351) Thomas S. Monson (0.0331) Quentin L. Cook (0.019) D. Todd Christofferson (0.0188) Boyd K. Packer (0.0088) Neil L. Andersen (0.0084) Russell M. Nelson (0.0077) other (0.0036) L. Tom Perry (0.0032) 2021 David A. Bednar (0.2577) Jeffrey R. Holland (0.249) Dieter F. Uchtdorf (0.1565) Dallin H. Oaks (0.0629) Robert D. Hales (0.0594) Henry B. Eyring (0.0473) D. Todd Christofferson (0.041) Quentin L. Cook (0.0364) Neil L. Andersen (0.0331) other (0.0195) Richard G. Scott (0.0133) M. Russell Ballard (0.0123) Thomas S. Monson (0.0082) Russell M. Nelson (0.0016) Boyd K. Packer (0.0015) L. Tom Perry (0.0003) 2022 David A. Bednar (0.3282) Jeffrey R. Holland (0.1894) Dieter F. Uchtdorf (0.137) Neil L. Andersen (0.0747) D. Todd Christofferson (0.0725) other (0.0573) Quentin L. Cook (0.0505) Henry B. Eyring (0.0305) Dallin H. Oaks (0.0249) Robert D. Hales (0.0241) M. Russell Ballard (0.0041) Richard G. Scott (0.0038) Thomas S. Monson (0.0025) Boyd K. Packer (0.0004) Russell M. Nelson (0.0001) 2023 David A. Bednar (0.364) other (0.1301) Jeffrey R. Holland (0.121) Neil L. Andersen (0.1134) Dieter F. Uchtdorf (0.1074) D. Todd Christofferson (0.0892) Quentin L. Cook (0.046) Henry B. Eyring (0.0103) Dallin H. Oaks (0.0088) Robert D. Hales (0.0087) M. Russell Ballard (0.0004) Richard G. Scott (0.0004) Thomas S. Monson (0.0003) 2024 David A. Bednar (0.3459) other (0.2551) Neil L. Andersen (0.1403) D. Todd Christofferson (0.0896) Jeffrey R. Holland (0.0663) Dieter F. Uchtdorf (0.0576) Quentin L. Cook (0.0363) Henry B. Eyring (0.0038) Dallin H. Oaks (0.0025) Robert D. Hales (0.0025) Richard G. Scott (0.0001) 2025 other (0.3829) David A. Bednar (0.2886) Neil L. Andersen (0.1573) D. Todd Christofferson (0.078) Dieter F. Uchtdorf (0.0362) Jeffrey R. Holland (0.0348) Quentin L. Cook (0.0206) Henry B. Eyring (0.001) Robert D. Hales (0.0005) Dallin H. Oaks (0.0001) 2026 other (0.5042) David A. Bednar (0.2446) Neil L. Andersen (0.1506) D. Todd Christofferson (0.0578) Jeffrey R. Holland (0.0168) Dieter F. Uchtdorf (0.0144) Quentin L. Cook (0.0115) Dallin H. Oaks (0.0001) 2027 other (0.6426) David A. Bednar (0.1838) Neil L. Andersen (0.1191) D. Todd Christofferson (0.0353) Dieter F. Uchtdorf (0.0075) Jeffrey R. Holland (0.0063) Quentin L. Cook (0.0054) 2028 other (0.7438) David A. Bednar (0.1305) Neil L. Andersen (0.0975) D. Todd Christofferson (0.021) Dieter F. Uchtdorf (0.003) Jeffrey R. Holland (0.0021) Quentin L. Cook (0.0021) 2029 other (0.8325) David A. Bednar (0.0903) Neil L. Andersen (0.065) D. Todd Christofferson (0.0103) Dieter F. Uchtdorf (0.0007) Quentin L. Cook (0.0007) Jeffrey R. Holland (0.0005) 2030 other (0.8883) David A. Bednar (0.0609) Neil L. Andersen (0.0451) D. Todd Christofferson (0.0053) Quentin L. Cook (0.0002) Jeffrey R. Holland (0.0001) Dieter F. Uchtdorf (0.0001) 2031 other (0.9302) David A. Bednar (0.0399) Neil L. Andersen (0.0282) D. Todd Christofferson (0.0016) Jeffrey R. Holland (0.0001) 2032 other (0.9614) David A. Bednar (0.0248) Neil L. Andersen (0.0128) D. Todd Christofferson (0.001) 2033 other (0.9788) David A. Bednar (0.0126) Neil L. Andersen (0.0083) D. Todd Christofferson (0.0003) 2034 other (0.99) David A. Bednar (0.0067) Neil L. Andersen (0.0033) 2035 other (0.9938) David A. Bednar (0.0043) Neil L. Andersen (0.0019) 2036 other (0.9979) David A. Bednar (0.0011) Neil L. Andersen (0.001) 2037 other (0.9991) David A. Bednar (0.0007) Neil L. Andersen (0.0002) 2038 other (0.9997) Neil L. Andersen (0.0002) David A. Bednar (0.0001) 2039 other (0.9999) David A. Bednar (0.0001)
Interestingly, for many of the years far down the line, the apostle most likely to be prophet is far from clear.
By 2026, only twelve years from now, our model says that it is more likely that someone other than one of the current apostles will be prophet. However, since our model systematically underestimates the age of death of these men, we should take this number with a grain of salt. By 2039, 25 years from now, it's extraordinarily unlikely that any of the current apostles will still be alive.
This model did not explicitly take health state into account, but approximated it using current age. Method 3 is one way of accounting for this.
One way to approximate of actual health status is to adjust their ages to reflect both their current health and the greater-than-average overall health of their demographic.
default = 8
apostle_age_adjustments = {
"Thomas S. Monson": default - 2,
"Boyd K. Packer": default - 2,
"L. Tom Perry": default + 1,
"Russell M. Nelson": default + 2,
"Dallin H. Oaks": default + 1,
"M. Russell Ballard": default,
"Richard G. Scott": default - 2,
"Robert D. Hales": default + 2,
"Jeffrey R. Holland": default,
"Henry B. Eyring": default,
"Dieter F. Uchtdorf": default,
"David A. Bednar": default,
"Quentin L. Cook": default,
"D. Todd Christofferson": default,
"Neil L. Andersen": default}
adj_apostles = []
for apostle in apostles:
age_adj = apostle_age_adjustments[apostle.name]
adj_apostles.append(Apostle(apostle.name,
(apostle.birth + timedelta(days=age_adj*365)).strftime("%m/%d/%Y"),
apostle.twelve.strftime("%m/%d/%Y"),
apostle.ordained.strftime("%m/%d/%Y"),
apostle.seniority))
run_simulation(10000,adj_apostles,life_table)
2014 Thomas S. Monson (1.0) 2015 Thomas S. Monson (0.9338) Boyd K. Packer (0.0598) L. Tom Perry (0.0055) Russell M. Nelson (0.0009) 2016 Thomas S. Monson (0.8046) Boyd K. Packer (0.1447) L. Tom Perry (0.04) Russell M. Nelson (0.0092) Dallin H. Oaks (0.0015) 2017 Thomas S. Monson (0.6346) Boyd K. Packer (0.1939) L. Tom Perry (0.1002) Russell M. Nelson (0.0493) Dallin H. Oaks (0.0174) M. Russell Ballard (0.0035) Jeffrey R. Holland (0.0004) Robert D. Hales (0.0004) Richard G. Scott (0.0003) 2018 Thomas S. Monson (0.4512) Boyd K. Packer (0.1879) L. Tom Perry (0.1355) Russell M. Nelson (0.1124) Dallin H. Oaks (0.0801) M. Russell Ballard (0.02) Richard G. Scott (0.0063) Robert D. Hales (0.0051) Jeffrey R. Holland (0.0012) Dieter F. Uchtdorf (0.0003) 2019 Thomas S. Monson (0.2942) Dallin H. Oaks (0.1737) Russell M. Nelson (0.1458) L. Tom Perry (0.1322) Boyd K. Packer (0.1306) M. Russell Ballard (0.0502) Robert D. Hales (0.03) Richard G. Scott (0.0225) Jeffrey R. Holland (0.0157) Henry B. Eyring (0.0031) Dieter F. Uchtdorf (0.0013) David A. Bednar (0.0006) Quentin L. Cook (0.0001) 2020 Dallin H. Oaks (0.2416) Thomas S. Monson (0.1635) Russell M. Nelson (0.125) Robert D. Hales (0.0874) L. Tom Perry (0.0866) M. Russell Ballard (0.0837) Boyd K. Packer (0.0747) Jeffrey R. Holland (0.0623) Richard G. Scott (0.0458) Henry B. Eyring (0.0131) Dieter F. Uchtdorf (0.0098) David A. Bednar (0.0054) Quentin L. Cook (0.0006) D. Todd Christofferson (0.0003) Neil L. Andersen (0.0002) 2021 Dallin H. Oaks (0.2492) Robert D. Hales (0.1389) Jeffrey R. Holland (0.132) Russell M. Nelson (0.0902) Thomas S. Monson (0.0865) M. Russell Ballard (0.0791) Richard G. Scott (0.0433) L. Tom Perry (0.0414) Dieter F. Uchtdorf (0.0385) Henry B. Eyring (0.038) Boyd K. Packer (0.0294) David A. Bednar (0.026) Quentin L. Cook (0.0041) D. Todd Christofferson (0.0021) Neil L. Andersen (0.0012) other (0.0001) 2022 Dallin H. Oaks (0.2046) Jeffrey R. Holland (0.198) Robert D. Hales (0.1533) Dieter F. Uchtdorf (0.085) David A. Bednar (0.0739) Henry B. Eyring (0.0588) M. Russell Ballard (0.0586) Russell M. Nelson (0.048) Thomas S. Monson (0.0371) Richard G. Scott (0.0305) L. Tom Perry (0.0158) Quentin L. Cook (0.0115) D. Todd Christofferson (0.0096) Boyd K. Packer (0.009) Neil L. Andersen (0.0044) other (0.0019) 2023 Jeffrey R. Holland (0.2333) David A. Bednar (0.1466) Dallin H. Oaks (0.139) Robert D. Hales (0.1301) Dieter F. Uchtdorf (0.1267) Henry B. Eyring (0.0578) M. Russell Ballard (0.0356) Quentin L. Cook (0.0294) D. Todd Christofferson (0.024) Russell M. Nelson (0.0192) Richard G. Scott (0.0165) Neil L. Andersen (0.0149) Thomas S. Monson (0.0105) other (0.0081) L. Tom Perry (0.0051) Boyd K. Packer (0.0032) 2024 David A. Bednar (0.2269) Jeffrey R. Holland (0.2171) Dieter F. Uchtdorf (0.1474) Robert D. Hales (0.0925) Dallin H. Oaks (0.0851) D. Todd Christofferson (0.047) Henry B. Eyring (0.0461) Quentin L. Cook (0.0377) Neil L. Andersen (0.0358) other (0.0265) M. Russell Ballard (0.017) Russell M. Nelson (0.0077) Richard G. Scott (0.0067) Thomas S. Monson (0.0049) L. Tom Perry (0.0013) Boyd K. Packer (0.0003) 2025 David A. Bednar (0.2883) Jeffrey R. Holland (0.1835) Dieter F. Uchtdorf (0.1288) Neil L. Andersen (0.0688) D. Todd Christofferson (0.0671) other (0.0634) Robert D. Hales (0.0604) Quentin L. Cook (0.0494) Dallin H. Oaks (0.0459) Henry B. Eyring (0.0335) M. Russell Ballard (0.0054) Russell M. Nelson (0.0018) Richard G. Scott (0.0015) Thomas S. Monson (0.0015) L. Tom Perry (0.0005) Boyd K. Packer (0.0002) 2026 David A. Bednar (0.3145) Jeffrey R. Holland (0.1304) other (0.1249) Dieter F. Uchtdorf (0.1111) Neil L. Andersen (0.0989) D. Todd Christofferson (0.0832) Quentin L. Cook (0.0564) Robert D. Hales (0.0314) Dallin H. Oaks (0.0254) Henry B. Eyring (0.0203) M. Russell Ballard (0.0023) Richard G. Scott (0.0006) Russell M. Nelson (0.0005) Boyd K. Packer (0.0001) 2027 David A. Bednar (0.3186) other (0.2093) Neil L. Andersen (0.1241) Jeffrey R. Holland (0.096) D. Todd Christofferson (0.0873) Dieter F. Uchtdorf (0.0834) Quentin L. Cook (0.044) Robert D. Hales (0.0158) Dallin H. Oaks (0.0108) Henry B. Eyring (0.0101) M. Russell Ballard (0.0006) 2028 other (0.3176) David A. Bednar (0.2935) Neil L. Andersen (0.1423) D. Todd Christofferson (0.0815) Jeffrey R. Holland (0.0587) Dieter F. Uchtdorf (0.0574) Quentin L. Cook (0.0337) Robert D. Hales (0.008) Henry B. Eyring (0.004) Dallin H. Oaks (0.0032) M. Russell Ballard (0.0001) 2029 other (0.4345) David A. Bednar (0.2557) Neil L. Andersen (0.1527) D. Todd Christofferson (0.0679) Jeffrey R. Holland (0.0328) Dieter F. Uchtdorf (0.0296) Quentin L. Cook (0.0213) Robert D. Hales (0.0026) Dallin H. Oaks (0.0015) Henry B. Eyring (0.0014) 2030 other (0.5404) David A. Bednar (0.2142) Neil L. Andersen (0.1383) D. Todd Christofferson (0.0548) Dieter F. Uchtdorf (0.0189) Jeffrey R. Holland (0.017) Quentin L. Cook (0.0145) Robert D. Hales (0.0009) Henry B. Eyring (0.0005) Dallin H. Oaks (0.0005) 2031 other (0.6445) David A. Bednar (0.1731) Neil L. Andersen (0.1179) D. Todd Christofferson (0.0385) Jeffrey R. Holland (0.0093) Dieter F. Uchtdorf (0.0084) Quentin L. Cook (0.0076) Robert D. Hales (0.0004) Henry B. Eyring (0.0002) Dallin H. Oaks (0.0001) 2032 other (0.7402) David A. Bednar (0.1286) Neil L. Andersen (0.0933) D. Todd Christofferson (0.0249) Jeffrey R. Holland (0.0054) Dieter F. Uchtdorf (0.0048) Quentin L. Cook (0.0027) Dallin H. Oaks (0.0001) 2033 other (0.8066) David A. Bednar (0.0965) Neil L. Andersen (0.0729) D. Todd Christofferson (0.0185) Dieter F. Uchtdorf (0.0024) Jeffrey R. Holland (0.0018) Quentin L. Cook (0.0013) 2034 other (0.866) David A. Bednar (0.0697) Neil L. Andersen (0.0553) D. Todd Christofferson (0.0077) Dieter F. Uchtdorf (0.0008) Jeffrey R. Holland (0.0004) Quentin L. Cook (0.0001) 2035 other (0.9032) David A. Bednar (0.0509) Neil L. Andersen (0.0395) D. Todd Christofferson (0.0056) Quentin L. Cook (0.0004) Jeffrey R. Holland (0.0002) Dieter F. Uchtdorf (0.0002) 2036 other (0.9322) David A. Bednar (0.0368) Neil L. Andersen (0.0284) D. Todd Christofferson (0.0024) Jeffrey R. Holland (0.0001) Dieter F. Uchtdorf (0.0001) 2037 other (0.9626) David A. Bednar (0.0197) Neil L. Andersen (0.0169) D. Todd Christofferson (0.0008) 2038 other (0.976) David A. Bednar (0.014) Neil L. Andersen (0.0097) D. Todd Christofferson (0.0003) 2039 other (0.9871) David A. Bednar (0.0074) Neil L. Andersen (0.0054) D. Todd Christofferson (0.0001)