Numbers in context − $1M lump sum, or $1000 per week?

There are some lotteries that allow the choice of $1000 per week for life, or $1,000,000 up front. Let’s look at the math behind it. Now in Canada, prize money is not taxable, so either way there is no tax on the principal amount (once you start earning money on the principal, that money is taxable). One person recently in the news was 20 years old, so well take “life” to mean 60 years on top of that. So is there a better option?

The first option is to take $1M up front. $1M is not really enough to retire on at age 20, so let’s look at some options (you would still need a job, with either option).

If someone were buying a large item, like a house this may be an ideal option. It might leave you with next to no mortgage, which is nice, in fact it might actually save money over the lifespan of the mortgage. For arguments sake, if a house costs $1M, and you need a 20% down-payment regardless, then the mortgage would be for $800,000. At 4% over 25 years, the interest would be around $462K. Not a trivial savings if you pay cash for the house − it’s basically saving $4,208 per month in payments. (Note this is a very simplistic calculation, just to prove a point. Because a fixed rate of 4% for 25 years is unrealistic in any situation, and fixed-rate terms are typically 5 years in Canada).

The alternative of course is to invest the $1M. Now obviously there are a myriad of options here, from risky stock type investments, to more conservative term deposits. It’s hard to look at scenarios here because there are so many options, including whether someone wants a return every year, or just wants the investments to continue growing. Let’s just look at the scenario of a GIC (Guaranteed Investment Certificate), which is fairly low risk (but the money can’t be touched for the term of the investment). Of course any investment gains will be taxed… at what rate really depends on what other income a person has. Then there is also inflation. All investments are compounded annually (for simplicity). In addition it would be approximately $30K a year to add to income come tax time.

 5 years at 3% = $1,159,274 
10 years at 3% = $1,343,916
25 years at 3% = $2,093,777
50 years at 3% = $4,383,906

Of course it’s hard to leave an investment for 10 years without touching it, let alone 50. Of course if you left it for 25 years you would still be $630,000 ahead of the mortgage-free scenario (i.e. you paid the mortgage for 25 years and this is payback). If we factor in inflation of 2% for the 25-year scenario, then the effects of inflation on the principal and interest would mean the total future value is $1,276,222 (Bank of Canada calculator). See, making money from money is tricky. And you still have to pay the taxes on money earned.

Now it is possible to put some money in a TFSA, which is tax-free, but at 20 that’s probably a max of $20,500 if you turned 18 in 2023. Some will say “invest it in the stock market where you can earn 10% and live off the earnings”. Never listen to this sort of advise. The high returns of the stock market come with high risk, and higher taxes on earnings. 10% seems nice, but the wrong strategy can see $1M turn into $200K overnight. I could give a scenario here, but it’s not as simple as compound interest. Needless to say that there is no such thing as ‘fast money’.

The second option is to take $1000 per week for life. That’s $52,000 per year, which is about equivalent to a salary of $70,000 (in Ontario). Over 60 years that’s $3.12M. Like I said, you will likely still need a job, unless you are living off-grid somewhere. That’s tax free money. You could live off it, or pay the mortgage yearly (it just about covers the $800K mortgage), or use part of it and invest part. The good thing is that after 25 years the mortgage is paid, and the remaining 35 years (in a best case scenario) are all gravy. In all likelihood it would allow someone to retire early (because with the mortgage paid, any extra money someone earns can be invested). For example if we put the maximum (current) TFSA contribution $7000, and assume we already have $20,500 then after 35 years at 3% annual growth, the TFSA would be worth $493,615 − tax free.

But let’s not forget inflation. In 25 years the $1000 a week may only be worth $400-$600 in today’s dollars, i.e. you will still get $1000 per week, but it’s purchasing power will be greatly reduced. But if you are young, what $52,000 a year offers is a sense of freedom. This is also a scenario for a 20 year old. Winning the money as a 40 or 50 year old would of course change which option is chosen.

You see there are no easy choices to be made − there is no right or wrong answer, because no-one has a crystal ball to see what the future holds. Every scenario has its pros and cons. But needless to say, if you do win any sort of money, seek the help of a reputable financial advisor from a reputable institution.

Numbers in context − Cookware statistics

Statistics are interesting because they are often used to sway arguments, or entice people. This discussion looks at the impact of normal statistics without an underlying context. Take the example of a cookware company that uses statistics in its advertisements (very few other companies provide statistics of any sort). Some of the statistics are shown below.

  • 103 Michelin-recognized restaurants use the cookware.
  • The cookware is used in over 2,000 global restaurants.
  • 90,000 pans in service.

These numbers may seem significant, but put in context, they are not. For example in the first statement, “100 Michelin-recognized restaurants use the cookware”. Worldwide there are approximately 18,713 Michelin-recognized (not starred) restaurants. So 103/18713 = 0.55%. One would argue that this really isn’t a significant number. If we were to look at only Michelin-starred restaurants, some 3700 worldwide, the number would increase to 103/3700 = 2.78%. The number looks a lot better if we only consider North America, where the number is 1941, so 103/1941 = 5.3% which is 10 times as significant, but still not that much.

