Skip to observatory content

Partial researchResearch snapshot 2026-09-13. Evidence gaps remain; see Coverage for requirements.

Office briefing

São Paulo — State legislative assembly

Tracked current office. Identifiers stay separate from display names.

Brazil · São Paulo / SP · regional · State legislative assemblyBR-SP-A

Read the complete original research briefing

First round 4 October 2026; governor runoff 25 October where required. TSE ordinary-election returns aggregated once from state files, excluding the duplicate national BR file. Party votes are not governing coalition control. Legislative votes include nominal plus valid list votes. Judicial retotalizations and changed party labels require review. The 2014 file uses legacy nominal/list fields; later files separately identify valid, converted and subjudice votes. This is an explicit definition-comparability limitation.

1. What office, where, and when is the next election?

Geography
São Paulo / SP
Next election
2026-10-04
Linked upcoming event
next-436c9e41a93d758da4fd3ea8
Registry qualification
Unknown

2. How certain is that date?

2026-10-04 is expected (not formally called). Day precision. A date without a formal call is not confirmed.

3. Who won earlier selected elections?

2022-10-02

unknown · Legal certification not established · list votes

  • PL18.5%
  • PT16.6%
  • PSDB8.9%
  • REPUBLICANOS7.9%
  • UNIÃO7.5%
  • PSOL6.0%
  • PODE4.6%
  • MDB4.3%
  • PSD4.2%
  • PSB3.9%
  • PP3.6%
  • PSC2.7%
  • CIDADANIA2.5%
  • NOVO1.9%
  • PDT1.7%
  • SOLIDARIEDADE1.5%
  • PATRIOTA1.0%
  • PC do B1.0%
  • REDE0.6%
  • PV0.3%
  • PMB0.3%
  • UP0.2%
  • PCB0.1%
  • PSTU0.0%
  • DC0.0%
  • PCO0.0%
Results for event-b4a5f1cfb9269dbb64e7ec10
Label / candidateParty codeVotesShareSeatsStatus
PLbrazil/S5cd0a4c40e/20224,144,51918.5%19Recorded
PTbrazil/S5cd0a4c40e/20223,720,55916.6%17Recorded
PSDBbrazil/S5cd0a4c40e/20221,997,6608.9%9Recorded
REPUBLICANOSbrazil/S5cd0a4c40e/20221,767,0117.9%8Recorded
UNIÃObrazil/S5cd0a4c40e/20221,689,2977.5%7Recorded
PSOLbrazil/S5cd0a4c40e/20221,357,8536%5Recorded
PODEbrazil/S5cd0a4c40e/20221,030,5954.6%4Recorded
MDBbrazil/S5cd0a4c40e/2022975,2074.3%4Recorded
PSDbrazil/S5cd0a4c40e/2022940,8094.2%4Recorded
PSBbrazil/S5cd0a4c40e/2022882,4953.9%4Recorded
PPbrazil/S5cd0a4c40e/2022799,1483.6%3Recorded
PSCbrazil/S5cd0a4c40e/2022613,7962.7%2Recorded
CIDADANIAbrazil/S5cd0a4c40e/2022554,6592.5%3Recorded
NOVObrazil/S5cd0a4c40e/2022428,0301.9%1Recorded
PDTbrazil/S5cd0a4c40e/2022384,3771.7%1Recorded
SOLIDARIEDADEbrazil/S5cd0a4c40e/2022345,8111.5%1Recorded
PATRIOTAbrazil/S5cd0a4c40e/2022234,3671%0 (recorded zero)Recorded
PC do Bbrazil/S5cd0a4c40e/2022229,8601%1Recorded
REDEbrazil/S5cd0a4c40e/2022138,7670.6%1Recorded
PVbrazil/S5cd0a4c40e/202272,4340.3%0 (recorded zero)Recorded
PMBbrazil/S5cd0a4c40e/202261,0200.3%0 (recorded zero)Recorded
UPbrazil/S5cd0a4c40e/202239,5450.2%0 (recorded zero)Recorded
PCBbrazil/S5cd0a4c40e/202220,4030.1%0 (recorded zero)Recorded
PSTUbrazil/S5cd0a4c40e/202210,6310%0 (recorded zero)Recorded
DCbrazil/S5cd0a4c40e/20226,3130%0 (recorded zero)Recorded
PCObrazil/S5cd0a4c40e/20223,6730%0 (recorded zero)Recorded

