GlaxoSmithKline – core EPS projected to 2020

Not finished

Disclosure: I’m long GlaxoSmithKline plc (GSK).


• I’ve improved my projections of core EPS based on GSK’s statements.

• The projections for 2020 range from 102.38p to 128.20p with a mean of 114.85p.

• The projections are spread fairly evenly, with no bunching around the mean.

About this piece

GlaxoSmithKline have projected the growth of core EPS through to 2020 in statements like “CAGR of mid-to-high single digits” (for 2016 to 2020). I made numeric projections based on those statements, in “GlaxoSmithKline – upside in the pipeline but some risk to the dividend” December 4, 2015 (on my blogsite, on Seeking Alpha). Here I’ve refined those projections. I’ve based a long piece on just a few statements from GSK, but I want to cover the area properly before I write about cash conversion from core EPS to free cash flow.

Two changes of method

The first difference is that I’ve made a single set of four different assumptions about growth from 2015 to 2016. Previously I’d made low, mid and high assumptions, then I thought they might be too high and recalculated using lower values. With low, mid and high assumptions for the other two periods, there are now 36 different possible combinations. The second difference from my previous work is that I’ve calculated the outcome for each combination.

I’d originally estimated low, mid and high values of 103.32p, 116.25p, and 130.49p for core EPS in 2020, and then after making a more pessimistic assumption I estimated 102.38p, 114.17p and 127.06p. Now I’m projecting a range from 102.38p to 128.20p with a mean of 114.85p.

The spread of results

Calculating the result for every combination of assumed growth rates shows that the results for 2020 core EPS are spread fairly evenly between the lowest and the highest. I’d expected some bunching around the average, a condition which shows up as a peak in a frequency chart, often in the form of a bell curve.

GSK core EPS 2020 variation

The chart above shows that most of the variation depends on the growth assumed for 2016 to 2020, which is not surprising because the period covers four years while the other two periods are only one year long. Visually, the sawtooth pattern has more variation between its lows and highs than there is for the general rise from left to right. The sawtooth pattern is the result of cycling through “low, mid and high” for 2016 to 2020 every time the combination is advanced to the next along the X axis.

The quotes in the graphic are from the Q3 2015 results announcement, and the core EPS of 95.4p to which the growth rates are applied is from the annual report for 2014.

Sorting the projected 2020 values shows how evenly spread the results are.


GSK core EPS 2020 projections - size order

Frequency analysis confirms a flat distribution

There aren’t enough data points to get a good frequency chart (which is why there are a few different ones), but it’s clear that there isn’t much bunching around the average.

GSK projection frequency charts

GSK wide frequency chart

Whether or not you agree that the distribution in the frequency charts is essentialy flat, it’s clear that the charts are not consistent with a bell curve, or any curve with a peak in the middle and small tails either side. In particular, the charts do not suggest that 2020 core EPS at the low end of the range is unlikely. That matters, because at the low end of the range, the dividend cover is not great, and cash conversion from core EPS to free cash flow has not been great either.

I’ve also tried weighting the results that went into the frequency analysis, so that a “mid” assumption carries twice the weight of a “low” or “high” assumption (for 2016, “mid” and “high” were given double weight, relative to “low” and “higher”).

GSK weighted projection frequency charts

GSK wide weighted frequency chart with trend

The chart above has a line fitted, but the value of R squared means it only explains 3.7% of the variation so it’s not very meaningful. If you want to check that with an online test, find “Statistical significance” below.

The line represents an exponential function, I also tried fitting a linear, logarithmic and power function but the results explained even less of the variation.

The weighted frequency charts are still more flat than bell-shaped, with no reason to believe results at the low end are particularly unlikely.

I could also have tested for a peak by fitting a line to the left half of a frequency chart and seeing if it sloped up, and by fitting a line to the right half of the chart and seeing if it sloped down. Instead I rearranged the bars in a way that’s like folding a chart, leaving the central bars on the left and the leftmost and rightmost bars on the right. A peak in the middle before the ‘fold’ would show up as a fitted line sloping down to the right, after the fold.

