{"id":509510,"date":"2026-10-27T13:34:11","date_gmt":"2026-10-27T13:34:11","guid":{"rendered":"https:\/\/www.newsbeep.com\/us-ca\/509510\/"},"modified":"2026-10-27T13:34:11","modified_gmt":"2026-10-27T13:34:11","slug":"the-polka-dots-that-explain-everything-you-need-to-know-about-the-sf-ballot","status":"publish","type":"post","link":"https:\/\/www.newsbeep.com\/us-ca\/509510\/","title":{"rendered":"The polka dots that explain everything you need to know about the SF ballot"},"content":{"rendered":"<p class=\"paragraph-block break-words article-body text-left\">Voter guides are a Rorschach test for political partisans: No matter how objective the authors or how scientific their methods, you still might detect signs of bias. That\u2019s why when The Standard began assembling our <a href=\"https:\/\/sfstandard.com\/2026-election-voter-guide\/\" rel=\"nofollow noopener\" target=\"_blank\">2026 Voter Guide<\/a>, we designed a module that makes bias impossible \u2014 well, almost impossible.<\/p>\n<p class=\"paragraph-block break-words article-body text-left\">The \u201cendorsement roundups\u201d found on every page of The Standard\u2019s 2026 guide are perhaps the most data-intensive aspects. (They\u2019re also the most vibrant, each a color-coded \u201cbeeswarm\u201d chart with a teeming hive of polka dots.) Each dot represents the endorsement of a single group, political party, or PAC, and each roundup tracks the picks of dozens of organizations. All told, we included endorsements from 95 groups:<\/p>\n<p>20 advocacy groups18 labor unions17 political action committees9 political parties9 party-affiliated groups8 newspapers6 business groups4 civic groups4 independent guides<\/p>\n<p class=\"paragraph-block break-words article-body text-left\">As of Thursday, those groups had made a combined 2,009 endorsements: 1,229 on props, 689 on candidates, and 91 on judicial retention. We track every endorsing organization in a massive spreadsheet and database and update it every couple of days as endorsements are added or change.<\/p>\n<p>Design choice<img loading=\"lazy\" decoding=\"async\" class=\"block \" width=\"1886\" height=\"880\" alt=\"Colored dots representing political endorsements are arranged from progressive to conservative, with purple for Dionjay, pink for Theo, orange for Pearci, brown for J.R., gray for no endorsement, and black for endorsed by none.\"   src=\"https:\/\/www.newsbeep.com\/us-ca\/wp-content\/uploads\/2026\/10\/-S3840x1792-FPNG.png\"\/>A beeswarm chart containing endorsements for the District 10 race. | Source: SF Standard Staff<\/p>\n<p class=\"paragraph-block break-words article-body text-left\">Once we had collected all this great data, we wanted to do more than put it in a table at the end of each article. Tables are useful for storing data but not very helpful in making sense of it. Not to mention, it would have been unwieldy and, frankly, ugly.<\/p>\n<p class=\"paragraph-block break-words article-body text-left\">Thus began the work of finding the right data visualization. At first, we thought about just counting up the endorsements for each candidate or yes\/no position and making a bar chart. But we quickly realized that presentation would hide a key signal from endorsements: partisanship. Knowing how many endorsements a candidate or measure has is helpful, but knowing the political leaning of that endorsement opens up a new axis of analysis.<\/p>\n<p class=\"paragraph-block break-words article-body text-left\">Plotting the endorsements on a left-right axis would allow readers to quickly identify which side of the aisle is backing the measure. We soon landed on a beeswarm chart, which had two characteristics we liked: It was easy to understand and showed individual endorsements, so outliers were easy to spot.<\/p>\n<p>Partisanship scores<\/p>\n<p class=\"paragraph-block break-words article-body text-left\">The beeswarm had a third benefit: It isn\u2019t overly precise. Partisanship in California politics \u2014 especially San Francisco politics \u2014 is not a strict left\/right binary. It\u2019s more often an ultraleft\/moderate left binary, with a few moderate right outliers. To construct the chart, we gave every endorser a partisanship score ranging from -2 (far left) to +2 (far right). This was more art than science, but we made attempts at normalization using historical voting data and official party platforms. (So far, no group has told us we put them in the wrong spot. But if we did, don\u2019t hesitate to reach out!) The beeswarm, unlike a scatterplot or grid, allows some movement, showing clusterings as organic blobs rather than falsely precise points on the axis.<\/p>\n<p>Telling examples<\/p>\n<p class=\"paragraph-block break-words article-body text-left\">Let\u2019s compare two of the statewide tax initiatives: <a href=\"https:\/\/sfstandard.com\/2026-election-voter-guide\/proposition\/3\/\" rel=\"nofollow noopener\" target=\"_blank\">Prop. 3<\/a>, which extends a high-income tax for education, and <a href=\"https:\/\/sfstandard.com\/2026-election-voter-guide\/proposition\/40\/\" rel=\"nofollow noopener\" target=\"_blank\">Prop. 40<\/a>, the billionaire tax. As you can see, Prop. 3 has support from the far left to the center of the political spectrum, while Prop. 40\u2019s support is concentrated at the progressive end, and many in the center left decided to not endorse at all.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"block \" width=\"1982\" height=\"812\" alt=\"Green check circles dominate the progressive and lean left groups, gray circles are scattered mostly in lean left and center, and red X circles cluster in the conservative group.\"   src=\"https:\/\/www.newsbeep.com\/us-ca\/wp-content\/uploads\/2026\/10\/-S3840x1573-FPNG.png\"\/>Prop. 3 endorsements. | Source: SF Standard Staff<img loading=\"lazy\" decoding=\"async\" class=\"block \" width=\"2002\" height=\"820\" alt=\"Dots in green, red, black, and gray represent group positions from progressive to conservative, with green mostly on left, red on right, black no position, and gray not weighed in.\"   src=\"https:\/\/www.newsbeep.com\/us-ca\/wp-content\/uploads\/2026\/10\/1793108051_287_-S3840x1573-FPNG.png\"\/>Prop. 40 endorsements. | Source: SF Standard Staff<\/p>\n<p class=\"paragraph-block break-words article-body text-left\">Another interesting roundup is the race for <a href=\"https:\/\/sfstandard.com\/2026-election-voter-guide\/contest\/ca-insurance-commissioner-2026\/\" rel=\"nofollow noopener\" target=\"_blank\">insurance commissioner<\/a>. As a Democrat-versus-Democrat contest, it is one of the most \u201cintermixed.\u201d Still, we can see that Kim\u2019s support leans progressive and Allen\u2019s center-left. Make sure to check the dots that buck the trend!<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"block \" width=\"1990\" height=\"815\" alt=\"Colored dots arranged left to right show political endorsements: dark blue for Jane Kim, light blue for Ben Allen, gray for no endorsement, and black for endorsing no one.\"   src=\"https:\/\/www.newsbeep.com\/us-ca\/wp-content\/uploads\/2026\/10\/1793108051_485_-S3840x1573-FPNG.png\"\/>Insurance commissioner endorsements. | Source: SF Standard Staff<\/p>\n<p class=\"paragraph-block break-words article-body text-left\">For the endorsement roundup power users, you can even inspect the minute differences between otherwise similar measures, like Mayor Daniel Lurie\u2019s three charter reforms, <a href=\"https:\/\/sfstandard.com\/2026-election-voter-guide\/proposition\/D\/\" rel=\"nofollow noopener\" target=\"_blank\">Props. D<\/a>, <a href=\"https:\/\/sfstandard.com\/2026-election-voter-guide\/proposition\/E\/\" rel=\"nofollow noopener\" target=\"_blank\">E<\/a>, and <a href=\"https:\/\/sfstandard.com\/2026-election-voter-guide\/proposition\/F\/\" rel=\"nofollow noopener\" target=\"_blank\">F<\/a>. For example, the SF Republican Party backs the mayor\u2019s power measures, E and F, but opposes making it harder to put measures on the ballot, D.<\/p>\n<p>Gallery of 3 photosExpand photoClick arrows to view<br \/> the slideshow<\/p>\n<p>Prop. D endorsements. The SF Republic Party\u2019s no recommendation is the second red dot from the right. | Source: SF Standard Staff<\/p>\n<p>Prop. E endorsements.\u200b | Source: SF Standard Staff<\/p>\n<p>Prop. F endorsements.\u200b | Source: SF Standard Staff<\/p>\n<p>More insightsCredit where it\u2019s due<\/p>\n<p class=\"paragraph-block break-words article-body text-left\">We\u2019re not the only ones to aggregate endorsements this way. There are a few other groups that make cross-checking endorsements easy. We\u2019re fans of <a href=\"https:\/\/sfendorsements.com\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">SF Endorsements (opens in new tab)<\/a>, run by Peter Xu, which has been collecting endorsements since 2019. There\u2019s also a new project, <a href=\"https:\/\/bayballot.com\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Bay Ballot (opens in new tab)<\/a>, which tracks more than 120 organizations and creates roundups for downballot races in all nine Bay Area counties.<\/p>\n<p class=\"paragraph-block break-words article-body text-left\">Endorsements are just one signal among many. There\u2019s also polling, campaign finance, and of course, our very own (best attempt at) nonpartisan guides. Happy voting!<\/p>\n","protected":false},"excerpt":{"rendered":"Voter guides are a Rorschach test for political partisans: No matter how objective the authors or how scientific&hellip;\n","protected":false},"author":2,"featured_media":509511,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[30],"tags":[37945,204,989,388,101,103,102,104,106,105,37511,36094],"class_list":["post-509510","post","type-post","status-publish","format-standard","has-post-thumbnail","category-san-francisco","tag-2026-election","tag-election","tag-elections","tag-real-estate","tag-san-francisco","tag-san-francisco-headlines","tag-san-francisco-news","tag-sf","tag-sf-headlines","tag-sf-news","tag-sf-reality-check","tag-trump-vs-california"],"_links":{"self":[{"href":"https:\/\/www.newsbeep.com\/us-ca\/wp-json\/wp\/v2\/posts\/509510","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.newsbeep.com\/us-ca\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.newsbeep.com\/us-ca\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/us-ca\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/us-ca\/wp-json\/wp\/v2\/comments?post=509510"}],"version-history":[{"count":0,"href":"https:\/\/www.newsbeep.com\/us-ca\/wp-json\/wp\/v2\/posts\/509510\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/us-ca\/wp-json\/wp\/v2\/media\/509511"}],"wp:attachment":[{"href":"https:\/\/www.newsbeep.com\/us-ca\/wp-json\/wp\/v2\/media?parent=509510"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.newsbeep.com\/us-ca\/wp-json\/wp\/v2\/categories?post=509510"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.newsbeep.com\/us-ca\/wp-json\/wp\/v2\/tags?post=509510"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}