Skip to content
59 days until the Tuesday, November 3, 2026 election Register by Monday, October 5, 2026
Texas · Cannabis Accountability Texas Weed Vote

Grades built from recorded votes.
Not endorsements.

How the grades work

Methodology

Every grade on this site is arithmetic on public records. If you cannot reproduce a grade by hand from the evidence shown on that person's page, that is a bug. Tell us.

The formula

Each legislator gets a score from 0 to 100, built from four weighted components:

Recorded votes 55%
How a member voted on the bills listed on the bills page. Each bill carries a weight from 1 to 10: final passage of a total THC ban is a 10, a narrower bill counts less. A vote for legalization scores positive, a vote against it negative. Missing a vote never counts against a member the way a vote for prohibition does — but it cannot improve their score either, so this component is measured against every scored roll call they were recorded on, not only the ones they cast. A member who was there for one vote and absent for another gets credit for half a record, because that is what it is.
Bill authorship 20%
Writing a bill says more about a legislator’s priorities than voting on one someone else wrote. Authoring prohibition is the strongest negative signal available, and authoring reform the strongest positive.
Public statements 15%
Quotes with a date and a source URL, rated 1 to 5 for how unambiguous they are. “I will vote to legalize” is a 5; “I am open to studying it” is a 1, and scores like a 1 — a single soft quote moves a grade a little, not all the way. Recent statements count for more: within two years they count fully, then taper. Texas opinion on this has moved fast enough that treating a 2015 quote as current would mislead.
Procedural power 10%
Texas kills cannabis bills procedurally far more often than it votes them down. A committee chair who never grants a hearing leaves no roll call at all. Score only recorded votes and that chair comes out neutral, which is backwards.

Components with no evidence are dropped, not zeroed. A challenger with no voting record is graded on their statements alone. The remaining weights are renormalized to sum to 100%.

Authorship weights

  • author 1.0
  • joint author 0.9
  • sponsor 0.8
  • coauthor 0.6
  • cosponsor 0.5

What the letters mean

  • A perfect voting record, plus work for legalization: authoring reform, or saying so on the record.

  • Voted against prohibition consistently. A clean defensive record.

  • Leans toward reform with a mixed record.

  • Mixed. Good votes and bad ones.

  • Mostly voted to restrict cannabis.

  • Voted to prohibit at every scored opportunity.

  • No votes, no authored bills, no dated statements. We do not guess.

Grades also carry a confidence level: high, medium, or low, based on how much sourced evidence there is. A member with three scored votes is high confidence; a challenger with one quote is low. The page says which, next to the grade.

Rules we hold ourselves to

  1. Every claim carries a citation. A statement without a source URL and an exact date cannot enter the data set. The build rejects it outright.
  2. "We don't know" is a real answer. Where there is no record, we publish Unrated. Assigning a middling grade to look complete would be an invention.
  3. A name must resolve to exactly one person. Texas journals print "Bell, C." and "A. Hinojosa". If a name is ambiguous the scraper stops and the site keeps yesterday's data.
  4. Resolved votes must reconcile with official totals. If we count 86 yes votes where the journal says 87, the build fails.
  5. Only listed roll calls count. Scored votes are enumerated by hand, so a procedural motion cannot quietly become part of someone's grade. Every unscored roll call is listed on the bills page.

Manual overrides

Occasionally a formula is wrong about a person in a way no weighting can fix. We can override a grade by hand, but every override must carry a written justification and a source, and all of them are listed here.

No grades are currently overridden.

How the district lookup works

Find your ballot matches an address to a Texas House and Senate district. This is a site about marijuana policy, so here is exactly where that address goes.

Nothing is sent to this site

There is no server here to send it to. The whole site is static files, the district outlines are downloaded to your browser, and the geometry runs there. If you use the Use my location button, your coordinates never leave your device at all. If you type a street address, it goes from your browser directly to the U.S. Census Bureau's free public geocoder, which converts it to a latitude and longitude; that federal service sees the address, and we never do. Entering only a ZIP code involves no third party whatsoever.

The maps are the enacted ones

Boundaries come from the Texas Legislative Council's own published plans: PLANH2316 for the House and PLANS2168 for the Senate. Not a redrawn copy. The build checks the state's catalogue on every run and refuses to produce a site if a newer legislative plan is marked enacted, or if a pinned plan's projection or label changes. Texas redrew its congressional maps in 2025, between censuses, so this is a real risk, not a theoretical one.

How accurate the maps are

We round every boundary point to a 10-meter grid so your browser downloads two districts instead of all of Texas. Rounding both sides of a shared border the same way means no gaps open up between districts. Worst case, a boundary sits about 7 meters off, closer than any free geocoder can place you anyway. Tested against the unrounded maps on 19,000 points statewide: every House district matched, and one Senate point out of 9,383 did not.

Checked against the Census Bureau

Every build tests real addresses from Alpine to Brownsville against the districts the Census Bureau reports for them, and fails if any one disagrees. The list includes the hard cases: Bellaire and the other cities surrounded by Houston that use Houston mailing addresses, plus unincorporated Harris County. Those residents cannot vote on the Houston measure.

Why a ZIP code is not enough

54% of Texas ZIP codes cross at least one House district line. 78701 in downtown Austin spans three. Enter a ZIP here and you get every district it overlaps, listed. That overlap table is approximate: it comes from each ZIP's center point and land area. Type a street address if you want one answer.

Where the data comes from

Our scrapers run nightly, wait between requests, identify themselves, and cache hard. The Texas Legislative Council asks data miners not to hammer its servers.

Corrections

If you find an error, email [email protected] with a source. We will fix it and record the change in the changelog, where it stays. Corrections carry the date we published the error as well as the date we fixed it. Subscribe as an RSS feed to hear when a grade moves.

The share cards

Every politician, race and ballot measure page has an image built for posting. It is generated from the same numbers the page shows, so a card cannot claim more than the record does. A candidate we have not assessed gets the same hollow stamp on the card as on the page.

Not affiliated with NORML, any campaign, party, or cannabis business.