The corpus › Draft Legislation
H.B. 643 (136th G.A., as introduced)
A pending bill capping EdChoice expansion eligibility at $500,000 of federal adjusted gross income. One section, two sponsors, no committee report — and no provision any calculator here can price, because the scholarship channel is not modeled at all.
draft-legislation/hb-643-136-introduced · 1 node point here
This draft, in Change the formula Contents
0 of this draft's 1 provisions bind a lever in the FY2027 model, so they can be run across all 609 districts. The other 1 set no lever: whatever the runner shows is the cost of 0 clauses and not of the bill.
Introduced in the 136th General Assembly by Representatives Pizzulli and Somani. It amends a single section, R.C. 3310.032, to make a student ineligible for an educational choice expansion scholarship if the family’s federal adjusted gross income in the preceding tax year was at or above $500,000, beginning with the 2026-2027 school year and indexed annually to the consumer price index. verified
It is the first income ceiling proposed since H.B. 33 made the expansion scholarship universal, and it is small: an eleven-kilobyte bill against an operating budget that amends more than two thousand sections. That contrast is why it is here.
What it would change, and through which mechanism Contents
The expansion scholarship is an award paid to a family, not a deduction against a resident district’s foundation payment — the Fair School Funding Plan changed that mechanism, after which community and STEM students are funded directly rather than deducted. verified So a narrowing of eligibility reduces the number of awards paid and the appropriation they are paid from, and reaches a traditional district’s own funding only through whatever enrollment consequence follows a family’s choice, which no source here measures. inference
Its status is a fact about the bill and not about its merits Contents
As introduced and nothing further: the version index carries one entry. verified A bill that has been introduced and not reported out of committee is the ordinary state of most bills, and it is why this class exists separately from legislation — there is no signing date, no effective date and no veto list, and there may never be any.
The channel it acts on is not the channel the formula runs through Contents
Ohio funds traditional districts through the foundation formula and funds expansion scholarships from a separate appropriation, and since the Fair School Funding Plan the two no longer meet in a deduction against the resident district. A district’s foundation payment can therefore rise while its net position worsens, and a change to who may receive a scholarship moves the second of those and not the first. verified
What this repository computed Contents
Not what Ohio publishes. Figures derived here from committed fixtures, each one citing the test that reproduces it.
Nothing. One provision, none priced, and the run says so rather than saying zero.
$ edfund-project --draft hb-643-136-introduced
DRAFT — hb-643-136-introduced
provisions 0 of 1 priced, 1 not
POLICY EFFECT — none computed
No provision of this draft binds a lever, so there is no figure to give.
That is not a cost of zero. It is the absence of a cost.
verified crates/project/tests/a_draft_cannot_hide_what_it_did_not_price.rs
This bill found a defect in the machinery built to hold it Contents
A draft whose every provision falls outside the model produces a combined policy identical to
current law, so the arithmetic gives exactly 0.00. The first version of Priced::cost
returned a bare figure and would have published that zero — and $0.0M in a cost column reads
as this bill is free, which is the opposite of this bill was not priced.
cost() and residual() return Option for that reason, the CLI prints the absence rather
than the number, and the feed writes null rather than 0. The shape is not exotic: it is the
ordinary one for a bill about vouchers, transportation or facilities, which is most of what
touches school funding outside a budget act. verified
What the retrieval established, beyond this bill Contents
The as-introduced version code is always 00_IN, because introduction is always a bill’s
first version. That makes it simpler than the enrolled case, where the code is positional and
differs per bill — 06_EN, 05_EN, 08_EN across the three acts
Ohio session laws — the appropriation acts themselves carries — and a wrong guess returns a
nine-byte 404 that reads exactly like “not served”. verified
And the listing endpoint cannot be used to tell a pending bill from an enacted one. It
reports a bill’s first version rather than its current one, so H.B. 186 of this same General
Assembly appears there as As Introduced and is in fact enrolled with an effective date of
20 March 2026 — signed 19 December 2025, re-checked 9 September 2026. Only the per-bill version
index distinguishes them, and reading status off the listing would have recorded several enacted
acts as proposals. verified
The version index carries more than versions, which this node used to deny Contents
Two of this node’s open questions were open because the index was read as a list of documents.
It is a record, and it advertises its own continuations: meetings/ and amendments/, plus the
sponsor roster with an active flag, the subject taxonomy, and an official
local_impact_statement. Both continuations answer for this bill, and the answer is [].
An empty array is only evidence if the endpoint fills. It does: H.B. 96 returns 99 meetings and H.B. 186 returns 14, against H.B. 643’s zero. That control is what turns “no committee history was retrieved” into “no committee history exists”, and without it the two are the same observation. verified
A pinned digest moved while the document did not Contents
00_IN is the as-introduced version and cannot be amended, which is why this source was pinned
at all. Re-fetched three weeks later it hashes differently and is 11 bytes longer, and
edfund-connect verify reports “The publication was revised — rebuild the fixtures and read
the diff before committing it.”
It was not revised. The department’s exporter went from LibreOffice 24.2.7.2 to 25.8.6.2,
which reorders CSS properties inside style attributes and fills in an empty <title>.
Stripped of markup the two documents are byte-identical across 3,798 characters. verified
Two things follow. A digest over office-suite HTML pins the renderer as much as the document,
so drift on this host is not evidence that a bill changed — the diff has to be read, which is
what the tool’s own message asks for and what this node records having done. And nothing here
would have noticed on its own: fetch is the only command that touches the network and
verify compares the cache against the manifest, so an upstream change is invisible until
somebody re-fetches. verified
Properties Contents
| Provenance | introduced |
|---|---|
| Designation | H.B. 643 |
| General Assembly | 136th General Assembly |
| Sponsors | Representatives Justin Pizzulli (R, district 90) and Anita Somani (D, district 8), both recorded active, with no cosponsors. verified It is a two-member bipartisan pair, which is worth stating for a bill that would put a ceiling back on a universal eligibility the majority enacted. Neither has withdrawn and the committee referral has produced nothing, which is readable after all — see status below. The claim that the version index carries no procedural history was wrong: the index carries the sponsor roster with an active flag, and it advertises two further endpoints that carry the history itself. |
| Status | As introduced, and no further. The version index holds one entry and no committee report, floor vote, or effective date, and governor_signed_date, concurrence_date and effective_date are all null. verifiedThe procedural history is readable, and it is empty. The index advertises .../legislation/hb643/meetings/ and .../legislation/hb643/amendments/; both return 200 with []. That is a finding rather than a failure, because the same endpoints populate: H.B. 96 of this General Assembly returns 99 meetings and H.B. 186 returns 14. So the bill has been referred and never heard, rather than the endpoint being unimplemented. Retrieved 9 September 2026. verifiedWhat is still not readable is whether it is dead. A bill that is never reported out simply stops, and the General Assembly publishes no marker for that — zero meetings is the same record for a bill that will be heard next month and one that never will. That distinction is not in the data and no amount of endpoint enumeration produces it. open |
| Text read | hb643_00_IN, first retrieved 20 August 2026 from search-prod.lis.state.oh.us/api/v2/general_assembly_136/legislation/hb643/00_IN/html/ and re-retrieved 9 September 2026. Pinned at SHA-256 12d3a53247dea420f8210c2cc5daa9cc891500804c51b9c4494993b4d504bca8, 11,828 bytes. verified crates/connect/source-digests.txtThe digest is load-bearing rather than ceremonial. 00_IN is stable, but a bill's current text moves under its own URL as it is amended, so a claim about "H.B. 643" that does not name a version names a moving target. See Ohio bills before enactment — the text as introduced.And the digest moved without the bill moving. The first pin was ea8896c5…, 11,817 bytes. The document now served is 11 bytes longer and hashes differently, and the whole of the difference is that the department's exporter went from LibreOffice 24.2.7.2 to 25.8.6.2 — CSS properties reordered inside style attributes, an empty <title> filled in. Stripped of markup, the two are byte-identical across 3,798 characters. The version is stable as a bill; the bytes are not. verified |
| Question | What does a real pending bill about school funding look like when it reaches a model built around the foundation formula, and how much of one can that model actually price? |
| Provisions | One provision. 1. EdChoice expansion eligibility capped at $500,000 federal AGI. Amends R.C. 3310.032. Binds no parameter and sets no lever. Not runnable. verified The bill's own long title enumerates exactly one section, so this is the whole of it — unlike a budget act, where the funding provisions are a few dozen sections out of several thousand pages and enumerating them is itself the work. |
| Not priced | One of one. The whole bill. EdChoice expansion eligibility (provision 1, R.C. 3310.032). Outside the model rather than unlevered, and further outside than most: the scholarship channel is not partially represented here, it is absent. The deduction calculator was declared for this channel and never built, because the per-agency participation series it would read does not exist — dew-payment-reports sits behind the department's authenticated reports portal. openSo there is no figure, and the absence is the finding rather than a gap in this node. A bill can be current, real, squarely about school funding, and completely beyond what this repository can compute. |
Links Contents
| Instance of | Draft Legislation |
|---|---|
| Would narrow | EdChoice Expansion Scholarship |
| Retreats from | Am. Sub. H.B. 33 (2023) — FY2024-25 Budget |
| Measured against | Fair School Funding Plan |
| Sourced from | Ohio bills before enactment — the text as introduced |