Methodology · build of October 1, 2026

No number without a source.

WageTable publishes no number it cannot trace to a primary source. This is how a figure travels from a statute to this page, and what you can check on every row yourself.

4,733rate rows, each signed and dated
1,898primary sources registered
1,809sources with a stored snapshot
279labor-law rules under the same rules

Pipeline · 6 steps

From source to row

Code does what must be deterministic, models do what needs reading, and a person signs.

  1. Sources

    Code

    Statutes, ordinances, agency pages and official notices are registered per jurisdiction and snapshotted with a hash and retrieval date. Aggregators and news are used only to cross-check.

  2. Candidates

    Code

    Every dollar amount, date and employer-size phrase in a snapshot is pre-parsed with its position in the text.

  3. Rows

    Extractor

    An extraction pass reads the source and lists which rate rows it defines: worker type, industry, size band, condition and effective date, each with a verbatim quote.

  4. Selection and verification

    Jev

    The Jev classifier (TypeSafe) selects each field from the pre-parsed candidates, so it can never invent a value, then judges whether the quote supports the assembled row and whether the figure is enacted law.

  5. Sign-off

    Reviewer

    A reviewer accepts or rejects each row; the decision, signer and date are recorded.

  6. Build

    Code

    Integrity checks reject overlapping effective ranges, uncited rows, proposals, and child rates below their parent without a stated condition.

How a WageTable row is madePipeline in 6 steps: 1, Sources (code): 1,809 snapshotted; 2, Candidates (code): amounts, dates, sizes; 3, Rows (extractor): verbatim quotes; 4, Select, verify (Jev): closed choices only; 5, Sign-off (reviewer): 4,733 rows signed; 6, Build (code): integrity checks. Sources are re-fetched weekly; changes re-enter at the first step.01SourcesCODE1,809 snapshotted02CandidatesCODEamounts, dates, sizes03RowsEXTRACTORverbatim quotes04Select, verifyJEVclosed choices only05Sign-offREVIEWER4,733 rows signed06BuildCODEintegrity checksSOURCE TEXT INROWS OUTWeekly: re-fetch, diff, triage; changes re-enter as new snapshotsHow a WageTable row is madePipeline in 6 steps: 1, Sources (code): 1,809 snapshotted; 2, Candidates (code): amounts, dates, sizes; 3, Rows (extractor): verbatim quotes; 4, Select, verify (Jev): closed choices only; 5, Sign-off (reviewer): 4,733 rows signed; 6, Build (code): integrity checks. Sources are re-fetched weekly; changes re-enter at the first step.01SourcesCODE1,809 snapshotted02CandidatesCODEamounts, dates, sizes03RowsEXTRACTORverbatim quotes04Select, verifyJEVclosed choices only05Sign-offREVIEWER4,733 rows signed06BuildCODEintegrity checksWEEKLY RE-FETCH
Accent marks the step that makes invention impossible: the classifier may only choose among amounts and dates that already appear in the source text, or answer "not stated".

Example

Anatomy of a row

Every figure on the site opens a note like this one: the quote, the source, the citation, the snapshot and the signature.

California · general rate since January 1, 2026

$16.901per hour

Quote
The passage that states the figure, word for word, located in the stored snapshot.
Source
The primary document it was read from: statute, ordinance or agency page.
Snapshot
The day we captured the text the quote comes from.
Signature
Who verified the row and when.

Resolution · 3 levels

Which rate applies

Employers must pay the highest minimum that covers the work location. We check each level in turn.

General minimum wage at each level for work in Los Angeles, today
LevelPer hourScale $0–$20
FederalUnited States$7.25
StateCalifornia$16.90
CityLos Angeles Applies$18.42

The same walk runs for every page and ZIP code. Special rates (tipped, youth, industry, employer size) apply only to the jobs they name, and the highest one that fits the job wins. A ZIP code that straddles a boundary shows every jurisdiction it overlaps rather than guessing.

Build · 10 checks

What stops a build

Errors fail the build, so a broken row never reaches a page. Warnings go to a reviewer.

CheckEffect
Two rows for the same rule overlap in time, or more than one is open-endedFails the build
A rate cites a secondary source, or no source at allFails the build
The quote and the rate point at different sourcesFails the build
A row is a proposal rather than enacted lawFails the build
A projected row rests on anything but an inflation adjustmentFails the build
A local standard rate sits below its parent's without a stated conditionFails the build
A current row's source has no stored snapshotFails the build
A tipped row has no cash wageFlagged
A current row was last verified more than 120 days agoFlagged
A source has no public archive copy (our own snapshot is kept regardless)Flagged

Freshness

Updates and corrections

Sources are re-fetched weekly; changes are diffed and triaged so new rates enter the same pipeline. A figure scheduled for a future date appears on the schedule as soon as it is enacted or certified.