{
    "archive_path": "archive/1792450808.712089",
    "base_url": "www.patrickruffini.com/p/the-election-indicator-that-beats",
    "basename": "the-election-indicator-that-beats",
    "bookmarked_date": "2026-10-19 23:00",
    "canonical": {
        "archive_org_path": "https://web.archive.org/web/www.patrickruffini.com/p/the-election-indicator-that-beats",
        "dom_path": "output.html",
        "favicon_path": "favicon.ico",
        "git_path": "git/",
        "google_favicon_path": "https://www.google.com/s2/favicons?domain=www.patrickruffini.com",
        "headers_path": "headers.json",
        "htmltotext_path": "htmltotext.txt",
        "index_path": "index.html",
        "media_path": "media/",
        "mercury_path": "mercury/content.html",
        "pdf_path": "output.pdf",
        "readability_path": "readability/content.html",
        "screenshot_path": "screenshot.png",
        "singlefile_path": "singlefile.html",
        "warc_path": "warc/",
        "wget_path": "www.patrickruffini.com/p/the-election-indicator-that-beats.html"
    },
    "domain": "www.patrickruffini.com",
    "extension": "",
    "hash": "19SGD8V0YAYEZHVG14FB",
    "history": {
        "archive_org": [],
        "dom": [],
        "favicon": [
            {
                "cmd": [
                    "curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--max-time",
                    "120",
                    "--output",
                    "favicon.ico",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 ArchiveBox/0.7.4 (+https://github.com/ArchiveBox/ArchiveBox/) curl/curl 8.14.1 (x86_64-pc-linux-gnu)",
                    "https://www.google.com/s2/favicons?domain=www.patrickruffini.com"
                ],
                "cmd_version": "curl 8.14.1 (x86_64-pc-linux-gnu)",
                "end_ts": "2026-10-20T01:22:39.437594+00:00",
                "index_texts": null,
                "output": "favicon.ico",
                "pwd": "/data/archive/1792450808.712089",
                "schema": "ArchiveResult",
                "start_ts": "2026-10-20T01:22:38.785706+00:00",
                "status": "succeeded"
            }
        ],
        "git": [],
        "headers": [
            {
                "cmd": [
                    "curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--head",
                    "--max-time",
                    "120",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 ArchiveBox/0.7.4 (+https://github.com/ArchiveBox/ArchiveBox/) curl/curl 8.14.1 (x86_64-pc-linux-gnu)",
                    "https://www.patrickruffini.com/p/the-election-indicator-that-beats"
                ],
                "cmd_version": "curl 8.14.1 (x86_64-pc-linux-gnu)",
                "end_ts": "2026-10-20T01:22:39.762496+00:00",
                "index_texts": null,
                "output": "headers.json",
                "pwd": "/data/archive/1792450808.712089",
                "schema": "ArchiveResult",
                "start_ts": "2026-10-20T01:22:39.448054+00:00",
                "status": "succeeded"
            }
        ],
        "htmltotext": [],
        "media": [],
        "mercury": [
            {
                "cmd": [
                    "/app/node_modules/@postlight/parser/cli.js",
                    "https://www.patrickruffini.com/p/the-election-indicator-that-beats"
                ],
                "cmd_version": "1.0.0",
                "end_ts": "2026-10-20T01:22:52.223713+00:00",
                "index_texts": null,
                "output": "mercury",
                "pwd": "/data/archive/1792450808.712089",
                "schema": "ArchiveResult",
                "start_ts": "2026-10-20T01:22:48.733476+00:00",
                "status": "succeeded"
            }
        ],
        "pdf": [],
        "readability": [
            {
                "cmd": [
                    "/app/node_modules/readability-extractor/readability-extractor",
                    "/tmp/tmpm_3nuzz9",
                    "https://www.patrickruffini.com/p/the-election-indicator-that-beats"
                ],
                "cmd_version": "0.0.11",
                "end_ts": "2026-10-20T01:22:48.716839+00:00",
                "index_texts": [
                    "No. 420 | October 16, 2026One of the most predictive election indicators is also one of the simplest: which party can best handle the problem Americans think is most important? Gallup now gives Democrats an 11-point lead. Republicans led on this measure in 2024 and in 2022.This measure happens to have an almost perfect track record of predicting election outcomes \u2014 more than pre-election horserace polls. It predicted 2016 and 2024. The parties tied in 1980 and the question wasn\u2019t asked in 2000. The last outright miss was 1948.The midterm record is also strong: in Gallup\u2019s historical series the party ahead gained House seats in all eight midterms from 1994 through 2022. That tells us the direction, not the size of a wave or who necessarily controls Congress, but it underscores why Democrats are favored this year.Other indicators in Gallup\u2019s pre-election release point the same way. Democrats lead 51-37 on keeping the country prosperous\u2014a usual Republican advantage. 59% describe Republicans as too extreme, compared with 43% for Democrats. In 2022, the order was flipped.Senate polls ahead of the 2018 and 2022 midterms were quite good, missing only by 0.4 points in 2018 and 1.3 points in 2022. But remember 2016, when the national polls were basically right and the polls missed in the key electoral college battlegrounds that decided the election.We\u2019re nearing the finish line and Democrats have continued to improve in our index of district-level polling, defying the midterm pattern of Republicans coming home in the last few weeks. One possible reason why is that, in the summer, Republicans were already polling at what a 2018-level bad midterm would indicate and the stability since is an indicator of where we\u2019re headed.But there may still be polling error in individual races. And that error is correlated with state partisanship. Even when the national polls are right, red state polls tend to be too blue and blue state polls too red. Our new tool looks at the final polling error in 2018 and 2022\u2019s Senate and Governor\u2019s races.A few weeks ago, I argued that spending is the best way to separate polling signal from noise. Campaigns can release whatever internal polls they want. Where the big outside groups actually spend tells us more about what the smart money believes.The latest examples are new money drops from the Democrats\u2019 House Majority PAC and the GOP\u2019s Congressional Leadership Fund, all dutifully compiled by Rob Pyers. The main House Democratic SuperPAC isn\u2019t really expanding the map: the districts they\u2019re spending in now average Trump +7.3 while their earlier spending averaged Trump +6.0. Few districts above Trump +11 are being targeted. And many of those on the top end of the range are seats Democrats are defending. Both sides also agree on what the battleground is and it doesn\u2019t include seats that would indicate a tsunami.A poll released today may be measuring last week\u2019s electorate. The new field-date view in the Polling Index makes that lag clear: the 15 polls released in the last day as of Friday morning had an average estimated field date of October 10.A lot of early-vote analysis is incomplete or in bad faith. But among those doing it right are Mark Harris and the team at Coldspark. I\u2019ve said that the best comparison to 2026 is 2024 because of changes in how parties vote early since 2022. And the early electorate today is 6 points more Democratic in registration than 2024.Not everyone is as careful as Harris and his team in making these comparison. Sean Trende, who has a new Substack you should subscribe to, warns us of the risks:This gets even more complicated because parties change strategies, and turnout patterns change. Early voting was a Republican-dominated affair in the 2000s, until Barack Obama\u2019s campaign figured out it could use early voting to lock in voters, freeing up resources to target more difficult-to-reach voters on Election Day. This shift was compounded in Donald Trump\u2019s first two campaigns when he (much to his advisors\u2019 chagrin) urged his voters not to use early voting. In 2024, his campaign concluded that one of the party\u2019s failures in 2022 was the lack of emphasis on early voting, and so the party changed its strategy. Early voting surged.The upshot is that we lack a straightforward, stable baseline for cross-race comparisons. We see this in some online debates. You can compare early vote return rates to the rates at a similar point in 2022, but you\u2019ll miss the shift in Republican strategy that occurred in 2024 (assuming that strategy carries over to this year). You can use 2024 as a baseline, but that requires comparing presidential years to midterm years, and 2024 could have been a one-off aberration in GOP voting patterns, with mean reversion this year.I joined Amy Walter and Shumita Basu on Apple News In Conversation to discuss polling, redistricting, and trust in elections.And on You Might Be Right, Ruy Teixeira and I joined former Tennessee governors Phil Bredesen and Bill Haslam to talk about populism, affordability, AI, and immigration.And I joined Ruy again on the first Substack Live for The Long View, the successor to The Liberal Patriot he launched with Michael Baharaeen. Subscribe to this one too, folks!Discussion about this postReady for more?"
                ],
                "output": "readability",
                "pwd": "/data/archive/1792450808.712089",
                "schema": "ArchiveResult",
                "start_ts": "2026-10-20T01:22:46.834478+00:00",
                "status": "succeeded"
            }
        ],
        "screenshot": [],
        "singlefile": [],
        "title": [
            {
                "cmd": [
                    "curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--max-time",
                    "120",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 ArchiveBox/0.7.4 (+https://github.com/ArchiveBox/ArchiveBox/) curl/curl 8.14.1 (x86_64-pc-linux-gnu)",
                    "https://www.patrickruffini.com/p/the-election-indicator-that-beats"
                ],
                "cmd_version": "curl 8.14.1 (x86_64-pc-linux-gnu)",
                "end_ts": "2026-10-20T01:22:46.824928+00:00",
                "index_texts": null,
                "output": "The election indicator that beats them all",
                "pwd": "/data/archive/1792450808.712089",
                "schema": "ArchiveResult",
                "start_ts": "2026-10-20T01:22:46.776807+00:00",
                "status": "succeeded"
            }
        ],
        "wget": [
            {
                "cmd": [
                    "wget",
                    "--no-verbose",
                    "--adjust-extension",
                    "--convert-links",
                    "--force-directories",
                    "--span-hosts",
                    "--no-parent",
                    "-e",
                    "robots=off",
                    "--reject=js,mjs,woff,woff2,ttf,otf,eot,mp4,m4v,mov,webm,ogv,mkv,avi,flv",
                    "--timeout=120",
                    "--restrict-file-names=windows",
                    "--page-requisites",
                    "--user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 ArchiveBox/0.7.4 (+https://github.com/ArchiveBox/ArchiveBox/) wget/GNU Wget 1.21.3",
                    "--compression=auto",
                    "--timestamping",
                    "https://www.patrickruffini.com/p/the-election-indicator-that-beats"
                ],
                "cmd_version": "GNU Wget 1.21.3",
                "end_ts": "2026-10-20T01:22:46.765253+00:00",
                "index_texts": null,
                "output": "www.patrickruffini.com/p/the-election-indicator-that-beats.html",
                "pwd": "/data/archive/1792450808.712089",
                "schema": "ArchiveResult",
                "start_ts": "2026-10-20T01:22:39.773018+00:00",
                "status": "succeeded"
            }
        ]
    },
    "icons": null,
    "is_archived": true,
    "is_static": false,
    "latest": {
        "archive_org": null,
        "dom": null,
        "favicon": "favicon.ico",
        "git": null,
        "media": null,
        "pdf": null,
        "screenshot": null,
        "singlefile": null,
        "title": "The election indicator that beats them all",
        "warc": null,
        "wget": "www.patrickruffini.com/p/the-election-indicator-that-beats.html"
    },
    "link_dir": "/data/archive/1792450808.712089",
    "newest_archive_date": "2026-10-20T01:22:48.733476+00:00",
    "num_failures": 0,
    "num_outputs": 6,
    "oldest_archive_date": "2026-10-20T01:22:38.785706+00:00",
    "path": "/p/the-election-indicator-that-beats",
    "schema": "Link",
    "scheme": "https",
    "snapshot_id": "4e52fddd-b3d2-4abb-95de-b4714ac9bd42",
    "sources": [
        "/data/sources/1792450808-import.txt"
    ],
    "tags": ",pool,war-wiki,red,drudge",
    "tags_str": "pool,war-wiki,red,drudge",
    "timestamp": "1792450808.712089",
    "title": "The election indicator that beats them all",
    "updated": "2026-10-20T01:22:38.785498+00:00",
    "updated_date": "2026-10-20 01:22",
    "url": "https://www.patrickruffini.com/p/the-election-indicator-that-beats"
}