{
  "data": {
    "id": "senate",
    "key": "brazil-general-2026-al/senate",
    "name": "Senate",
    "body": "legislature-upper",
    "seats": 2,
    "seats_provisional": false,
    "polls_close_utc": "2026-10-04T20:00:00Z",
    "authority": {
      "id": "br-tse",
      "name": "Superior Electoral Court",
      "name_local": "Tribunal Superior Eleitoral",
      "role": "court",
      "homepage": "https://www.tse.jus.br/",
      "results_index": "https://www.tse.jus.br/eleicoes/resultados-eleicoes",
      "open_data": "https://dadosabertos.tse.jus.br/"
    },
    "status": "final-expected",
    "expected_stage_now": "final-result",
    "observed": true,
    "final_observed": {
      "at": "2026-10-05T01:54:29Z",
      "source": "https://resultados.tse.jus.br/oficial/ele2026/6259/dados/al/al-c0005-e006259-u.json"
    },
    "final_expected": {
      "from": "2026-10-05T03:00:00Z",
      "by": "2026-10-07T02:59:59Z",
      "confidence": "precedent",
      "basis": "Senate: two seats, the two most-voted candidates win, one round only (art. 46: majority principle; 2022 renewed one third, so 2026 renews two thirds). 2022: the TSE finished totalising every polling section, all states included, of the first round at 10:27 on Tuesday 4 Oct, two days after polling day; the window closes at the end of the second day after polling day, Brasília time. Winners are formally certified (diplomação) by 18 Dec 2026 (TSE calendar); settle on the totalised count, not on diplomação."
    },
    "last_final": null,
    "previous": null,
    "stages": [
      {
        "stage": "election-night",
        "from": "2026-10-04T20:00:00Z",
        "by": "2026-10-05T02:59:59Z",
        "replacedAt": "2026-10-05T03:00:00Z",
        "confidence": "precedent",
        "citation": "TSE calendar: voting runs 08:00–17:00 Brasília time nationwide, and the count is published live from the close. 2022: the presidential runoff winner was declared on the evening of polling day, once the result could no longer change mathematically.",
        "source": null,
        "observedAt": null,
        "observedSource": null
      },
      {
        "stage": "final-result",
        "from": "2026-10-05T03:00:00Z",
        "by": "2026-10-07T02:59:59Z",
        "replacedAt": null,
        "confidence": "precedent",
        "citation": "Senate: two seats, the two most-voted candidates win, one round only (art. 46: majority principle; 2022 renewed one third, so 2026 renews two thirds). 2022: the TSE finished totalising every polling section, all states included, of the first round at 10:27 on Tuesday 4 Oct, two days after polling day; the window closes at the end of the second day after polling day, Brasília time. Winners are formally certified (diplomação) by 18 Dec 2026 (TSE calendar); settle on the totalised count, not on diplomação.",
        "source": null,
        "observedAt": "2026-10-05T01:54:29Z",
        "observedSource": "https://resultados.tse.jus.br/oficial/ele2026/6259/dados/al/al-c0005-e006259-u.json"
      }
    ],
    "sources": [
      {
        "url": "https://www.tse.jus.br/eleicoes/resultados-eleicoes",
        "role": "results-live",
        "kind": "results_index",
        "kindReason": "results section without an election code",
        "resolvable": false,
        "origin": "race",
        "note": "TSE results index, not a page for this election. The live 2026 count will be in the Resultados app (resultados.tse.jus.br/oficial/app/index.html, a multi-election app) and in JSON files whose election codes are not published yet; see the ele-c.json source note. Open data: no 'Resultados - 2026' dataset seen on dadosabertos.tse.jus.br (the 2022 one is dadosabertos.tse.jus.br/dataset/resultados-2022); the portal answered 403 to our fetcher on 24 Sep 2026, and the Wayback Machine holds only the candidatos, eleitorado, pesquisas-eleitorais and prestacao-de-contas datasets for 2026.",
        "check": {
          "status": 403,
          "state": "blocked",
          "at": "2026-10-26T05:17:46Z"
        },
        "figures_in_html": null,
        "oracle_reads": null,
        "not_resolvable_because": null
      },
      {
        "url": "https://resultados.tse.jus.br/oficial/comum/config/ele-c.json",
        "role": "see-also",
        "kind": "feed",
        "kindReason": "machine-readable file",
        "resolvable": true,
        "origin": "race",
        "note": "TSE election-configuration file (EA11); see brazil-general-2026 for the full note. It did not list the 2026 cycle on 24 Sep 2026. Once it names ele2026, the senate count for AL is predicted at resultados.tse.jus.br/oficial/ele2026/<cd>/dados/al/al-c0005-e<cd, 6 digits>-u.json (EA20), where <cd> is the 'Eleição Ordinária Estadual' code (its runoff code for round 2). Pattern taken from the TSE simulation of 24 Sep 2026; build it from ele-c.json, never guess (wrong URLs can get an IP blocked).",
        "check": {
          "status": 200,
          "state": "ok",
          "at": "2026-10-26T05:17:46Z"
        },
        "figures_in_html": null,
        "oracle_reads": null,
        "not_resolvable_because": null
      },
      {
        "url": "https://www.tse.jus.br/eleicoes/informacoes-tecnicas-sobre-a-divulgacao-de-resultados",
        "role": "see-also",
        "kind": "results_index",
        "kindReason": "results section without an election code",
        "resolvable": false,
        "origin": "race",
        "note": "TSE technical page for 2026 results publishing (JSON specs EA10-EA20, FAQ). Rate limit: 100 requests/s per IP. Requests to wrong URLs that return 404 'podem ocasionar bloqueio', and there are no index files, so build URLs from ele-c.json and never guess. Read from the Wayback Machine copy of 14 Aug 2026, because tse.jus.br returned 403 to our fetcher on 24 Sep 2026.",
        "check": {
          "status": 403,
          "state": "blocked",
          "at": "2026-10-26T05:17:46Z"
        },
        "figures_in_html": null,
        "oracle_reads": null,
        "not_resolvable_because": null
      },
      {
        "url": "https://www.planalto.gov.br/ccivil_03/constituicao/constituicao.htm",
        "role": "timetable",
        "kind": "other",
        "kindReason": "no election or results marker",
        "resolvable": false,
        "origin": "race",
        "note": "Federal Constitution (Planalto), read 2026-09-30: art. 28 (governor: first Sunday of October, runoff on the last Sunday \"se houver\", as in art. 77), art. 46 §§1–2 (three senators per state, renewed every four years alternately by one and two thirds), art. 77 §§2–3 (absolute majority of valid votes, else a runoff between the two most voted).",
        "check": {
          "status": 520,
          "state": "unreachable",
          "at": "2026-10-26T05:17:46Z"
        },
        "figures_in_html": null,
        "oracle_reads": null,
        "not_resolvable_because": null
      },
      {
        "url": "https://resultados.tse.jus.br/oficial/ele2026/6259/dados/al/al-c0005-e006259-u.json",
        "role": "results-final",
        "kind": "feed",
        "kindReason": "machine-readable file",
        "resolvable": true,
        "origin": "race",
        "note": "TSE EA20 'resultado unificado' file for AL, round 1 (election 6259 from ele-c.json, cycle ele2026), read 25 Oct 2026: final totalisation, generated 04/10/2026 22:54:50 Brasília time.",
        "check": {
          "status": 200,
          "state": "ok",
          "at": "2026-10-26T05:17:46Z"
        },
        "figures_in_html": null,
        "oracle_reads": null,
        "not_resolvable_because": null
      },
      {
        "url": "https://dadosabertos.tse.jus.br/",
        "role": "open-data",
        "kind": "results_index",
        "kindReason": "results host, but its root lists many elections",
        "resolvable": false,
        "origin": "authority",
        "check": {
          "status": 403,
          "state": "blocked",
          "at": "2026-10-26T05:17:46Z"
        },
        "figures_in_html": null,
        "oracle_reads": null,
        "not_resolvable_because": null
      },
      {
        "url": "https://www.tse.jus.br/",
        "role": "authority-home",
        "kind": "emb_home",
        "kindReason": "site root: cannot answer a results question",
        "resolvable": false,
        "origin": "authority",
        "check": {
          "status": 403,
          "state": "blocked",
          "at": "2026-10-26T05:17:46Z"
        },
        "figures_in_html": null,
        "oracle_reads": null,
        "not_resolvable_because": null
      }
    ],
    "results_page": {
      "url": "https://electionindex.org/election/brazil-general-2026-al/senate",
      "role": "secondary",
      "stage": "final-result",
      "final": true,
      "published_at": "2026-10-05T01:54:50Z",
      "retrieved_at": "2026-10-25T12:00:00Z",
      "copied_from": "https://resultados.tse.jus.br/oficial/ele2026/6259/dados/al/al-c0005-e006259-u.json",
      "publisher": "Tribunal Superior Eleitoral",
      "note": "Global Election Index's copy of the count. The authority's own page (resolution_sources) is the primary source; use this when it cannot be read."
    },
    "page_activity": [],
    "government": null,
    "results": [
      {
        "stage": "final-result",
        "published_at": "2026-10-05T01:54:50Z",
        "retrieved_at": "2026-10-25T12:00:00Z",
        "source": "https://resultados.tse.jus.br/oficial/ele2026/6259/dados/al/al-c0005-e006259-u.json",
        "publisher": "Tribunal Superior Eleitoral",
        "licence": "Official publication of the TSE; no reuse terms stated. Lei 9.610/1998 art. 8 IV (planalto.gov.br/ccivil_03/leis/l9610.htm, read 25 Oct 2026): \"Não são objeto de proteção como direitos autorais [...] os textos de tratados ou convenções, leis, decretos, regulamentos, decisões judiciais e demais atos oficiais\"",
        "total_votes": 3286601,
        "electorate": null,
        "ballots": null,
        "turnout": null,
        "note": "TSE EA20 result file, round 1, generated 4 Oct 2026 22:54:50 Brasília time: final totalisation ('tf': 's', 'and': 'f'), 7,101 of 7,101 polling sections totalised on 4 Oct 2026 at 22:54:29 (Brasília time, UTC-3). Rows: each candidate's ballot name and party as the TSE writes them, with nominal votes. Two seats, two votes per voter. totalVotes = valid votes ('vv', nominal) 3,286,601, of 3,871,640 votes cast by 1,935,820 voters (attendance, 'c') out of 2,439,190 registered ('te'); blank 226,942, null 358,097. ballots and electorate are left out because with two votes per voter the valid votes exceed both (the record counts one vote per voter). Elected (status 'Eleito'): ARTHUR LIRA (PP) and MARINA JHC (PSDB), seats 1 each; winner marks the most-voted only (the field means 'most votes'). Diplomação (by 18 Dec 2026) is a later formality and does not change the count. Observed: the TSE result file for AL (senator, cargo 5, election 6259) shows the final totalisation ('tf': 's', 'and': 'f', all 7,101 polling sections) on 4 Oct 2026 at 22:54:29 Brasília time, recorded as 2026-10-05T01:54:29Z.",
        "rows": [
          {
            "candidate": "ARTHUR LIRA",
            "ballot_name": null,
            "party": "PP",
            "party_id": null,
            "colour": null,
            "votes": 948703,
            "share": 28.87,
            "seats": 1,
            "winner": true
          },
          {
            "candidate": "MARINA JHC",
            "ballot_name": null,
            "party": "PSDB",
            "party_id": null,
            "colour": null,
            "votes": 926860,
            "share": 28.2,
            "seats": 1,
            "winner": false
          },
          {
            "candidate": "RENAN",
            "ballot_name": null,
            "party": "MDB",
            "party_id": null,
            "colour": null,
            "votes": 731045,
            "share": 22.24,
            "seats": null,
            "winner": false
          },
          {
            "candidate": "DR. WANDERLEY",
            "ballot_name": null,
            "party": "MDB",
            "party_id": null,
            "colour": null,
            "votes": 358478,
            "share": 10.91,
            "seats": null,
            "winner": false
          },
          {
            "candidate": "DAVI DAVINO FILHO",
            "ballot_name": null,
            "party": "REPUBLICANOS",
            "party_id": null,
            "colour": null,
            "votes": 293008,
            "share": 8.92,
            "seats": null,
            "winner": false
          },
          {
            "candidate": "ALEXANDRE FLEMING",
            "ballot_name": null,
            "party": "UP",
            "party_id": null,
            "colour": null,
            "votes": 26048,
            "share": 0.79,
            "seats": null,
            "winner": false
          },
          {
            "candidate": "MARIEDSON",
            "ballot_name": null,
            "party": "DEMOCRATA",
            "party_id": null,
            "colour": null,
            "votes": 2459,
            "share": 0.07,
            "seats": null,
            "winner": false
          }
        ]
      }
    ],
    "live_count": null,
    "url": "https://electionindex.org/election/brazil-general-2026-al#senate"
  },
  "meta": {
    "dataset_version": "2026-10-26.74f9bab4",
    "built_at": "2026-10-26T08:01:24Z",
    "generated_at": "2026-10-26T18:57:07.482Z",
    "licence": "CC BY 4.0: credit \"Global Election Index (electionindex.org)\" and link to https://electionindex.org",
    "docs": "https://electionindex.org/docs"
  }
}