{
  "candidates": [
    {
      "ballot_status": "certified",
      "party": "Democratic",
      "person": "jeffrey-crossman",
      "running_mate": null
    },
    {
      "ballot_status": "certified",
      "party": "Republican",
      "person": "dave-yost",
      "running_mate": null
    }
  ],
  "cycle": 2022,
  "date": "2022-11-08",
  "district": null,
  "id": "2022-attorney-general",
  "notes": "P3-03. Depth asymmetry: no donor could be sourced for Crossman (the Ohio SOS database and Transparency USA both blocked automated access to his itemized donors during the archive's research), against two sourced donors for Yost; the person page's coverage note and N-10 will disclose this. Candidates with a page are listed alphabetically by surname (N-5); Ohio rotates ballot order by precinct.",
  "office": "Ohio Attorney General",
  "office_slug": "attorney-general",
  "research_ref": [
    "cracked-buckeye-political@227826cce4a0ba161340ffd8153332cbe6cb2d5d:data/candidates-2022/dave-yost.md",
    "cracked-buckeye-political@227826cce4a0ba161340ffd8153332cbe6cb2d5d:data/candidates-2022/jeffrey-crossman.md",
    "cracked-buckeye-political@227826cce4a0ba161340ffd8153332cbe6cb2d5d:data/candidates-2022/README.md"
  ],
  "result": {
    "certified": "2022-12",
    "sources": [
      {
        "accessed": "2026-09-19",
        "publisher": "Wikipedia",
        "title": "2022 Ohio Attorney General election",
        "url": "https://en.wikipedia.org/wiki/2022_Ohio_Attorney_General_election"
      }
    ],
    "totals": [
      {
        "pct": 60.13,
        "person": "dave-yost",
        "votes": 2484753
      },
      {
        "pct": 39.87,
        "person": "jeffrey-crossman",
        "votes": 1647644
      }
    ],
    "turnout": null,
    "winner": "dave-yost"
  },
  "sources": [
    {
      "accessed": "2026-09-19",
      "publisher": "Wikipedia",
      "title": "2022 Ohio Attorney General election",
      "url": "https://en.wikipedia.org/wiki/2022_Ohio_Attorney_General_election"
    },
    {
      "accessed": "2026-09-19",
      "publisher": "Ballotpedia",
      "title": "Ohio Attorney General election, 2022",
      "url": "https://ballotpedia.org/Ohio_Attorney_General_election,_2022"
    }
  ],
  "type": "race",
  "unpaged_candidates": [],
  "updated": "2026-09-19",
  "symmetry": {
    "ratio": 2.0,
    "candidates": [
      {
        "person": "jeffrey-crossman",
        "name": "Jeffrey Crossman",
        "counts": {
          "finance": 1,
          "donors": 0,
          "outside_spending": 0,
          "polling": 2,
          "candidacies": 1,
          "claims": 0,
          "ballot": 0,
          "money": 1,
          "elections": 1
        },
        "whole_counts": {
          "positions": 2,
          "record": 2,
          "net_worth": 0,
          "interests": 1,
          "endorsements_given": 0,
          "endorsements_received": 0,
          "offices": 1,
          "sources": 9,
          "profile": 3,
          "endorsements": 0
        },
        "all_counts": {
          "positions": 2,
          "record": 2,
          "finance": 1,
          "donors": 0,
          "outside_spending": 0,
          "net_worth": 0,
          "interests": 1,
          "polling": 2,
          "candidacies": 1,
          "endorsements_given": 0,
          "endorsements_received": 0,
          "offices": 1,
          "sources": 9,
          "claims": 0,
          "profile": 3,
          "ballot": 0,
          "money": 1,
          "elections": 1,
          "endorsements": 0
        }
      },
      {
        "person": "dave-yost",
        "name": "Dave Yost",
        "counts": {
          "finance": 1,
          "donors": 2,
          "outside_spending": 0,
          "polling": 1,
          "candidacies": 1,
          "claims": 0,
          "ballot": 0,
          "money": 3,
          "elections": 1
        },
        "whole_counts": {
          "positions": 6,
          "record": 9,
          "net_worth": 0,
          "interests": 3,
          "endorsements_given": 0,
          "endorsements_received": 0,
          "offices": 5,
          "sources": 30,
          "profile": 7,
          "endorsements": 0
        },
        "all_counts": {
          "positions": 6,
          "record": 9,
          "finance": 1,
          "donors": 2,
          "outside_spending": 0,
          "net_worth": 0,
          "interests": 3,
          "polling": 1,
          "candidacies": 1,
          "endorsements_given": 0,
          "endorsements_received": 0,
          "offices": 5,
          "sources": 30,
          "claims": 0,
          "profile": 7,
          "ballot": 0,
          "money": 3,
          "elections": 1,
          "endorsements": 0
        }
      }
    ],
    "per_race": {
      "sections": {
        "ballot": {
          "max": 0,
          "min": 0,
          "ratio": null,
          "skewed": false
        },
        "candidacies": {
          "max": 1,
          "min": 1,
          "ratio": 1.0,
          "skewed": false
        },
        "claims": {
          "max": 0,
          "min": 0,
          "ratio": null,
          "skewed": false
        },
        "donors": {
          "max": 2,
          "min": 0,
          "ratio": null,
          "skewed": true
        },
        "elections": {
          "max": 1,
          "min": 1,
          "ratio": 1.0,
          "skewed": false
        },
        "finance": {
          "max": 1,
          "min": 1,
          "ratio": 1.0,
          "skewed": false
        },
        "money": {
          "max": 3,
          "min": 1,
          "ratio": 3.0,
          "skewed": true
        },
        "outside_spending": {
          "max": 0,
          "min": 0,
          "ratio": null,
          "skewed": false
        },
        "polling": {
          "max": 2,
          "min": 1,
          "ratio": 2.0,
          "skewed": false
        }
      },
      "skewed": [
        "donors"
      ],
      "notes": [
        "Donors, in this race: 2 for Dave Yost, 0 for Jeffrey Crossman. The gap is in our research, not in them."
      ]
    },
    "whole_record": {
      "sections": {
        "endorsements": {
          "max": 0,
          "min": 0,
          "ratio": null,
          "skewed": false
        },
        "endorsements_given": {
          "max": 0,
          "min": 0,
          "ratio": null,
          "skewed": false
        },
        "endorsements_received": {
          "max": 0,
          "min": 0,
          "ratio": null,
          "skewed": false
        },
        "interests": {
          "max": 3,
          "min": 1,
          "ratio": 3.0,
          "skewed": true
        },
        "net_worth": {
          "max": 0,
          "min": 0,
          "ratio": null,
          "skewed": false
        },
        "offices": {
          "max": 5,
          "min": 1,
          "ratio": 5.0,
          "skewed": true
        },
        "positions": {
          "max": 6,
          "min": 2,
          "ratio": 3.0,
          "skewed": true
        },
        "profile": {
          "max": 7,
          "min": 3,
          "ratio": 2.3333333333333335,
          "skewed": true
        },
        "record": {
          "max": 9,
          "min": 2,
          "ratio": 4.5,
          "skewed": true
        },
        "sources": {
          "max": 30,
          "min": 9,
          "ratio": 3.3333333333333335,
          "skewed": true
        }
      },
      "skewed": [
        "positions",
        "record",
        "sources"
      ],
      "notes": [
        "Where they stand, across every cycle: 6 for Dave Yost, 2 for Jeffrey Crossman. The gap is in our research, not in them.",
        "Record in office, across every cycle: 9 for Dave Yost, 2 for Jeffrey Crossman. The gap is in our research, not in them.",
        "Sources, across every cycle: 30 for Dave Yost, 9 for Jeffrey Crossman. The gap is in our research, not in them."
      ]
    },
    "sections": {
      "endorsements": {
        "max": 0,
        "min": 0,
        "ratio": null,
        "skewed": false
      },
      "endorsements_given": {
        "max": 0,
        "min": 0,
        "ratio": null,
        "skewed": false
      },
      "endorsements_received": {
        "max": 0,
        "min": 0,
        "ratio": null,
        "skewed": false
      },
      "interests": {
        "max": 3,
        "min": 1,
        "ratio": 3.0,
        "skewed": true
      },
      "net_worth": {
        "max": 0,
        "min": 0,
        "ratio": null,
        "skewed": false
      },
      "offices": {
        "max": 5,
        "min": 1,
        "ratio": 5.0,
        "skewed": true
      },
      "positions": {
        "max": 6,
        "min": 2,
        "ratio": 3.0,
        "skewed": true
      },
      "profile": {
        "max": 7,
        "min": 3,
        "ratio": 2.3333333333333335,
        "skewed": true
      },
      "record": {
        "max": 9,
        "min": 2,
        "ratio": 4.5,
        "skewed": true
      },
      "sources": {
        "max": 30,
        "min": 9,
        "ratio": 3.3333333333333335,
        "skewed": true
      },
      "ballot": {
        "max": 0,
        "min": 0,
        "ratio": null,
        "skewed": false
      },
      "candidacies": {
        "max": 1,
        "min": 1,
        "ratio": 1.0,
        "skewed": false
      },
      "claims": {
        "max": 0,
        "min": 0,
        "ratio": null,
        "skewed": false
      },
      "donors": {
        "max": 2,
        "min": 0,
        "ratio": null,
        "skewed": true
      },
      "elections": {
        "max": 1,
        "min": 1,
        "ratio": 1.0,
        "skewed": false
      },
      "finance": {
        "max": 1,
        "min": 1,
        "ratio": 1.0,
        "skewed": false
      },
      "money": {
        "max": 3,
        "min": 1,
        "ratio": 3.0,
        "skewed": true
      },
      "outside_spending": {
        "max": 0,
        "min": 0,
        "ratio": null,
        "skewed": false
      },
      "polling": {
        "max": 2,
        "min": 1,
        "ratio": 2.0,
        "skewed": false
      }
    },
    "skewed": [
      "donors",
      "positions",
      "record",
      "sources"
    ],
    "race": "2022-attorney-general",
    "notes": [
      "Donors, in this race: 2 for Dave Yost, 0 for Jeffrey Crossman. The gap is in our research, not in them.",
      "Where they stand, across every cycle: 6 for Dave Yost, 2 for Jeffrey Crossman. The gap is in our research, not in them.",
      "Record in office, across every cycle: 9 for Dave Yost, 2 for Jeffrey Crossman. The gap is in our research, not in them.",
      "Sources, across every cycle: 30 for Dave Yost, 9 for Jeffrey Crossman. The gap is in our research, not in them."
    ]
  },
  "candidate_links": [
    {
      "person": "jeffrey-crossman",
      "name": null,
      "url": "https://crackedbuckeye.com/people/jeffrey-crossman/",
      "api": "https://crackedbuckeye.com/api/politics/people/jeffrey-crossman.json"
    },
    {
      "person": "dave-yost",
      "name": null,
      "url": "https://crackedbuckeye.com/people/dave-yost/",
      "api": "https://crackedbuckeye.com/api/politics/people/dave-yost.json"
    }
  ],
  "claims": [],
  "_meta": {
    "generated": "2026-09-19",
    "license": "CC BY 4.0 for the compilation; each source keeps its own terms",
    "cite": "Cracked Buckeye (Open Shower Co), \"Ohio Attorney General, 2022\", https://crackedbuckeye.com/election/2022/attorney-general/, built 2026-09-19, accessed [date].",
    "schema": "https://crackedbuckeye.com/api/politics/schema.json",
    "url": "https://crackedbuckeye.com/election/2022/attorney-general/",
    "api": "https://crackedbuckeye.com/api/politics/races/2022-attorney-general.json"
  },
  "cite": "Cracked Buckeye (Open Shower Co), \"Ohio Attorney General, 2022\", https://crackedbuckeye.com/election/2022/attorney-general/, built 2026-09-19, accessed [date].",
  "url": "https://crackedbuckeye.com/election/2022/attorney-general/",
  "api": "https://crackedbuckeye.com/api/politics/races/2022-attorney-general.json",
  "license": "CC BY 4.0 for the compilation; each source keeps its own terms",
  "generated": "2026-09-19",
  "schema": "https://crackedbuckeye.com/api/politics/schema.json"
}
