We should use multi-year moving-average Income to calculate tax & benefit payments

Income tax rates are based on current/last year’s income. This makes them easy to calculate and implement.

This immediacy of taxes also makes them painful, and makes the tax slab thresholds as artificial barriers to income mobility. An example of this is when we get a raise which pushes us from near the top end of one tax rate bracket, to the bottom end of a higher tax rate bracket. This frequently means that even though the employer is paying us more after the raise, we are actually taking home less money due to a higher tax rate.

Government benefits work similarly. For example, the unemployment benefit / social support payments cut off (or reduce dramatically) when we start working. However, after accounting for taxes and loss of benefits, the take home income from pay is often lower than the unemployment benefits.

Some usual solutions to these issue from the right may be – single tax slab across income levels for the former, and reducing/removing unemployment benefits for the latter.

Some usual solutions from the left might be – more progressive tax slabs with higher min income thresholds and higher taxes on high income earners for the former, and a combination of higher minimum wages and slow tapering benefit programs for the latter.

I think there’s a third solution going untried. Both, income tax slabs and social benefit payments, should be based on a moving average income over 3-5 years, instead of the current/last year income.

This income smoothing (for purposes of tax rates) helps remove the sudden shocks to real take-home income from transitions between tax bands and benefit conditions. As a side effect, this smoothing would also help stabilise income tax receipts (and benefit payments) for the government – e.g. around steep bust boom years like 2005-20091.

For most of their history, tax rates and benefits had to be calculated manually (mentally?) by people. Complexity of income tax rates was loosely bound by computing power of pen, paper and an average human’s brain. Using moving-average income in this case would have made the job a fair bit harder. This was a sufficient deterrent from trying it. However, given current computing resources, this calculation is a much simpler job2. It may be time to remove the constraint of tools we no longer use, and design with the tools we use every day3.

There is already a version of this moving-average smoothing available to the rich and the corporations. They can claim tax credits through bad years, and use them to cut down on their taxes in good years. Using moving-average-income based taxation and benefits1 brings this stability to the more vulnerable in lower and middle-income classes as well.

  1. There seems to be one gap here. Benefits can be removed/reduced based on moving average income, they may need to be introduced based on immediate loss of income to prevent leaving receivers destitute if they suddenly lose their jobs.
    Similarly, while total loss of income wouldn’t impact for income tax rates (X% of 0 is still 0), a severe reduction in income could be damaging – a high tax rate, based on last few years’ income, on a now tiny income.
    Saving in good years, to pay taxes in case of bad years, is a way around this. But that’s in the domain of personal finance and behavioural economics, not tax policy. 
  2. It’s still not trivial. The complexity of tax codes and benefit programs ensure that nothing about them is trivial. Further, the constant political tinkering of them both means it’s not just not trivial, it might actually be a hard problem. But, I’m hypothesising: this is still a simpler problem than doing a single-year based calculation of today’s tax rates using just pen, paper, and an average person’s brain (the tools whose constraints they were designed around). 
  3. The smart amongst us may have another valid point here: Why just use tools of today, why not tools of tomorrow. Why use basic computing to calculate tax bracket based on a moving average, when we can use predictive modelling (“AI!!”) to fine tune and personalise the tax brackets even further?
    My concern here would be along explainability and predictability/verifiability. Unlike Uber fares, tax rates are a highly political topic. Politician would be wary of passing a bill where they have to sell the public to “trust” a black box algorithm to correctly predict their tax slabs (explainability).
    The second issue here would be predictability. The calculation method still has to be simple enough for someone to be able to calculate independently. This makes it verifiable, as well as makes it predictable – people can plan for it. 

Money is the final metric

Facebook lies about video viewership metrics

This headline reminds me of the old principle that I emphasise:

Money is the final metric

If our metrics don’t directly correlate to, or convert into money1 in the near term, then they are not the correct metrics.

Too many metrics, in my experience, are designed for being:

  • easy to measure (or easily available),
  • easy to improve, and
  • comfortable to explain

What they are not designed for: being strongly correlated with current or future supply of money.

For growth, revenue (total, unit, net unit) is the best metric.

Views of our videos2 can be good metrics if they convert directly into money:
– product sales show a direct correlation, or
– advertisers accept them as proxy for ad views, or
– investors require them as a valuation input for the next raise

Views of our videos are a bad metric when they aren’t directly impacting revenue. If sales aren’t growing in proportion with the views, then counting views is of no relevance to the health of the business.

The availability trip-wire

The availability heuristic operates on the notion that if something can be recalled, it must be important, or at least more important than alternative solutions which are not as readily recalled.

Most online advertising platforms understand this well, and use it to hook their customers (advertisers). If they show us good3, clean and easily accessible metrics of their choice, we will give those metrics more weight than they deserve.

The views count is right there – in the analytics dashboard. While finding the correct metric that actually correlates with sales, and then tracking it, can be hard.