GSK sorted unweighted frequency chart with trend

The R squared value of 0.009 in the chart above means the line fitted only explains 0.9% of the variation. If you take the default assumption to be that the distribution is flat, the R squared value says there’s not good evidence to say otherwise. Even if the line is accurate, the slope is gentle and a 2020 core EPS in the bottom or top sub-range is almost as likely as it being in one of the two central sub-ranges.

Every fitted line shown here is the best fit out of linear, exponential, logarithmic and power.

The next chart is the weighted version of the chart above (i.e. the weighted frequency chart was ‘folded’ and a line was fitted).

GSK sorted weighted frequency chart with trend

The value of R squared in the chart above means the fitted line only explains 13.5% of the variation. There’s a 13.36% chance of getting a line that fits that well by chance, and it’s common to reject a trend line (or any hypothesis) where a false positive has a 5% chance or more. Even when the middle cases (as in “mid” out of low, mid and high assumptions) are given double the weight of the other cases, it does not result in an overall peak in the middle that you can be confident is real. The odds are still in favor of the trend line, but the line fitted has a fairly gentle slope and the lowest and highest sub-ranges are still quite likely if the trend line approximates reality.

Please note, I’m not saying that the probability distribution for 2020 core EPS does not have a peak in the middle, I’m only investigating the implications of GSK’s statements and my numeric interpretations of them. So far as I can tell, if you rely on GSK’s statements and you believe my low, mid and high (and higher) assumptions are reasonable, then to be consistent you can’t rely on the bottom-of-the-range outcomes being as unlikely as they’d be if the frequency peaked significantly in the middle. If you believe GSK’s statements are conservative rather than accurate without positive or negative bias, then it’s reasonable to believe that bottom-of-the-range outcomes are unlikely.

In statistics a data set usually represents either a whole population or samples from it. The 36 projections here are not a sample, but they represent estimated scenarios so they are not the usual kind of population either. The objection could be made that the data is not suitable for testing statistical significance. In my opinion, in this context it doesn’t matter that the data points are not conventional observations, but it’s not an easy objection to counter. If you believe the objection makes my confidence tests irrelevant, it leaves the confidence levels unknown, and does not prove that the low-growth sub-ranges are much less likely than the others.

Rescaling for dividend cover

Dividing by 80p gets the dividend cover (from the Q3 2015 results announcement, “The Group also stated its intention to pay an annual ordinary dividend of 80p for each of the next three years (2015-2017).”).

GSK div cover from core EPS 2020 projections - size order

How projected core EPS fans out

Next I project core EPS for each combination of assumptions. The result is a series of lines fanning out with no obvious concentration inside the range. (The units are pence per share.)

GSK core EPS projections - fan

Projected CAGR – the difference a year makes

GSK core EPS CAGR from 2014

GSK core EPS CAGR from 2015

There are fewer lines in the chart above because the three possibilities for growth from 2014 to 2015 are not relevant. The apparent convergence towards just three lines is the result of two facts – the assumptions for 2016 to 2020 core EPS have more influence in the later years, and three different assumptions were made for the period: low, mid and high. There’s no reason to expect a ‘tri-modal’ distribution, and a 2020 value in the gaps is probably about as likely as a value inside one of the three groups of lines.

In the rest of the piece I show and explain the work which supports the results given above, although that could be too much information for some readers.


In theory, to tell you how peaked the projections are for 2020 core EPS, I should be able to just give the kurtosis number. There are four problems with that. 1) For most readers I’d have to chart distributions with various kurtosis numbers to provide the required context. 2) Excess kurtosis is kurtosis minus three, and excess kurtosis is often called kurtosis with no explanation, in software as well as texts. 3) There are different measures of kurtosis. 4) Different software gives different results, not just different by 3. That’s probably because they use different methods, without always saying which method is used.

Here are results from OpenOffice Calc:

GSK core EPS kurtosis spread and formulas

(The cells refered to in the formulas are shown further down.)

