If you have any doubts on which political party to join (as a member) or simply vote for, fear not, for there is now a mathematical formula to help you. It’s rather simply, and is given by . Yes, that is it. Notice the dot – however. This is essentially the inner (dot) product of two vectors. So what are the variables here, and how do you construct it?

First of all list out all the “axes” that you think are politically important – anything that you think is relevant for a political party. These axes can include (but are not limited to) “capitalist-communist”, “secular-communal”, “internationalist-regionalist” and so on. Now that you have defined these axes (there is no limit on the number of axes you can define), describe your political position in terms of a vector in the N-dimensional space.

Let’s say that you have defined two axes – economically conservative-liberal and socially conservative-liberal. If you are extremely conservative economically and extremely liberal socially, your political persuasion can be described as say (-5,5). If you are economically centrist and socially conservative, you might be at (0,-5), and so forth (choice of the number 5 above is arbitrary).

Now, take every political party that is in your shortlist (or longlist, if you have that much patience), and define the vector of that particular party. Now, the magnitude of the party vector along each axis should reflect the ability of the party to execute along that axis – for example, if you think a party is socially liberal but is unable to execute on the socially liberal axis (either because of lack of conviction or because the party has minuscule chance of forming the government) you should ascribe to the party a small positive value along this axis. If another party is likely to have regressive views on the social liberal axis, and is very likely to achieve them (good chance of winning combined with conviction to get these policies done), it will have a large negative score along this axis. Once again, absolute numbers don’t matter – your axes may stretch from -10 to 10 or -1000 to 1000, as long as all parties have been graded using the same scale.

So now, for each party, you have an N-dimensional vector which reflects its overall ability to execute. You have your own N-dimensional vector, which represents the combination of policies that you want to push.

All you need to do now is to take the inner product of your vector with each party’s vector. You should vote for / support / join the party with whom the inner product has the maximum value.

The mistake a lot of people do is that they ignore magnitudes, especially that of the party vector, and instead choose the party whose vector forms the smallest angle with their own vector (inner product can also be written as where |A| and |B| are the magnitudes of the vectors and is the angle between them. The mistake people do is to optimize even if the magnitude of the party vector is small.). This leads to them spending much valuable energy supporting unviable parties (either ones that have a low chance of winning or those that lack conviction to execute on just about anything).

Quite simple, right?