Current navigation tree: JEBHP 13 >> **Apportionment Simulator**

Choose your preferred colorset:
| Relative Luminance (for Accessibility):

A

B

C

If you're an American, you are likely aware that the House of Representatives is apportioned among the states after every Census. This is specified in Article I, Section 2, Clause 3 of The Constitution. That clause has an apportionment in it (loadable below as the 1789 Apportionment), but that was always designed to be temporary until a Census was taken in 1790. That clause also states that "each State shall have at Least one Representative", and includes the Three-Fifths Compromise (which was repealed by the first sentence of Amendment XIV).

What you may not know is that the mathematics behind the apportionment are not always the same; that is, there are multiple methods of performing this task mathematically. What this page was originally designed to do was to take population data and perform the apportionment using different methods of which I am aware.

In the process of trying to implement that, I learned a lot: about how these methods work (more similarly than I thought in some cases), about the history of theior actual implementation, and some things about American history in general and some data-driven perspectives about that, especially between 1860 and 1870.

When I've learned about apportionment in the past, including when I've taught it, we always start with Hamilton's Method. It goes as follows:

- Compute the Standard Divisor, which is the Total Population divided by the Size Of The House
- Compute each state's Standard Quota, which is the state's population divided by the Standard Divisor
- The Lower Quota is the floor of the Standard Quota, i.e., the greatest integer less than or equal to the Standard Quota
- The Upper Quota is the floor of the Standard Quota, i.e., the least integer greater than or equal to the Standard Quota
- The Lower Quota is equal to the Upper Quota if and only if the Standard Quota is an integer; otherwise, the Upper Quota is one greater than the Lower Quota

- Give each state its Lower Quota of representatives (with a minimum of 1)
- Subtract the Lower Quota from the Standard Quota for each state, giving the Remainder
- Sort the states by descending order of their remainders
- Allocate one additional representative to each state in this sorted order until there are no more representatives to allocate

Then we learn about three Divisior Methods: Adams, Webster, and Jefferson. They all work the same way, with the only difference being in rounding:

- Pick a Divisor (usually we start with the Standard Divisor, though it doesn't often work)
- Compute each state's Rounded Quota, which is the state's population divided by the Divisor, then rounded as follows:
- Adams's Method: always round up
- Webster's Method: round following normal rounding rules, i.e., round down if the fractional part is less than 0.5 and round up otherwise
- Jefferson's Method: always round down

- Give each state its Rounded Quota of representatives (with a minimum of 1)
- Compute the Size Of The House under this allocation
- If it's the correct value, stop
- If it's too large (which it almost certainly is with the Standard Divisor and Adams's Method), pick a larger Divisor and try again
- If it's too small (which it almost certainly is with the Standard Divisor and Jefferson's Method), pick a smaller Divisor and try again

We stop teaching at this point, which is a shame because we don't then teach what is actually used nowadays: the Huntington-Hill Method. When I learned this methid, it was described as follows:

- Allocate each state 1 representative (this satisfies the Constitutionally-required "minimum of 1" above)
- For each state, compute a Priority Value, which is the state's population divided by the geometic mean of the current allocated number of representatives and one more than the current allocated number
- Allocate one additional representative to the state with the highest Priority Value, and recalculate the next Priority Value for that state from the new allocated number
- Repeat the last setp until there are no more representatives to allocate

This is kind of like Hamilton's Method in the sense that the next representative is the next state in a sort, but it starts from the beginning rather than from the Lower Quotas, so it's really an entirely different algorithm than the Divisor Methods, which explains in part why we don't teach it.

I had always thought that apportionment required a Size Of The House at the start. In fact, prior to 1850, the apportionment was done without it; to quote from the Census Bureau, "The size of the House of Representatives was not predetermined, but resulted from the calculation." How is this even possible? It turns out that what they did was simply choose the Standard Divisor, run the algorithm, and then take whatever they got *rather* than tweak the Divisor to get the "right" Size. (I learned this on the second day of the project.)