For 2020 core EPS, kurtosis is given as -1.17. From an online kurtosis calculator, the kurtosis is 1.82063593203. If you want to check the online result, here’s the data I entered, but you’ll need to join the four separate lines into a single line –


If you find “one of those turned the formulas into figures” below, you’ll see the table those figures were taken from, in cells X66 to X101, the range shown in the image above for 2020 kurtosis.

The likely explanation for the difference is on this second online calculator, which gives more than one result (and insists on non-commercial use and a citation, which is why I’ve only given a link).

In any case, the kurtosis of -1.17 given by OpenOffice suggests the distribution is flat, because their documentation for the function gives 0.2 for the slightly peaked distribution 1, 3, 4, 5, 7. However the software gives some non-intuitive results, such as a massive kurtosis of 9 for 0, 1, 1, 1, 1, 1, 1, 1, 1 which I would call almost flat. That result is not unique to OpenOffice.

For usage of Excel’s KURT function go here.


The 36 projections for 2020 core EPS are only slightly skewed, which more or less means the tail on the right of the peak is a little bigger than the tail on the left. A perfectly symmetric distribution has zero skewness, and a negative value means the tail on the left is bigger than the tail on the right.

The same data as is listed above can be put into online skewness calculators, on,,,, to get 0.07, 0.068359, 0.069329, 0.0684 and 0.06836, where only the third result is different after allowing for rounding. Skewness is worth checking in case it’s high. The distribution 1,1,1,1,1,1,1,1,1,100 has a mean of 10.9 but the high skewness of 2.53 is a clue that you aren’t likely to get near 10.9 for a single result (variance and standard deviation also tell you that) and you aren’t likely to get a result near the middle of the range from 1 to 100, which is 50.5.

For more on skewness see  (elementary but with clear diagrams), Wikipedia (quite readable), OpenOffice, and Excel. Wikipedia warns that textbooks are wrong when they say a right (positive) skew implies that the mean is bigger than the median. They also distinguish between long tails and heavy tails, which I why I cautiously wrote “more or less” about the meaning of skewness in terms of tails.

Sites don’t give much idea of how much assymetry is implied by a skewness value such as 0.07. I’ve given an extremely assymetric case where skewness was 2.53, and OpenOffice give a short case where moderate skewness gets 0.885 (for 1,3,4,5,9 – note that 1,3,4,5,7 is symmetric and has zero skewness).

The ncalculators site also gives a single median of 114.7, which is only slightly below the mean of 114.9. (The site also gives a third and different value for kurtosis of 1.77.)

Frequency charts

Wikipedia have a quite readable page about Frequency distributions, and you can find many elementary texts by searching for “frequency tables”.

I’ve used the term “sub-range” for the parts produced by chopping the total range into equal parts, but “bin” is a common term with the same meaning. A sub-range or bin is also a class, but “class” is also used for discrete cases where you wouldn’t use those terms, for example if the classes are “Democrat” and “Republican”.

It would have been conventional to divide the 36 cases into six classes (from the square root of 36, or the more accurate formula C = 1 + 3.3 * log(n)), but I like to get various views of the same data so I used 4, 5 and 18 classes. For a small data set, a value can be very close to the edge of a class and a tiny difference in the value would make a significant difference to the table. If a single value is not the minimum or maximum value, it’s hard for it to be close to the edge of a sub-range in three different ways of dividing the total range into equal sub-ranges, especially when one of the divisions is into a prime number of classes (as in the bar chart with 5 bars).

Some of the frequency charts shown earlier (the ones with 4 or 5 bars representing sub-ranges) were derived from versions of the chart showing projected core EPS in size order (after “shows how evenly spread the results are”, above). To make room on the right, I rescaled the X axis to start at 90p (core EPS), which makes the variation look greater (if you don’t read the scale on the X axis). I then divided the 2020 core EPS values into ranges of equal size, and made various notes on the right.

GSK core EPS 2020 in 4 subranges

