Import a DIR wage determination (and keep it current)
On a public works project you owe the prevailing wage DIR publishes for the craft, county, and bid-advertisement date — the total package: basic hourly rate plus fringe (H&W, pension, vacation/holiday, training, other). The usual way to underpay isn't fraud, it's stale data: DIR bakes predetermined increases into a determination (a raise on a fixed future date, often July 1), and a contractor who never loaded the new number keeps paying the old one. Loading the determination into STrOp — with its future increase — keeps the floor current so the certified payroll you generate reads against the right rate.
What you need
- The Reference permission (Settings → Roles & Permissions).
- The DIR PDFs for your craft/area from dir.ca.gov/OPRL — usually two files: the determination (current rates) and its predetermined-increase sheet (the future raise).
- The right Area and classification for your workers. Northern California splits into Area 1–4 by county (Area 1 = the Bay Area), and the same craft can carry different rates per area — and Hardwood Floorlayer is a different row than plain Carpenter.
Import it
- Settings → Wage Determinations (
/settings/wage-determinations). - Import from PDF → choose the determination PDF. STrOp reads it (scanned PDFs work) and extracts the header plus one rate row per classification, per effective date.
- Review the grid against the PDF — don't skip this. It's a compliance number. Confirm:
- the counties (the full Area list — a missing county means projects there won't find it),
- the journeyman row and each fringe component (they should sum to the fringe total — the grid warns if not),
- a second rate row with the future effective date (e.g.
2026-07-01) and the higher figures. If the parser missed it, + Add rate row and enter it from the increase sheet.
- Save.
Predetermined increases (the July 1 case)
A determination marked ** after its expiration date has a raise you must apply on a set date. STrOp stores it as a second, future-dated rate row under the same determination. Example — Hardwood Floorlayer, Area 1, NC-23-31-1-2025-1:
| Package floor | |
|---|---|
| Now → 6/30/26 | $104.24 |
| 7/1/26 | $109.56 |
You load the increase row once, up front. The floor picks the row in effect as of the work date, so it steps up on July 1 on its own — no re-import, no action on the date.
Link it to a project
Storing it is half the job. On each prevailing-wage project → Compliance tab → Prevailing-Wage Determination: set the project's county and bid-advertisement date, then confirm the suggested determination. The compliance dashboard's Wage Floor column then compares what you pay each worked classification against this floor.
Keep it current
DIR reissues determinations twice a year (published Feb 22 / Aug 22). When a craft/area you work gets a new number, import it — existing projects stay locked to the determination in effect on their bid-advertisement date, but new bids pick up the new one. A few times a year, open Settings → Wage Determinations and confirm each craft has current rate dates.
What STrOp does — and doesn't — do
- It stores and surfaces, it doesn't gate. The Wage Floor indicator is a check, not a hard block on timecards or pay-apps. You're still responsible for paying at or above the floor.
- Journeyperson first. The apprentice wage schedule is a separate DIR sheet; load it (as
apprentice_1 … apprentice_8rows) when you need apprentice floors on file. - Get the county right. Pay the determination for where the work is performed, not your office or the GC's.
See also
This is how STrOp works
The data flows you read about here are how the platform threads bid, execution, billing, and closeout. Single pipeline. No re-keying.
Request beta access →Last updated 2026-07-01.