I also believed, as I wrote above, that Huntington-Hill was a Priority method, and Adams/Webster/Jefferson were Divisor methods, requiring completely different algorithms. However, I found an unexpected contradiction to that. When reading the Census Bureau's briefs on apportionment (since 1940), they describe Huntington-Hill exactly as I have above, as a Priority algorithm, but looking at their method comparison list, they state, "The Huntington-Hill Method is a modified version of the Webster method, but it uses a slightly different rounding method." Again, how is this possible? If it's just a different rounding than Webster, *that makes it a Divisor method*! I discovered that this was accurate.

As with any programming project, I've changed how I'm doing things at least a dozen times since I started (which as I write this was only seven days ago).

Over the course of this project, I've had close to a dozen "different" apportionment methods, some of which turned out to actually not be different.

The first thing under "What I Was Wrong About" led to the first Big Change: I couldn't assume any longer that the mandate was the Size, but that it could be a Target Par Value. So I now had to have a way to choose the mandate, and I had to implement both ways.

Related to this: I had (but never implemented) three methods based on the Wyoming idea, viz., that the least-populous state (Wyoming, currently, hence the name) should receive one representative and the rest of the states should scale from there. I suddenly realized sometime on the fourth day, I think, of this project – after I knew about Target Par Value methods – that the Wyoming idea was just a specific case of Target Par Value, and I was able to implement it as such and remove them as separate cases.

The second Big Change was actually with the popsets. I had assumed that I would only have one population set for every Census, but then that went awry when I realized I could see what apportionment *would* have looked like without the Three-Fifths Compromise, and that was worth a lot more than limiting myself to one popset per year. So I had to label the popsets, which shifted their encodings one index right. Eventually I added the Apportionments as if they were population sets, which allowed some better testing, but then I wanted to streamline the calculation there, and that really cluttered the option list, so I split it into two, year and poptype.

By the time I got to writing the implementation (the doapportionment() function), I had four cases: Adams/Webster/Jefferson with a Target Par Value mandate, Hamilton with a Size Of The House mandate, Adams/Webster/Jefferson as a Divisor method with a Size Of The House mandate, and Huntington-Hill as a Priority method with a Size Of The House mandate. I also had an idea for another Priority method, where the next representative gets awarded to whatever state at that moment has the highest par value, which I called "Descending Average".

The really stunning discovery for me was learning, as I wrote in the second thing under "What I Was Wrong About", that there were two different implementations theoretically possible for Huntington-Hill. I tried making "Huntington-Hill D", a Divisor version, and tested if it gave the same results as the (known to me) Priority version. It did, as far as I could tell with hand-testing.