In the chart above, there are ten purple bars in the bottom range (from 102.38p to 108.835p). That’s noted on the right by “10 projections”. The figure “10” was used in the unweighted frequency chart for four sub-ranges. Getting the figures for the weighted frequency charts was more complicated, and the scheme is shown in the next chart. One of the purple bars is labelled “MH2L”. The “M” counts as “inner” because it’s the “mid” possibility out of low, mid or high. The “H2” counts as “outer” because it’s the “higher” on the end of the possibilities low, mid, high and higher, and the “L” for “lower” counts as “outer” because it’s at the begining of low, mid and high (if it’s the lowest or highest growth case, it’s “outer”). So MH2L contributes two to the “outer” count and one to the inner count.

GSK symbol weighting

In the previous bar chart, the counts are shown to the right of the purple bars, as –

21 outer
9 inner

The weighted score of 39 was obtained by multiplying the “inner” 9 by 2, and adding the “outer” count 21, to get 9*2 + 21 = 18+21 = 39. The figure 39 is used for the sub-range in the four bar weighted frequency diagram. I also checked that the results agreed with the formula: projections = 3 * (outer + inner). The multiplication by 3 is because there are three symbols for each combination (one symbol for each period), and each of them is categorized as either outer or inner.

In the bar chart above, the total range was split into four, and I’ve described the procedure for the bottom sub-range represented by the purple bars. It’s similar for the other sub-ranges (represented by other colors), and the same kind of procedure was applied in the next chart to the five equal sub-ranges that the total range was divided into.

GSK core EPS 2020 in 5 subranges

The other frequency charts have 18 sub-ranges. The procedure for getting the data for those charts was more complicated, expecially for the ‘folded’ charts. It might be possible to figure it out from the spreadsheet images shown later, but it might be easier to make your own frequency charts if you want to check the results.

There’s a subtle selection bias in the frequency tables – by considering the total range between the lowest and highest values, when the range is divided into sub-ranges, the lowest sub-range is guaranteed to include at least one item (the lowest value), and the highest sub-range will also include at least one item (the highest value). However, even if 1 is subtracted from the top and bottom sub-ranges (or 3 for the weighted versions), the results do not look like bell curves. As a test, I omitted the lowest and the highest range from the 18-bar ‘folded’ weighted frequency chart, while not changing the division into sub-ranges. That got p=0.0643. That’s closer to being under the threshold of 0.05 which is often used to test significance, but it’s still over the threshold and the omissions are a severe correction of the selection bias, likely to bias results in the other direction (in favor of being confident about a frequency peak in the middle).

A technical note about frequency

I’ll explain the problem with a simplified example. Suppose in a set of numbers, the smallest is 2 and the biggest is 5. The size of the range is 5-2 = 3. Suppose you want to divide the range into three equal sub-ranges and count the number of numbers in each of them. A first attempt at writing the selection criteria might look like this (for a value V) –

1) 2<=V<3
2) 3<=V<4
3) 4<=V<5

The problem with the criteria is that the maximum value 5 doesn’t fit anywhere. The simplest way to solve the problem is to re-write 3) as –

3) 4<=V<=5

even though it doesn’t look consistent with the other criteria. I did something like that when making the frequency charts, but it was a mental step and you won’t see “<=” in the formulas.

The math behind the even spread

For anyone interested in the math, there’s a simple explanation of why the 2020 projections are spread evenly. If you flip an unbiased coin four times and count the number of heads, two heads are more likely than no heads or four heads, because there are six ways of getting two heads (TTHH, THTH, HTTH, THHT, HTHT and HHTT), but only one way of getting no heads (TTTT) or four heads (HHHH). That’s also true for your winnings if you won one dollar for each head. But, if you won $8 if the first flip was heads, $4 for the second flip, $2 for the third and $1 for the fourth, there’s no bunching around the average. Possible winnings range from $0 to $15, and for each whole number of dollars in that range, there’s exactly one way of getting it. For example, the only way to get $6 is from THHT where the winnings are $0 + $4 + $2 + $0. The outcomes can be converted to binary numbers which give the value of the winnings, e.g. THHT becomes 0110 which is 6 in base 10. No other binary number equals 6, and a range of binary numbers can’t bunch around the average any more than for a range of decimal numbers such as 0 to 15.