2018-10-07

unknown · Legal certification not established · list votes

  • PSL19.3%
  • PSDB9.6%
  • PT9.3%
  • PSB6.1%
  • DEM5.9%
  • PR5.7%
  • PSOL4.3%
  • NOVO4.3%
  • PODE4.2%
  • PP4.1%
  • PRB3.6%
  • MDB2.9%
  • PSD2.7%
  • PV2.2%
  • PTB1.8%
  • PPS1.6%
  • PHS1.6%
  • PATRI1.5%
  • PROS1.5%
  • PDT1.4%
  • PC do B1.2%
  • SOLIDARIEDADE1.1%
  • AVANTE1.0%
  • REDE0.8%
  • PRP0.7%
  • PSC0.6%
  • PRTB0.3%
  • PMN0.2%
  • PPL0.1%
  • PTC0.1%
  • PMB0.1%
  • DC0.1%
  • PSTU0.1%
  • PCB0.0%
Results for event-29fc1fa0bb2712589a5762f1
Label / candidateParty codeVotesShareSeatsStatus
PSLbrazil/S0d7ac4a666/20184,025,33919.3%15Recorded
PSDBbrazil/S0d7ac4a666/20182,003,3879.6%8Recorded
PTbrazil/S0d7ac4a666/20181,940,2659.3%10Recorded
PSBbrazil/S0d7ac4a666/20181,268,8626.1%8Recorded
DEMbrazil/S0d7ac4a666/20181,230,2345.9%7Recorded
PRbrazil/S0d7ac4a666/20181,196,7875.7%6Recorded
PSOLbrazil/S0d7ac4a666/2018906,6704.3%4Recorded
NOVObrazil/S0d7ac4a666/2018891,3194.3%4Recorded
PODEbrazil/S0d7ac4a666/2018874,3104.2%4Recorded
PPbrazil/S0d7ac4a666/2018852,2774.1%4Recorded
PRBbrazil/S0d7ac4a666/2018745,2383.6%6Recorded
MDBbrazil/S0d7ac4a666/2018598,0842.9%3Recorded
PSDbrazil/S0d7ac4a666/2018559,3802.7%2Recorded
PVbrazil/S0d7ac4a666/2018468,6532.2%1Recorded
PTBbrazil/S0d7ac4a666/2018365,5661.8%2Recorded
PPSbrazil/S0d7ac4a666/2018337,3801.6%2Recorded
PHSbrazil/S0d7ac4a666/2018325,1141.6%1Recorded
PATRIbrazil/S0d7ac4a666/2018313,9571.5%1Recorded
PROSbrazil/S0d7ac4a666/2018309,8861.5%1Recorded
PDTbrazil/S0d7ac4a666/2018301,7901.4%1Recorded
PC do Bbrazil/S0d7ac4a666/2018246,1001.2%1Recorded
SOLIDARIEDADEbrazil/S0d7ac4a666/2018232,1301.1%1Recorded
AVANTEbrazil/S0d7ac4a666/2018210,1831%1Recorded
REDEbrazil/S0d7ac4a666/2018164,3670.8%1Recorded
PRPbrazil/S0d7ac4a666/2018155,3580.7%0 (recorded zero)Recorded
PSCbrazil/S0d7ac4a666/2018125,0790.6%0 (recorded zero)Recorded
PRTBbrazil/S0d7ac4a666/201852,7060.3%0 (recorded zero)Recorded
PMNbrazil/S0d7ac4a666/201831,3260.2%0 (recorded zero)Recorded
PPLbrazil/S0d7ac4a666/201830,8260.1%0 (recorded zero)Recorded
PTCbrazil/S0d7ac4a666/201824,5660.1%0 (recorded zero)Recorded
PMBbrazil/S0d7ac4a666/201823,0390.1%0 (recorded zero)Recorded
DCbrazil/S0d7ac4a666/201818,1190.1%0 (recorded zero)Recorded
PSTUbrazil/S0d7ac4a666/201816,8260.1%0 (recorded zero)Recorded
PCBbrazil/S0d7ac4a666/20187,5580%0 (recorded zero)Recorded

2014-10-05