This made me wonder if there is a way to implement Adams/Webster/Jefferson as Priority methods. When I attempted it, I realized that what I thought should give Adams's Method by Priority was the "Descending Average" method I had invented, so if it worked, it was actually a method that was 200 years old. I put in the implementations that I thought might work, as Adams P/Webster P/Jefferson P, and then I wrote some code to try to test them. With every population set I had, with every House size from 100 to 998, they came out the same. I later modified the function after making some other interface changes (like the year and poptype split), but this button will still launch it, comparing algotypes 'division' and 'priority': It will, I believe, return 'true' for inputs of 'Jefferson', "Adams', 'Webster', and 'Huntington-Hill'. (It may take a couple minutes, though, since it's testing at least 80,000 cases.) It's not a proof, but it seems likely.

I am flabbergasted that two completely different implementations of Huntington-Hill, as a Divisor method and as a Priority method, appear to be identical. Not just that, either; every Divisor method I had (Adams/Webster/Jefferson) can be implemented as a Priority method. Why did I never learn this? How did I not know this?

So now that I had two copies of four different methods, I decided to enable the user to select the implementation (Divisor or Priority), even though as far as I know they come out the same.

Once I knew Huntington-Hill uses the Geometric Mean for rounding, I wondered what happens if the Harmonic Mean is used, so I tried to implement that. It turns out that if implemented correctly (which I'm sure my Divisor version is, but possibly not my Priority version) it's Dean's Method, which I'd never heard of until after I implemented it.

When typing above that the implementation I knew of Huntington-Hill as a Priority method was "kind of like Hamilton's Method in the sense that …" (which was on the *seventh* day of the project), it occurred to me to try to implement Hamilton as an *actual* Priority method, where the Priority at any given moment is the Standard Quota minus the Current Allocation. Much to my surprise, it worked. This disproved my earlier hypothesis that Hamilton could not be implemented as either Divisor or Priority, and questions another hypothesis that every Divisor method could be implemented as Priority and vice-versa. EDIT an hour later after typing more of the above: No, not every Priority method can be implemented as a Divisor method, because every Divisor method can be implemented with either mandate, and Hamilton *absolutely cannot* be implemented with the Target Par Value mandate.

Early on, I decided that I didn't want to have to recompute … well, anything … every time a change was made to the population form (i.e., a number got changed, a merge or unmerge was performed, or statehood was granted/removed). Yet late on the seventh day, I did just that.

Any population set listed as Actual – meaning the actual population numbers used for Apportionment that year – should be from the Census Bureau's Apportionment Brief from that year. Most of these Briefs also give other information, depending on the year. In 2020; there is both Apportionment (i.e., Actual) and Resident population. In 1830, there is Free and Slave population as well as Apportionment (i.e., Actual) population; I added the Free and Slave to get the Aggregate. Any population sets (not Apportionment sets) labeled without the word "Report" come from contemporaneous briefs.

For both 1850 and 1870, the Census Bureau put out a recap of all the Censuses from 1790 to the then-present. What makes this significant is geographic changes: in the 1850 report, there are population numbers for Maine back to 1790, and similarly in the 1870 report for West Virginia. This data is noted as (1850 Report) or (1870 Report) in the pull-downs. The data recapped gives White, Free Colored, Slave, and Total; I've computed the Free total and the Computed (i.e., Three-Fifths) total, along with White and Aggregate, from these reports.

I didn't have a problem with 'undefined' showing up when the population was, well, undefined (e.g., the population of Minnesota in 1850, when there was no Minnesota – though Minnesota does have an 1850 population in the 1870 report), but it caused some problems with merging data, so on the eighth day, I removed them (by defining everything undefined as '').

Ties are a problem. I had to set up an alternate breakpoint for the Divisor methods, when the interval allowed to tweak the divisor became so small as to not be able to move. (I used 5 * Number.EPSILON, because I saw it hang up on 4ε, and infinite loops are no fun.) As a practical matter, ties don't happen in real state populations, but once I put in apportionments as *if* they were populations, then I started seeing trouble. This doesn't happen with the Priority methods, though they have their own issues with ties. The algorithm I use to sort just takes the first tied state every time.

I decided to get around this by making a tiny adjustment to the population numbers: adding 100000ε times the index number to each population; that way, while they may still be equal to at least eight decimal places, they won't be tied in the algorithm, and so it won't break. I still have the safety break in the Divisor algorithm, but it shouldn't be needed, I thought. Ha ha. It was needed almost immediately: 2020 Apportionment, Jefferson, House Size 104; only slightly better than the House Size 101 that broke it before. So that workaround wasn't nearly good enough. Then I tweaked my example that I was testing breaking the divisor method, aptly titled 'break divisor method', and the safety break failed massively.

What I've done as of now is threefold:

Number of Columns in Population Data form:

All/None Statehood

(changing either of the above will reset the form)

All/None Statehood

(changing either of the above will reset the form)

- Merge Options:
- West Virginia is included in Virginia
- Maine is included in Massachusetts
- South Dakota is included in North Dakota
- District of Columbia is included in Maryland

Number of States:
Total Population:
Smallest State Population:

Mandate:
Target Par Value:
Size of the House:

Apportionment Method: Algorithm Type: Divisor Hamilton Priority None

Sort Results by: Number of Columns in Results:

Result Set

Compare Result Sets

Apportionment Method: Algorithm Type: Divisor Hamilton Priority None

Sort Results by: Number of Columns in Results:

Result Set

Compare Result Sets

- When the District of Columbia was first formed (after 1790; the 1790 Census shows no population from DC), it included territory from both Maryland and Virginia; the territory from Virginia was returned to Virginia in 1846. It would be a more correct implementation of the DC merger box, from 1800 to 1840, to split the DC population and merge into both MD and VA, but there was no nice way to record that split population for DC, so it is not implemented. This means if the DC merge is set, all of DC (including those parts that were part of Virginia if a time when that existed is chosen) will be merged into Maryland.
- The Census Bureau points out several instances where two methods were specifically shown to give the same apportionment at a particular House size:
- 1850: Webster and Hamilton on a House Size of 234
- 1870: Webster and Hamilton on a House Size of 283
- 1880: Webster and Hamilton on a House Size of 325
- 1890: Webster and Hamilton on a House Size of 356
- 1930: Huntington-Hill and Webster on a House Size of 435

- It wasn't until 1850 that the House apportioned to a fixed size (and even then the size would frequently change, including choosing a size where Webster and Hamilton gave the same apportionment (e.g., 234 in 1850, 283 in 1870, 325 in 1880, 356 in 1890). Prior to 1850, the Target Par Value was chosen instead, which then dictated the size of the House (always using the standard divisor).
- As mentioned below, in the Superintendent's Report for the 1870 Census, the apportionment pursuant to that Census was given assuming the then-current House size of 241, but additionally six other House sizes were computed, "for the greater convenience, possibly, of members of Congress in discussing the effect of any enlargement of the representation". The table on page xv of the Report lists the Standard Divisor (called "Ratio"), the Lower Quota, the "Fractions" (which was actually the remaining population, so it was the fractional part from the division
*times the Standard Quota*, which is equivalent to just using the fractional part from the division to order the states but which is probably much easier to calculate in 1870), and the final representation. (This page is really wonderful.) I could almost flawlessly replicate the data shown, including the computed Par Values and the Apportionments. There's a disagreement on the 241-seat House, where the Superintendent gave California a seat I would have given to Iowa, but the Superintendent's own numbers (a "fraction" of 85779 for California and 86928 for Iowa) show that it should have gone to Iowa! - Originally I had listed the so-called "Wyoming" methods as separate methods, but they are really just the pre-1850 application of the Adams/Webster/Jefferson methods, using the population of the least-populous state as the Target Par Value (computed here with the "Least-Populous Par Value" button).
- Another modern suggestion has been to mathematically compute the size of the House (or alternately the Congress, including the Senate) as the cube root of the total (apportionment) population. So if the population of the 50 states was 334,255,384, then the House size would be 694, and it would increase to 695 when the population reached 335,702,375. This House size is computable here with the "Cube Root House Size" button.
- As some methods (particularly Hamilton) require a House size mandate rather than a Target Par Value mandate, there is also a "Suggest House Size" button which will suggest a House size to go with a given par value.
- The Target Par Value methods have the interesting property that no state affects any other state. This makes them immune to the Alabama and New States Paradoxes (see below).
*Most*Priority methods do not take the Size Of The House into account when calculating the priority values. This makes them also immune to the Alabama and New States Paradoxes (see below). The reason Hamilton is still subject to these is that even implemented as a Priority method, Hamilton absolutely requires the Size Of The House, and the Standard Divisor, to compute anything, so as both those paradoxes involve a change to the Size Of The House, Hamilton will always be subject to them.- The "Compare Result Sets" button above will compare the two specified Result Sets and highlight any differences, either states that only exist in one set or that exist in both sets but have different numbers of representatives.
- I would hope, of course, that I could successfully recreate all the Actual Apportionments given all this information. (So far, I only see the known aberrations of 1850 and 1870 (see below), and something from 1900 that I cannot figure out.)

- The
**Alabama Paradox**refers to the comparison of Hamilton's method in 1880 between a 299-seat and a 300-seat House. Alabama loses a seat as the size of the House increases. - The
**New States Paradox**refers to the 1907 admittance of Oklahoma and the simultaneous increase of the size of the House by 5, from 386 to 391. If Oklahoma is assigned a population that would give it five seats, and Hamilton's method is used both before and after statehood, New York loses a seat and Maine gains one. - The
**Quota Rule**refers to the idea that a state must always receive either its Upper Quota or Lower Quota. Hamilton's method never violates this, but Jefferson's can and did in 1830 in New York. The Adams and Harmonic divisor methods also violate the Quota Rule on the same data set, also with New York, but they*underapportion*the Empire State. The "Check Quota Rule" button above will check all of the Result Sets for any violations of the Quota Rule and highlight any that are found. - The
**Majority Rule**refers to the idea that a state or group of states which has the majority of the population must also have the majority of the representatives. Most methods can violate this, including every method implemented here, though getting there with a single state requires a fictitious scenario (since no state has ever had a majority of the population of the nation). It is computationally unpleasant to actually test every possible subset of states for the Majority Rule. An implementation that's better than just one majority state would be to sort the states by population and find the smallest set of states which gives the majority. Here's an example with a three-state majority.

- After the 2000 Census, Utah – who had anticipated gaining a fourth seat – narrowly missed out to North Carolina when the overseas population was added. Utah complained, as the "overseas population" only included federal employees (military and civilian) but did not include LDS missionaries, of which Utah has a lot.
- After the 1850 Census, California, who had been admitted to the Union with 2 Representatives in 1850, was only entitled to one Representative in the 233-seat House. California complained that their Census count was inaccurate, and by a special Act of Congress two months after the apportionment was announced, "California was allowed to retain apportionment as of 1840 as a result of reported inaccurate enumeration in 1850."
- As in 1850, in 1870 there was a statutory change to the Apportionment that did not have a basis in mathematics. The original Apportionment statute gives an apportionment on a House of 283, the same as what the Census Bureau in other places claims, but then there was a supplemental Apportionment statute, which assigned nine additional representatives. This did not create the result that Hamilton's Method would have given for the new House size of 292, as it gave an additional Representative each to Florida and New Hampshire, which should have gone to New York and Illinois.

- Population Data 1790-1870: 1870 Census: Volume 1. The Statistics of the Population of the United States, Tables I and II
- This document also gives, under the Report Of The Superintendent, sample apportionments for House sizes of 241, 250, 260, 270, 283 (actually used), 292, and 300, along with their par values, which is wonderful to be able to reconstruct.

- Population Data 1830: 1830 Census: Abstract of the returns of the Fifth Census (I used that before I found the above link with the first nine Censuses compiled)
- Population Data 1910-2020: Historical Apportionment Data (1910-2020) (note that some of these, particularly 1930, are not the "Actual" numbers used for Apportionment)
- Methods of Apportionment: Historical Perspective and Methods of Apportionment - History; the former link describes that prior to 1850, "The size of the House of Representatives was not predetermined, but resulted from the calculation."
- Most of the "Actual" values come from the individual Apportionment Notes (1790-1990) found at History >> Reference >> Apportionment, or so I thought. It turns out most of those briefs are rewritten data from 1940; I discovered this when I looked at the 1830 Apportionment Notes and discovered some of the counts werre off from the actual Census data I already had looked at (by small numbers opf people, but still, it's obviously not just recopied).
- The 2000 Actual, and the Apportionment values from 1900-2000, are from the Census 2000 Apportionment Brief
- The 2010 Actual, and the Apportionment values from 1789-2010 are from the Census 2010 Population and Housing Unit Counts report
- The 2020 Actual is from the Census 2020 Apportionment Population report
- For 1870, the original Apportionment statute and the supplemental Apportionment statute