Methodology
Every figure on this site is computed from structured UN data by a fixed query. Nothing here is written or estimated by an AI model. This page says what each number means and where it misleads.
Where the data comes from
- Votes: UN Dag Hammarskjöld Library, Security Council Voting Data, one row per member state per adopted resolution, 1946 to 29 September 2026 (Version 7, October 2026). Source record.
- Vetoes: UN Peace & Security Data Hub, Security Council Data – Vetoes Since 1946. Source record.
- Re-checking: the site loads each file unchanged, keeps a copy, and checks that the per-country positions add up to the UN’s own tallies for every vote. Records that fail are held back, not shown.
- Licence: © United Nations; used for non-commercial purposes with attribution.
What is not in the data
- Only adopted resolutions have a roll call. Drafts that failed without a veto have no structured record, so there is no “failed” outcome filter.
- Vetoed drafts appear only as veto events: who vetoed and when, not how the other members voted. Veto events include vetoes of amendments, individual paragraphs and procedural rulings, and one draft can appear several times.
- Votes on individual paragraphs are not included. Sponsors are not published in the dataset, so there is no sponsor filter.
- The dataset is released in versions and lags the Council. The footer shows the last resolution it contains.
Positions
- Yes / No / Abstain are as recorded by the UN.
- Did not vote combines members that were absent with members present that did not participate (for example, China “did not participate” in 50 votes between 1961 and 1981). The source does not separate them, and neither does this site. The UN’s note is shown on each vote.
- Adopted without a vote / by acclamation: the UN dataset fills in “Yes” for every member. These are not recorded votes, so they are labelled as such and excluded from every agreement and abstention figure.
Agreement
For two countries, agreement is: the number of recorded votes where both took the same position (yes, no or abstain) ÷ the number of recorded votes where both took one of those positions. Votes where either did not vote, or that were adopted without a vote, are left out. Every cell shows how many votes it rests on; cells below the chosen minimum are greyed out and should not be read.
Limits. Agreement is not alliance: two countries can agree because a text was uncontroversial. Most recorded Council votes are unanimous (about four in five), which pushes every pair upward. Abstention is ambiguous: it can signal disapproval, neutrality or a negotiated non-objection. Many votes are procedural or symbolic (routine mandate renewals), and the Council’s membership changes, so the elected members compared are not always the same set. Pairs involving rarely-serving members rest on few votes.
USSR and Russia. By default they are separate entries. An option merges them, because the Russian Federation continued the Soviet seat in December 1991. China is recorded as “China” throughout; the seat passed from the Republic of China to the People’s Republic in 1971.
Abstention rate
Abstentions ÷ (yes + no + abstain) over recorded votes in the selected window. A member that was often absent is not penalised.
Vetoes and permanent-member splits
Veto counts are rows in the UN’s veto dataset, attributed to the vetoing members. The USSR (to 1991) and the Russian Federation are separate rows. “P5 not all yes” counts adopted, recorded votes in which at least one permanent member abstained or did not vote; it uses the dataset’s own permanent-member flag. It cannot show disagreement that ended in a veto, because vetoed drafts have no roll call.
Topics
Topics are assigned by transparent keyword rules applied to the Library’s title, the agenda item and the UN subject headings. The rule id is shown on each vote. They are approximate: a resolution can match several topics, and some match none. The UN’s own subject headings (complete from 1985) are shown verbatim.
Countries and names
Names follow the United Nations’ own member-state names and codes; former states (USSR, Yugoslavia, Czechoslovakia, the two Germanys, South Yemen) are shown separately with the ISO 3166-3 code where one exists. Territorial and status questions are not for this site to settle. The “seen voting” years come from the loaded votes and are not UN membership dates.
General Assembly
- Data: UN Dag Hammarskjöld Library, General Assembly Voting Data (Version 6, October 2026): one row per member state per recorded vote on an adopted resolution or decision, 1946 to A/RES/81/1. Source record.
- Not included: resolutions adopted without a recorded vote, votes on paragraphs or amendments, and drafts that were not adopted. Recorded votes are only part of the Assembly's work, so patterns here describe the questions that went to a recorded vote, not the Assembly as a whole.
- Positions are yes, no, abstain, and “did not vote” (absent or not participating; the source does not distinguish them).
Blocs
A bloc here is a cluster of countries that voted alike in a chosen window. It is found by an algorithm from the data; nobody declared it.
- Input: the pairwise agreement defined above, summed over the years of the window. A country is included if it shares at least a minimum number of votes with some other country; a pair counts only if it shares at least a minimum number of votes. Pairs below that minimum are ignored, not counted as disagreement.
- Hierarchical clustering: start with every country alone and repeatedly merge the two closest clusters, where the distance between two countries is 1 − agreement. “Average” linkage uses the mean distance between members of two clusters (over known pairs), “complete” the largest, “single” the smallest. The tree is then cut into the chosen number of clusters.
- Community detection (Louvain): builds a network in which two countries are connected if their agreement exceeds a threshold, weighted by how far above it; it then groups countries to maximise modularity (more agreement inside groups than expected by chance). A higher resolution gives more, smaller groups. Because agreement is high between almost all pairs, the threshold matters: set it near the typical agreement in the window.
- Map: classical multidimensional scaling of 1 − agreement into two dimensions. It is a drawing aid. Distances are approximate and the axes have no meaning. Each country is a flag with a ring in its bloc's colour. Flags are then nudged apart so that none overlap, which moves them slightly from their exact positions. Flags are each country's current flag (the Soviet and Yugoslav flags for those states; Czechoslovakia uses the Czech flag, which has the same design), not the flag in use at the time of the votes; East Germany and South Yemen have no suitable flag and show a grey disc. Flag artwork: circle-flags by HatScripts, MIT licence.
- Bloc names: a name only describes who is in the bloc. A bloc is called “Mostly X members” when at least half of the bloc belongs to formal group X and at least half of X (among the countries in the analysis) is in the bloc; up to two groups are named, best fit first. Very small blocs are named after their countries, and anything else is a “Mixed group of N countries”. A group is used for naming only if its membership at the end of the window is reliable: it has start dates for nearly all members, or the window is recent. So an old window is never named after, say, the G77 using today's member list. Names are worked out again for every window, and carry no judgement about the countries' politics.
- Deterministic: no random numbers are used, so the same address always shows the same result. Changing the algorithm, the number of clusters or the thresholds changes the result, which is the point: no single answer is “the” blocs.
- Limits: clusters describe voting, not alliances, interests or motives. Countries that rarely vote are poorly placed. The clusters can be unstable when many countries vote almost identically. Early windows contain few states and votes. Cluster numbers have no order beyond what the page states.
- Formal groups (EU, NATO, G77, NAM, OIC, AU, Arab League, BRICS) are shown beside the clusters, never used to build them. Current membership comes from the CIA World Factbook (public domain); start dates come from Wikidata (CC0) where it has them. Dates are missing for most groups, so for those the current membership is applied to every year, which is wrong for earlier windows. A state counts as a member if the Factbook lists it without a qualifier such as “observer”; suspended members still count. The lists are third-party summaries and may lag changes; check the organisation's own page for authoritative membership.
Timeline
The bloc analysis is repeated for a sliding window of years (the window length and step are adjustable). To make frames comparable, each window's clusters are matched to the previous window's by overlap, so a bloc keeps its colour while it persists, and the 2-D map is rotated or flipped to stay as close as possible to the previous frame. These are presentation steps; each frame's clusters are still those the algorithm finds in that window alone.
Ideal points
Ideal-point estimates are published by Michael Bailey, Anton Strezhnev and Erik Voeten and are shown unchanged; this site does not re-estimate them. The method is a Bayesian item-response model of General Assembly roll calls that lets each country's position drift from year to year (Bailey, Strezhnev & Voeten 2017, Journal of Conflict Resolution 61(2): 430–456). It places countries on a single line; the shaded band is the 90% credible interval. The model is estimated from a different, larger vote set than the one on this site, so its picture and the agreement figures can differ. A single dimension cannot capture every issue, and the line has no moral meaning.
Calendar
- What an item is: an end date written in the title of a Security Council resolution, for example “extension of the mandate of … until 31 March 2027”. Each item links to the resolution that states it. Nothing is calculated from phrases such as “for six months”, and no date is guessed.
- One title, several dates: when a title gives a date for each of two things (a sanctions renewal and a panel mandate), each becomes an item. When it gives a single date for two things, the date is attached to the last one named, and the full title text is shown under the item so you can check.
- What is missing: only resolutions with an explicit date appear (roughly one in five). Open-ended mandates are absent. Resolutions adopted after the dataset’s last entry are not loaded, so an item may already have been extended; the page states the cut-off.
- Replaced items: an item is hidden only when a later resolution in the data names the same mission by its acronym, for example (UNISFA), with a later end date. Panels and sanctions measures are never hidden automatically because they have no reliable identity from one year to the next.
- No forecasts: the calendar does not say what the Council is expected to decide.
- Presidency: the presidency rotates monthly in English alphabetical order of the members. It is computed from that rule, starting from the UN’s listing of Greece for October 2026, and only until the end of the current members’ term year, because the next members are not in the data. It matches the UN’s listing (Latvia in November, Liberia in December).
- Meetings: the monthly programme of work and the daily schedule are published as documents that cannot be read automatically, so they are linked, not copied.
- Regions and topics on calendar items are assigned by the same keyword rules as elsewhere and are approximate.
- Feeds: the .ics feeds contain exactly these items (plus the presidency in the unfiltered feed) and carry the data cut-off in their description.
Reporting an error
Each vote links to its UN Digital Library record. If the site differs from the record, the record is right; please say so.