unknown · Legal certification not established · list votes

  • PSDB24.6%
  • PT14.8%
  • PV6.3%
  • PSB6.1%
  • DEM6.0%
  • PMDB4.8%
  • PSD4.1%
  • PSC3.0%
  • PR3.0%
  • PTB2.9%
  • PRB2.8%
  • PPS2.7%
  • PC do B2.4%
  • PSOL2.3%
  • PP2.3%
  • PEN2.1%
  • SD1.9%
  • PDT1.9%
  • PHS1.1%
  • PTN0.9%
  • PSL0.8%
  • PRP0.8%
  • PROS0.6%
  • PT do B0.4%
  • PTC0.3%
  • PRTB0.3%
  • PPL0.2%
  • PMN0.2%
  • PSTU0.2%
  • PSDC0.2%
  • PCO0.0%
Results for event-a4a5252a9841b3d61b2d5ee8
Label / candidateParty codeVotesShareSeatsStatus
PSDBbrazil/S2c70216745/20145,113,97624.6%22Recorded
PTbrazil/S2c70216745/20143,070,06914.8%15Recorded
PVbrazil/S2c70216745/20141,306,7506.3%6Recorded
PSBbrazil/S2c70216745/20141,261,8616.1%6Recorded
DEMbrazil/S2c70216745/20141,250,9226%8Recorded
PMDBbrazil/S2c70216745/20141,000,2774.8%5Recorded
PSDbrazil/S2c70216745/2014844,5924.1%4Recorded
PSCbrazil/S2c70216745/2014622,2383%3Recorded
PRbrazil/S2c70216745/2014615,0253%3Recorded
PTBbrazil/S2c70216745/2014606,7012.9%2Recorded
PRBbrazil/S2c70216745/2014579,3372.8%4Recorded
PPSbrazil/S2c70216745/2014560,1302.7%3Recorded
PC do Bbrazil/S2c70216745/2014503,4742.4%2Recorded
PSOLbrazil/S2c70216745/2014485,1472.3%2Recorded
PPbrazil/S2c70216745/2014471,7492.3%2Recorded
PENbrazil/S2c70216745/2014440,3482.1%2Recorded
SDbrazil/S2c70216745/2014405,0731.9%1Recorded
PDTbrazil/S2c70216745/2014400,5551.9%1Recorded
PHSbrazil/S2c70216745/2014233,1471.1%1Recorded
PTNbrazil/S2c70216745/2014197,3330.9%1Recorded
PSLbrazil/S2c70216745/2014170,5810.8%1Recorded
PRPbrazil/S2c70216745/2014165,8170.8%0 (recorded zero)Recorded
PROSbrazil/S2c70216745/2014120,6610.6%0 (recorded zero)Recorded
PT do Bbrazil/S2c70216745/201482,2880.4%0 (recorded zero)Recorded
PTCbrazil/S2c70216745/201470,5600.3%0 (recorded zero)Recorded
PRTBbrazil/S2c70216745/201460,3100.3%0 (recorded zero)Recorded
PPLbrazil/S2c70216745/201442,9240.2%0 (recorded zero)Recorded
PMNbrazil/S2c70216745/201435,5060.2%0 (recorded zero)Recorded
PSTUbrazil/S2c70216745/201433,8650.2%0 (recorded zero)Recorded
PSDCbrazil/S2c70216745/201432,9660.2%0 (recorded zero)Recorded
PCObrazil/S2c70216745/20144,6170%0 (recorded zero)Recorded

4. Competition and volatility

competition index

Provisional imported-series CI

74.870–100 historical closeness

Actual-event and/or comparability review incomplete

Comparison status: Provisional imported-series comparison; actual-event review open

Method ci.weighted-gap.v1. Inputs: latest_gap=1.8885609184510628, oldest_gap=9.831770464469832, previous_gap=9.696364702457204

pedersen volatility

Provisional volatility

24.94percentage points

Grouped Pedersen lower bound (percentage points). Nine continuing national parties, allowing PMDB/MDB and PR/PL labels; merged, new and remaining parties all grouped in Other. Lower bound; changes inside Other are invisible. An interval is withheld if either election has no list mapped to an explicit named group. This is aggregate share change, not individual voter switching. Event review: Actual-event and/or comparability review incomplete

Comparison status: Latest interval

Method pedersen.grouped.v1. Inputs: groups=["PT","PSDB","MDB","PP","PSB","PDT","PSD","PSOL","PL","Other"], interval=Latest interval, vectors=[[16.57350297714728,8.898723003002516,4.34413111519932,3.5598633853626014,3.9311387105587063,1.7122355414460408,4.190902701026098,6.048655790172489,18.46206389559834,32.2787828804866],[9.30463090093787,9.607335382917908,2.8681395931774913,4.08713392776689,6.0848866387971885,1.447247958188206,2.6825327640124548,4.347978084928264,5.739247629597364,53.83086711967637],null]