For the second statistic, that it is “used by over 2,000 global restaurants”, let’s look at a number of scenarios. This is hard to quantify, because how do you define a “global restaurant”. It has to be different from a run-of-the-mill restaurant, because there could be 15-25 million of those. A better way to look at is to consider the number of professional chefs who run restaurants. Let’s consider just Canada first, where there are 62,200 chefs (2023). This would give us 2000/62200 = 3.2%. If we look at the USA, this number climbs to 286,000, and 0.7%. Neither is earth-shattering, and if we include worldwide restaurants the number just plummets.

The last statistic, 90,000 pans, is quite meaningless. It’s just a reflect of how many pans have been sold, and can’t really be compared to other companies because they don’t publish their data. Some vague figures suggest the Le Creuset foundry in France produces 25,000 items a day. Restaurants use either stainless steel or aluminum pans, and to put the number into context, there are circa 97,000 restaurants in Canada alone (of course the 90,000 pans were not suggested to come from restaurants exclusively).

There is nothing to say that the numbers used in the advertisements are whatsoever incorrect, but they do provide a level of ambiguity because they aren’t given in any frame of reference. Numbers only mean something if put into context.

A statistics program in Cobol

This may be one of the last programs I ever write in Cobol. Now that I won’t be teaching legacy languages anymore, I won’t be spending any time with Cobol (or Ada). This program reads in a file of numbers and calculates a bunch of statistics: mean, standard deviation, geometric mean, harmonic mean, and root mean square.

identification division.
program-id. problems.
environment division.

input-output section.
file-control.
select input-file assign to dynamic fname-inp
    organization is line sequential.

data division.
file section.

fd input-file.
    01 sample-input      pic x(80).

working-storage section.
01 array-area.
   02 x pic s9(6)v9(2) usage is computational-3
      occurs 1000 times.

01 input-value.
   02 in-x pic s9(6)v9(2).
   02 filler pic x(72).

77 fname-inp pic x(30).
77 feof      pic a(1).
77 n         pic 9999 value 0.
77 sum-of-x-sqr   pic 9(10)v9(2).
77 sum-of-x       pic s9(10)v9(2).
77 sum-of-x-mul   pic s9(20)v9(6).
77 temp           pic s9(20)v9(6).
77 sum-of-x-inv   pic s9(10)v9(6).
77 sum-rms        pic s9(20)v9(6).
77 mean           pic s9(10)v9(2).
77 stdev          pic s9(10)v9(2).
77 geom           pic s9(10)v9(2).
77 harm           pic s9(10)v9(2).
77 rms            pic s9(10)v9(2).
77 i              pic 9(6).
01 out-results-1.
   02 filler      pic x(20) value "Mean =              ".
   02 out-mean    pic -(6)9.9(2).
01 out-results-2.
   02 filler      pic x(20) value "Standard dev. =     ".
   02 out-sd      pic -(6)9.9(2).
01 out-results-3.
   02 filler      pic x(20) value "Geometric mean =    ".
   02 out-gm      pic -(6)9.9(2).
01 out-results-4.
   02 filler      pic x(20) value "Harmonic mean =     ".
   02 out-hm      pic -(6)9.9(2).
01 out-results-5.
   02 filler      pic x(20) value "Root mean square =  ".
   02 out-rms     pic -(6)9.9(2).

procedure division.
   display "Input data filename: "
   accept fname-inp.
   open input input-file.
   move 0 to sum-of-x.
   move 0 to sum-of-x-sqr.
   move 0 to sum-of-x-mul.
   move 0 to sum-of-x-inv.
   move 0 to sum-rms.

   perform input-loop until feof="Y".
   display "STATISTICS CALCULATIONS".
   close input-file.
   perform calc-mean.
   perform calc-sd.
   perform calc-gm.
   perform calc-hm.
   perform calc-rms.
   perform finish.

input-loop.
   read input-file into input-value
      at end move 'Y' to feof
      not at end
         add 1 to n
         move in-x to x(n)
         display x(n)
   end-read.

calc-mean.
   perform sum-array varying i from 1 by 1
      until i is greater than n.
   compute mean = sum-of-x / n.
   move mean to out-mean.
   display out-results-1.

sum-array.
   compute sum-of-x = sum-of-x + x(i).

calc-sd.
   perform sum-array2 varying i from 1 by 1
      until i is greater than n.
   compute stdev rounded = (sum-of-x-sqr / n) ** 0.5.
   move stdev to out-sd.
   display out-results-2.

sum-array2.
   compute sum-of-x-sqr = sum-of-x-sqr + (x(i) - mean) ** 2.

calc-gm.
   perform sum-array3 varying i from 1 by 1
      until i is greater than n.
   compute geom = 10 ** (sum-of-x-mul / n).
   move geom to out-gm.
   display out-results-3.

sum-array3.
   compute temp = function log10(x(i)).
   compute sum-of-x-mul = sum-of-x-mul + temp.
   display i, " ", sum-of-x-mul.

calc-hm.
   perform sum-array4 varying i from 1 by 1
      until i is greater than n.
   compute harm = n / sum-of-x-inv.
   move harm to out-hm.
   display out-results-4.

sum-array4.
   compute sum-of-x-inv = sum-of-x-inv + (1.0/x(i)).

calc-rms.
   perform sum-array5 varying i from 1 by 1
      until i is greater than n.
   compute rms = (sum-rms/n) ** 0.5.
   move rms to out-rms.
   display out-results-5.

sum-array5.
   compute sum-rms = sum-rms + (x(i) * x(i)).

finish.
   stop run.