Certified payroll — one run a week, eCPR out the door
The hour that used to eat Friday night. On a DIR job the week isn't over until the CPR is filed, and the old way was re-keying every timecard into a portal after the crew went home. In STrOp the run is built from the timecards the foreman already entered and the PM already approved: one run per week, on the job. Here's what Marisol does at 4:30.
Build the week's run
- Open the job → Certified Payroll. Every run for the project lists here with its status.
- + New Run. The New Certified Payroll Run form wants one thing, the week ending date. If nobody worked the project that week, tick Statement of Non-Performance instead of skipping the week. A missing week reads as non-compliance; a no-work statement reads as a filing.
- Create Run. The worker rows fill from the approved timecards inside that week: each worker, their classification from the roster, RT/OT/DT hours, and gross at the agreement's loaded rate. Nobody re-keys a timecard.
- What the timecards can't know, you enter once per worker: the deductions and the Check # from your payroll register. STrOp reports payroll; it doesn't run it.
- Above the worker rows, the run carries its own Apprentice ratio (LC 1777.5) line for that pay week: Within ratio, or Over ratio for the craft that's short on journeyman hours. It's the same check the Compliance tab runs, scoped to the seven days in the file, so you see the rejection risk before you generate. The link on the line opens the Compliance tab for the by-craft table.
Generate the file, print the form
- Generate XML. That's the eCPR file DIR takes; download it and upload it to the DIR portal. If the button is blocked, the banner at the top says why: CSLB license, DIR registration, EIN, or insurance number missing on the org, or the DIR Project ID missing on the job. Fill those once and it stays fixed.
- Print / Review (PDF) opens the same run laid out as the DLSE A-1-131, the paper form the GC's compliance portal usually wants. Same numbers, two formats.
- After the upload, Mark Submitted and record the DIR Payroll # it hands back, plus the amendment number if this run corrects an earlier one. The run's status follows it through accepted or rejected.
Read the Compliance tab
The job's Compliance tab is the whole public-works picture on one page:
- DIR Registration — the checklist: prevailing-wage flag on the contract, DIR Project ID, PWC-100 number and registration date. All four green, or eCPR has nothing to attach to.
- Prevailing-Wage Determination — the linked wage floor, held to the county and the bid-advertisement date, that the crew's rates are validated against.
- Apprenticeship Ratios — LC 1777.5 — apprentice hours against journeyman hours by craft, from approved timecards over the last four weeks. Fuentes is on the DAS list, the hours line up, it reads Within ratio. The DAS 140/142 notices are still yours to send.
- Certifications with expiry, and meal and rest break capture.
- Skilled & Trained Workforce — PCC §2600 — of the workers who logged approved hours on the job, how many are graduates of an approved apprenticeship and how many carry a DAS registration number, and a list of the ones missing either. Each name opens that worker's card.
The Skilled & Trained Workforce fields themselves (graduate of an approved program, DAS number, graduation date) sit on each worker's card in the roster. Set them when you onboard the worker, not on Friday; the card only tells you who you skipped. It's 4:40. Go home.
Common mistakes
- Running CPR before approvals. The run reads approved timecards only. A submitted but unapproved day is simply missing from the file.
- Skipping a no-work week. File the Statement of Non-Performance. The week the crew was on another job is still a week the project was active.
- Fixing the XML by hand. If the file is wrong, the timecard or the roster is wrong. Fix the source and regenerate, so the A-1-131 and the XML stay the same document.
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-09-07.