proj-liquidRepublic-derivationOfConstituencyLimitFormula

The formula for the member number limit is constituency_member_limit = 5^((1 + sqrt(1 + 8*(log(electorate_size/constituency_votes)/log(5))))/2), where electorate_size is the total number of voters in the organization, and constituency_votes is the total number of votes controlled by this constituency. Why?

First, why are there 5 people on the Board?

Now, we considering an imaginary 'ideal' organization (we are just calling it that, we're not going to give any justification for this form being 'ideal') in which constituencies are organized in the following way:

How many voters are there in total? It depends on how many levels down we go.

The general formula here is total_voters = 5^(x*(x-1)/2), where 'x' is the number of levels.

Now, what if we had 3 levels, but less than 5*(5*5) voters? We'd still have the CEO, then the Board, then a Constituency for each member. How many of those lowest-level Constituencies do we have? We have 5. So each of these 5 constituencies would have electorate_size/5 voters. And if we had 4 levels, we'd have 5*(5*5) lowest-level constituencies, so each one would have electorate_size/5^2 voters. The formula is electorate_size/5^(x*(x-1)/2). todo

Now, if we are given a number of voters in such a structure, compute the number of levels needed. That is, given a = electorate_size/5^(x*(x-1)/2), solve for x. The solution is: todo

x = (1 + sqrt(1 + 8*(log5(n/a))))/2

(todo explain why we set a = indirect_constituency_votes)

now member_limit = 5^x

(todo note that we've set our limit to the number of members in the 'ideal' structure)

so substituting in x, we get:

member_limit = 5((1. + sqrt(1. + 8.*(log(electorate_size/votes)/log(5.))))/2.)

To display the effect of this formula in Python:

electorate_size = 1000; largest_permitted = 5((-1. + sqrt(1. + 8.*log(float(electorate_size))/log(5.)))/2.); constituency_votes_array = arange(ceil(largest_permitted),electorate_size); figure(); plot(constituency_votes_array, 5((1. + sqrt(1. + 8.*(log(float(electorate_size)/constituency_votes_array)/log(5.))))/2.)); xlabel('constituency_votes'); ylabel('constituency_member_limit');

Note: largest_permitted there is the largest constituency you can have in which each member contributes at least 1 vote (with a voting strength of 1). This reaches 150, Dunbar's number, when electorate_size is about 30000. This is close to the ideal with 4 levels, CEO, Board, 5*5, 5*5*5, with about 15k members. That is to say, if you demand an organization of this form in which no constituency is larger than Dunbar's number, you'll be able to support on the order of 15k, with in which there is about one to two Delegates in between each member and the Board, and each Board Member reports to about 25 delegates.