Skip to main content
Plumb/Square
§ TRAVELERMethodology

How We
Built This.

Every number on the Traveler page comes from one of two places: a local's own public dispatch page, or static market context with a named source. We don't curate per-diem rates. We don't hand-rank “hot markets.” If we don't have data, the cell reads “—”.

§ 01

Where data comes from

The Traveler page pulls from two source layers:

  • Each local's own public dispatch page.We read the URL the local publishes themselves and extract open call counts, book depth, contractor listings, and per-diem rates when they're posted inline.
  • IBEW International's local directory. We use ibew.org/Tools/Find-A-Local as the canonical list of which locals exist. We do not derive coverage from any third-party aggregator.

Cost-of-living indices come from BLS Metro CPI series. State income tax rates come from each state's revenue department. Static market notes (megaprojects, fab announcements, data center buildouts) come from industry press releases and trade publications.

§ 02

How the data refreshes

Each local's dispatch page is checked on a regular cadence. We read what the local publishes — open calls, book depth, scale, benefits, per-call contractor data — and present it on the table without rewriting or re-interpreting it.

Dispatch pages come in many different formats, and locals occasionally change them. On any given day, most seed locals return usable data; the rest are unreachable or have changed their layout. We don't fill those gaps from somewhere else.

If a row can't be refreshed, it shows the last successful read with anerr indicator. We never substitute data from another source.

§ 03

Per-diem (the honest part)

Per diem is contractor- and project-specific, not a local-wide constant. A big national contractor on a fab job pays a different per-diem than a local contractor on a smaller commercial job at the same hall. Pretending each local has a single “typical per diem” is the kind of simplification we try not to make.

So here's what we do:

  • When a local posts per-diem rates inline with their contractor calls, we extract those rates and show them as per-call badges (e.g., $125/day per diem next to a specific call).
  • When a local posts a per-diem rate anywhere on their dispatch page (sometimes in a “current calls” banner, sometimes in a sidebar), we extract it as the page-level per-diem and show it with an asterisk.
  • When a local doesn't post per-diem, we show nothing. We do not infer, we do not look it up elsewhere, we do not claim a default.
  • The per-diem calculator takes per-diem as a user input. You enter the rate from the specific call you're evaluating. We model the take-home math from there.
§ 04

Effective hourly + cost of living

The Eff/hr column on the main table is:

JW scale × (100 ÷ CoL index) × (1 − state tax rate)

It does NOT include per-diem, because per-diem is contractor-specific and non-taxable cash that shouldn't be averaged with hourly wages. To model your actual take-home including per-diem from a specific call, use the calculator.

CoL indices use 100 as the national average. Source: BLS Metro CPI series for the relevant MSA. Housing benchmarks are typical extended-stay or 1BR near active job sites, not downtown luxury.

§ 05

What's NOT here

  • No hand-curated “hot markets” ranking.The market cards at the top of /traveler show live open-call counts plus static project context (announced megaprojects, fab buildouts, etc.). We don't rank markets by any community signal we can't source.
  • No “local is calling for travelers” claimsunless that language appears on the local's own dispatch page.
  • No paywall. Not now, not ever. The data is public; the work to surface it cleanly is the contribution.
  • No account required. Read, leave, come back.
§ 06

Found something wrong?

Wrong dispatch URL, missing local, bad scale on a row, contractor data parsing wrong on a page that just changed format — email hello@plumbsquare.work and we'll fix it. The seed list is small; every local we add has been individually checked.