pedersen volatility

Withheld volatility

Unknownpercentage points

Grouped Pedersen lower bound (percentage points). Nine continuing national parties, allowing PMDB/MDB and PR/PL labels; merged, new and remaining parties all grouped in Other. Lower bound; changes inside Other are invisible. An interval is withheld if either election has no list mapped to an explicit named group. This is aggregate share change, not individual voter switching. Event review: Actual-event and/or comparability review incomplete

Comparison status: Previous interval · Comparable grouped vectors unavailable for this interval

Method pedersen.grouped.v1. Inputs: groups=["PT","PSDB","MDB","PP","PSB","PDT","PSD","PSOL","PL","Other"], interval=Previous interval, vectors=[[16.57350297714728,8.898723003002516,4.34413111519932,3.5598633853626014,3.9311387105587063,1.7122355414460408,4.190902701026098,6.048655790172489,18.46206389559834,32.2787828804866],[9.30463090093787,9.607335382917908,2.8681395931774913,4.08713392776689,6.0848866387971885,1.447247958188206,2.6825327640124548,4.347978084928264,5.739247629597364,53.83086711967637],null]

pedersen volatility

Withheld volatility

Unknownpercentage points

Grouped Pedersen lower bound (percentage points). Nine continuing national parties, allowing PMDB/MDB and PR/PL labels; merged, new and remaining parties all grouped in Other. Lower bound; changes inside Other are invisible. An interval is withheld if either election has no list mapped to an explicit named group. This is aggregate share change, not individual voter switching. Event review: Actual-event and/or comparability review incomplete

Comparison status: Both intervals mean · Comparable grouped vectors unavailable for this interval

Method pedersen.grouped.v1. Inputs: groups=["PT","PSDB","MDB","PP","PSB","PDT","PSD","PSOL","PL","Other"], interval=Both intervals mean, vectors=[[16.57350297714728,8.898723003002516,4.34413111519932,3.5598633853626014,3.9311387105587063,1.7122355414460408,4.190902701026098,6.048655790172489,18.46206389559834,32.2787828804866],[9.30463090093787,9.607335382917908,2.8681395931774913,4.08713392776689,6.0848866387971885,1.447247958188206,2.6825327640124548,4.347978084928264,5.739247629597364,53.83086711967637],null]

Source-reported control: Unverified. Current tenure requires separate dated evidence.

5. Officeholder evidence

Dated roster observations are not automatically current tenure. The source current-office flag means this office is tracked now, not that the last winner still holds it.

No officeholder observation supplied.

6. Polling context

No local poll supplied.

National context is listed on the polling page. It is not a local forecast.

7. Unresolved issues and sources

First round 4 October 2026; governor runoff 25 October where required. TSE ordinary-election returns aggregated once from state files, excluding the duplicate national BR file. Party votes are not governing coalition control. Legislative votes include nominal plus valid list votes. Judicial retotalizations and changed party labels require review. The 2014 file uses legacy nominal/list fields; later files separately identify valid, converted and subjudice votes. This is an explicit definition-comparability limitation. Roraima legal certification, Rio and other specific replacement/current-control cases remain open. Eight municipal replacement tickets are tracked; ordinary municipal renewals are outside the window. Public-vote baselines for Alagoas and Amazonas are supplied separately from their indirect selections. Roraima’s primary 2010 cycle is recovered; the June 2026 proclamation is still unresolved. Rio’s signed 2026 legislative retotalization verifies the imported 2022 votes and seats, with 70 named elected deputies added; later membership and governing-coalition control still need dated verification.

    Sources

    Cite this record

    Center for Digital Democracy. “São Paulo — State legislative assembly.” Subnational Election Observatory, releaselatin-america-fe5e91689def, snapshot 2026-09-13. /electiondatabase/offices/BR-SP-A. Sources: brazil--url-580aebec6bb5c27e76b98bb4, brazil--url-ef95aa16df1e62f699a27949, brazil--url-653ade48bf64a7388c4b910b, brazil--S5cd0a4c40e, brazil--S0d7ac4a666, brazil--S2c70216745.