bechirot.fyi

How it is built

Every number on this page is drawn from the snapshot it describes. No number here was written into prose and checked afterwards — if the calculation changes, the page changes with it.

The data

10 Knesset elections, 2003–2022, at the level of the locality: 1,254 localities, 102 list letters, 164,651 voting rows. The only source is the publications of the Central Elections Committee for the Knesset. The vote total of each election is checked against the certified total the Elections Committee published, and all 10 balance. The check catches an election whose total is off; it does not catch an election added without a certified total to compare it with.

The electoral threshold changed over the period (1.5%, 2.0%, 3.25%), and each value is linked to the legislation that set it on the sources page.

Locality names

A locality's name is taken from the Central Bureau of Statistics' locality register, not from the results files. The locality codes the Elections Committee uses are the CBS's codes, so the two are joined by code, with no name matching at all. That is how 1,219 of the 1,254 names are set.

The results files are a voting record that happens to contain names, and they are inconsistent in ways the register is not: from the 23rd Knesset on, hyphens are dropped, names are cut at 18 characters, and the spelling is defective (הרצליה) where the register has the plene spelling (הרצלייה).

For 35 localities the register is not a source — these are localities that no longer exist: 15 Gush Katif localities evacuated in 2005, the four northern Samaria settlements evacuated with them, and localities merged into their neighbours (מכבים־רעות into מודיעין, צורן into קדימה־צורן). For them the last name the Elections Committee published is not a default — it is the only name there is.

Every spelling seen in the results files is kept for search, so searching "הרצליה" finds the locality shown as "הרצלייה". The results table of each election shows the name that election published.

The political map

The two axes are derived from the voting patterns themselves, not imposed on them. No list is assigned by hand to a bloc, a camp or a sector. That is what makes the map evidence rather than an illustration: there is no interpretive classification here to dispute, there is a decomposition of a voting matrix. The map is built at two levels: one national map, and then a separate decomposition within each of the two camps the data itself reveals — and that split, too, is derived from the numbers, not set by hand.

The panel

The axes are fitted on a balanced panel — only localities present in all 10 elections that passed a bar of 300 valid votes: 496 localities. The requirement exists so that a locality does not move an axis just because it appeared in or vanished from the records. A list gets a column only if it reached at least 3% in one of the panel's localities; otherwise the axes are fitted on lists that won a few dozen votes nationally too.

Compositional geometry

A locality's vote shares in one election are a composition — parts that sum to one — and so they cannot be decomposed as if they were free numbers. Each election first goes through a centred log-ratio (CLR) transformation around its geometric mean, which is the right geometry for compositions. It is better than ordinary PCA, which ignores the sum-to-one constraint, and than correspondence analysis (CA), in which the "Guttman arch" squeezes the Arab camp. The single number set by hand at this stage — replacing zeros with 1e-06 before the log — is documented here, and was checked to be stable across a range of values.

The national axes

A singular value decomposition (SVD) of the CLR-transformed matrix gives the two national axes. They explain 36.0% and 18.1% of the variance — together 54.1%. The first is the Arab–Jewish divide, the second separates Haredi from secular. That is, a considerable part of the variance between localities is not explained by the two national axes — which is exactly what that number says, and the reason for the second level below.

The sign of an SVD is arbitrary, and so it is anchored: each axis is turned so that the mean loading of a list letter fixed in advance — one that appears in almost every election — gets a documented sign. An early version forced the column with the largest loading to be positive, but then adding an election was enough to flip an axis end to end; anchoring to a fixed letter prevents that. More importantly — the axis labels are derived from the loadings, not written by hand. The calculation keeps the 6 leading lists at each end of an axis, and the pages show the first of them after merging duplicates. An early version carried Hebrew captions written in advance and checked afterwards; once the sign was set deterministically, both were the wrong way round.

The two camps

The first axis is so strong that it swallows what separates localities within the same camp. So the map is split in two, and the split is derived from the data, not made by hand: a two-component Gaussian mixture model on the first axis finds a deep gap between the two densities — a trough that is the boundary. In the panel it divides the localities into 404 Jewish and 92 Arab, and every further locality is assigned by the same axis.

Within each camp, axes of its own are fitted — exactly the same CLR decomposition, on the camp's localities alone, after pruning list columns that are almost absent from the camp (a mean share below 1%). The pruning is what makes the second inner axis interpretable: without it, votes for Arab lists in mixed cities would drive the second "Jewish" axis.

Each second inner axis is tested at build time — a bootstrap round and a DELTA range — and is shown only if it passed the stability bar. The number of axes shown follows that verdict: today both camps are shown in one dimension (1 axis per camp), because the Jewish camp's second axis is almost degenerate with its third, and the Arab camp is too small (92 localities) for its second axis to be stable. The second structure is computed and stored all the same, so if a future election stabilises it, the camp will rise to two dimensions by itself, with no change of code.

Placing a locality and placing a list

A locality is placed once per election, so it has a trail and not one timeless point. Its composition vector in that election, after CLR, is projected onto the axis restricted to that election's columns, with the restriction normalised to unit length so that the elections are on the same scale. The sum of the contributions gives back the pooled score. 1,254 localities are placed in all.

A list sits at the weighted centroid of the localities that voted for it, in that election's space — 167 list positions. That is what makes the map checkable: a list that only changed its name lands at the same point, because the same localities voted for it — a fact about ballots, not a judgement about parties. And it is also why change over time (on the map page) is measured as movement on the map and not as a raw difference in percentages — a change of name counts there as zero movement, as it should.

What we did not do, and why. An early version also placed localities at the centroid of the lists they voted for. That is self-consistent but shrinks twice — the lists' centroids are already pulled to the centre — and the result squeezed almost every Jewish locality into a narrow band opposite a distant Arab cluster. A nearest-neighbour search on such a map returned noise. Projecting the locality directly keeps its true spread.

What distance says, and what it does not

The distance between two points is the Euclidean distance in this space. A small distance between two lists says that the same kinds of localities voted for them. It does not say that the same people voted for them.

The ecological fallacy. All the data here is at the level of the locality. A correlation at the level of the locality is not a correlation at the level of the voter, and inferring the one from the other is a known error with a name. If list A fell and list B rose in the same localities, that is consistent with voters switching — and equally consistent with one group abstaining and another turning out. This data cannot decide between them, and no page on the site will claim that it can. An estimate, not a measurement

The polls on the home page

For each polling firm, its latest poll from the 21 days before the newest poll is taken, so that a firm that polls every week does not outweigh one that polls once a month. For each list the median of those polls is shown, and beside it the lowest and the highest of them. A list that at least half the polls put below the electoral threshold is shown below the bar, with zero: a median between a poll that leaves it out and a poll that lets it in is a number of seats no list can win. Currently: 8 firms, from 18 October 2026 to 22 October 2026. The coalition builder adds up the medians of the lists you tick, so it is an estimate too; it does not know who will sit with whom, and the site puts no list in a bloc. The numbers are read from English Wikipedia's poll tables, from a saved copy, and rows from each table were checked against it by hand; the copy is listed on the sources page. An estimate, not a result

What is missing

You can check

Every election page and locality page offers the numbers behind it as CSV and JSON, and the sources page lists every document kept in the archive, including documents we held and could not use.