This also ties in the second part of the hook. The view count number is also easily movable. Spend some money on advertisements, the view count will go up. Voila! View counts – a metric that is easy to measure, and easy to improve!

Those money-correlated metrics, they are even harder to improve than they are to discover and track. Oh look, the views went up again!

We all have heard of ‘Our viewer/user/visitor numbers were amazing, but the money ran out before…’

This is why the money ran out. Because we chose the easy metric, over the metric that really matters – money.

Continue reading Money is the final metric

TIL: Moving average with missing periods in Google Sheets

The short answer:

=AVERAGEIFS(A1:A99, B1:B99,"<="&B2, B1:B99, ">"&B2 - 30)

Values to be averaged are in A1:A99, corresponding dates are in B1:B99.

What the formula does: average the values in the range – Include a value in calculating average for the current date if:

  1. The date for that value is same as or before the date in the current row, and
  2. The date for that value is greator than the date X days before the date in the current row (X is 30 in the formula for a 30-day moving average)

The long one:

I have a spreadsheet with my daily weight log. It has occasional missing days – when I didn’t log my weight.

Yesterday, I wanted to chart this data, and wanted to add a moving average to it. Google sheets’ in-built moving average trend line refused to work – either due to the missing data, or due to the number of entries. So I added a column to the sheet with the calculated (trailing) moving average weight.

My weight and the 30-day moving average
My weight and the 30-day moving average

I’ve never before had to calculate moving average over a non-consecutive data set. So, in case I forget, I’m noting it down here for later… Continue reading TIL: Moving average with missing periods in Google Sheets

About those exorbitant hospital parking fees

I had an appointment at the hospital today, and was thinking about the rates at the hospital car park. The parking area at big NHS hospital in my town has the highest parking rates around. They are probably more than double the rate at any other paid parking zone in the town.

At a first look, they seem extortionist. At most places, high parking rates are a nudge for users to either take an alternate means of transport, or to curtail their visits. At a hospital, however, few people visit by choice. Also, the visitors are more likely to use a car – comfort for the ill and all that. By charging these, probably ill, visitors these extraordinarily high rates, the hospital/NHS/council are just heartlessly milking the already suffering.


On a second thought, however, there is a valid reason behind these high rates – consumption tax. They are not just parking rates, they are an indirect tax on the heaviest NHS users.

It is well-known that a small percentage of patients consume a lot of NHS resources – frequent flyers making regular calls to 999, and elderly patients occupying hospital beds long after they need to because they do not believe they will get the care at home. Since care in the NHS is free, irrespective of how frequently, how long (or validly) a patient calls for it, this creates an imbalance, and puts undue pressure on NHS staff and budgets.

A means of preventing this tragedy of the commons, is to charge per-use fees. This however goes directly against the core mission of the NHS – free, universal healthcare. These extraordinary parking rates are then just a small marginal consumption tax on the users of the health service. It helps provide a little extra fund to the hospital, without burdening the non-user tax payers, or breaking the ‘free, universal healthcare’ promise of the NHS.

It’s harsh, but given the budget squeeze, and the tragedy of the commons, it appears a fair solution to me.

Continue reading About those exorbitant hospital parking fees

Twitter’s product ideas funnel

Since its founding, Twitter has made a religion of listening to users. After all, they came up with some of the company’s best ideas — including the hashtag, reply and retweet. After the flow of good ideas from users stopped, Twitter was hard-pressed to come up with its own.

Bloomberg: Why Twitter Can’t Pull the Trigger on New Products

The first part of that quote is a fact – users came up with hashtag, reply, and retweet, and Twitter (the company) adopted them.


Continue reading Twitter’s product ideas funnel

Premier league table – the trend continues

Follow-up to the last week’s post.

Premier League table - spread by points - week 21 - 2
Premier League table – spread by points – week 21 – 27

All the trends from the previous week continue…

  1. Manchester City (blue) continue to run away with the title, West Brom (slate) continue a lonely run at the bottom.
  2. The 2nd and 5th placed teams are now just 4 points apart (red) – Manchester United lost, while Chelsea, Tottenham, and Liverpool all won.
  3. Arsenal (slate) continue to be in the middle of nowhere – 7 points behind 5th, 9 points ahead of 7th.
  4. The mid-table / relegation pack (light grey) got even tighter – only 11 points between the 7th and 19th placed teams.

Continue reading Premier league table – the trend continues

Premier league table – some trends this season

That chart from the BBC got me interested. Looking at the Premier league table distributed by points makes it lot more interesting than distribution by ranks.

So, I downloaded the Premier League data for current season from Football Data, and created some graphs1.

Weeks 1-8: Mixed bag, except for Crystal Palace

Crystal Palace's dismal start to the season
Crystal Palace’s dismal start to the season

7 straight defeats! Crystal palace really had a crap start to the season!

Continue reading Premier league table – some trends this season