The relevance to the projections here is that the result is sensitive to the assumptions about the 2016 to 2020 period, because it lasts four years. That’s like the ‘eight dollar bet’ in the example. I can’t prove that the effect of the assumptions is weighted just right to give the linearity in the results, but maybe it’s evident due to the results following mathematically from the assumptions. I expect there would be a bell curve if I modeled growth over 2016 to 2020 separately for each year, but a wider range of assumed growth for each year might be required.

Statistical significance

You can check the significance of a trendline courtesy of the Department of Obstetrics and Gynaecology at The Chinese University of Hong Kong, here. If the site redirects you to its home page, navigate through:

Statistics Tool Box / Statistical Tests / Correlation / Stat sig of r

Otherwise you just need to pick “Stat sig of r” from the options under “Correlation” which is in the list on the left.

I’ve given values of R squared for every trendline, and you need to get R (the square root of R squared) to put in the box labelled “Correlation coefficient (r)”.

For example, there’s a chart above (find “only explains 2.9% of the variation”) where the graphic shows an R squared value of 0.029. A calculator gives R (the square root) as 0.17029, which is what you put into the box labelled “Correlation coefficient (r)”. You put 18 into the “Sample size” box, because there are 18 bars in the chart (and 18 points to which a line was fitted). Then, clicking the “Statistical significance” button gets –


t=0.6913; df=16; p=0.4993

The value of p is (roughly) a measure of the probability of getting a line which fits that well purely by chance. With p at 0.4993, which is very nearly 0.5, you have nearly a 50% chance of getting a line that fits that well just by chance, so you can’t have confidence in the fitted line. Because it was the best fit out of four different functions, it’s reasonable to fall back on the standard default assumption that there is no relation (or trend), instead the values are random around the average. It’s conventional to pick a confidence level before making a confidence test, such as p<0.05 (a one in twenty chance of a false positive) or p<0.01 (one chance in 100 of a false positive).

Spreadsheet tables

In the rest of the piece I show the spreadsheet tables the charts are based on, and some of the formulas. In the first image you can see I labelled the fourth assumed value of growth in 2016 as “higher”. I could just as well have shifted the values to the left in the table and labelled them “lower”, “low”, “mid” and “high”.

GSK core EPS growth multiples spread

GSK core EPS growth from 2014 spread

GSK core EPS projections spread

There are no formulas for the next chart. I needed to copy, transpose and sort, and one of those turned the formulas into figures.

GSK core EPS sorted on 2020 value - spread

GSK dividend cover using sorted core EPS  - spread

I didn’t use a spreadsheet for the calculations for the four bar and five bar frequency charts. I show the tables I used for the 18-bar charts, but some of the procedure was manual and and not easy to explain (or follow, probably).

GSK frequency spread

The next image shows a selection of formulas. Showing all of them would take a lot of space, so I’ve only shown the first few columns. The formulas follow a pattern, and most of the formulas were put in the cells by dragging.

GSK core EPS projections formulas

The last image is the formula view of the tables used for the 18-bar frequency charts.

GSK frequency formulas

That’s all, thank you for reading this.

DISCLAIMER: Your investment is your responsibility. It is your responsibility to check all material facts before making an investment decision. All investments involve different degrees of risk. You should be aware of your risk tolerance level and financial situations at all times. Furthermore, you should read all transaction confirmations, monthly, and year-end statements. Read any and all prospectuses carefully before making any investment decisions. You are free at all times to accept or reject all investment recommendations made by the author of this blog. All Advice on this blog is subject to market risk and may result in the entire loss of the reader’s investment. Please understand that any losses are attributed to market forces beyond the control or prediction of the author. As you know, a recommendation, which you are free to accept or reject, is not a guarantee for the successful performance of an investment.