Skip to content

13 days · Nov 3 · Early voting Oct 19–30

Texas · Cannabis Accountability Texas Weed Vote

Not endorsements

How the grades work

Methodology

Grades combine four kinds of public evidence: recorded votes, bill authorship, public statements, and procedural actions. If a grade does not match the published formula, email 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 each scored bill. Each bill carries a weight from 1 to 10: final passage of a total THC ban is a 10, a narrower bill less. Votes for legalization count positive, votes against it negative. An absence adds nothing and still counts in the total, so it pulls a record toward the middle.
Bill authorship 20%
Writing a bill says more about a legislator’s priorities than voting on one someone else wrote. Authoring a restriction is the strongest negative signal available, and authoring legalization the strongest positive.
Public statements 15%
Dated, sourced quotes rated 1 to 5 for how clearly they take a side. “I will vote to legalize” is a 5, “I am open to studying it” is a 1. Quotes from the last two years count in full, older ones for less.
Procedural power 10%
Many marijuana bills are settled in committee and never reach a floor vote, so there is no roll call to score. A chair’s decision to grant a hearing, or not to, is scored instead.

Components with no evidence are dropped, not zeroed. A challenger with no voting record is scored on statements alone. The remaining weights are scaled to total 100%.

Authorship weights

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

Doing the arithmetic

Every component works the same way. Add up its evidence as points, positive for legalization and negative for restriction, divide by the divisor shown below, and keep the result between −1 and +1. Put that on the 0 to 100 scale with (value + 1) ÷ 2 × 100. A zero net total sits at 50, and enough evidence in one direction reaches 0 or 100.

Recorded votes ÷ the total weight of every scored roll call they were recorded on
Bill authorship ÷ 3.0
Each role contributes the weight in the table above, signed by whether the bill restricts or legalizes.
Public statements ÷ 5.0
Each quote contributes its 1-to-5 strength times its recency factor, signed by its direction.
Procedural power ÷ 10.0
Each recorded action contributes its 1-to-10 weight, signed by its direction.

Statement recency

  • Up to 2 years old 1.0×
  • More than 2, up to 4 years old 0.7×
  • More than 4, up to 8 years old 0.5×
  • More than 8 years old 0.3×

Multiply each component by its weight, add them up, and divide by the weights used. The result is the score on a legislator's page, rounded down to a whole number so it stays inside the band its letter names.

What the letters mean

  • Overall record strongly supports legalization, including a bill, statement, or procedural action for it

  • Overall record strongly supports legalization

  • Overall record leans toward legalization

  • Mixed record

  • Overall record leans toward marijuana restrictions

  • Overall record strongly supports marijuana restrictions

  • No scored votes, authored bills, dated statements, or procedural actions

Score cutoffs

Letter Score
A+ 90 and up, plus one affirmative act
A 80 and up, or 90 and up without one
B 65 and up
C 45 and up
D 30 and up
F Below 30

An affirmative act is evidence outside the voting booth that counts for legalization: any author or sponsor role on a scored bill that favors it, a procedural action in its favor including one that blocks a restriction bill, or a dated statement leaning that way at any strength. It does not have to be a call for legalization. A 90-plus record based only on defensive votes is capped at A.

Grades also carry a confidence level, printed next to the letter. Three or more scored votes is high. One or two scored votes, three or more statements, or two or more sponsorships and procedural actions combined is medium. Anything less is low.

Data standards

  1. Public statements need an exact date and source. A quote without both is not entered.
  2. No record means Unrated. A member with no scored votes, authored bills, dated statements, or procedural actions gets no letter.
  3. Every journal name must match one person. Texas journals print "Bell, C." and "A. Hinojosa". An ambiguous name stops that night's update and the previous day's data stays up.
  4. Vote totals must match the official journal. If our count comes to 86 yes votes where the journal says 87, that night's update is stopped too.
  5. Only listed roll calls affect grades. Scored votes are chosen by hand, and every House record vote we did not score is listed on the bills page.

Manual overrides

A grade can be set by hand when the formula gets a person wrong in a way no weighting fixes. Every override carries a written justification and a source, and is 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.

Where the address goes

The site is static files with no application backend. An address you type goes from your browser straight to the U.S. Census Bureau's public geocoder, which turns it into coordinates. Neither is received or stored here. Use my location skips the geocoder: those coordinates come from your browser's own location service and are used in the browser, not received here. Either way, your browser downloads a district index and the relevant district outlines, then matches the point itself. Like any website, those file requests and the Cloudflare analytics script appear in ordinary traffic logs. A ZIP code on its own contacts no third party.

The maps and their accuracy

The enacted plans come from the Texas Legislative Council: PLANH2316 for the House and PLANS2168 for the Senate. Boundary points are rounded to a 10-meter grid to keep the download small, which moves a line about 7 meters at worst. Both sides of a shared border move together, so no gaps open. Against the unrounded maps at about 19,000 points statewide, every House point matched and one Senate point did not. Each build also checks street addresses against the Census Bureau's own district answers.

Why a ZIP code is not enough

54% of Texas ZIP codes cross at least one House district line, and 78701 in downtown Austin spans three. A ZIP returns every district it overlaps, from an approximate table built on each ZIP's center point and land area. A street address gives one answer.

Where the data comes from

Data is refreshed nightly.

Corrections

Email [email protected] with a source. Corrections go in the changelog with the date the error went up and the date it came down.