How to submit certified payroll to DIR, step by step

The upload is the easy part. Most failed submissions go wrong before it, in registration and project setup, or after it, in the sign off and the records. This is the whole sequence on the current portal.

Before you can submit anything

  1. Your public works contractor registration is current. The eCPR is filed under your registration number. Fees, the fiscal year cycle, and the lapse penalties are on the registration guide.
  2. The awarding body has filed the PWC-100. DIR's FAQ is blunt: if the awarding body has not filed the PWC-100, submitting your eCPR "is not possible." Awarding bodies are required to give DIR notice of a project within five days of award (DIR eCPR FAQ). If a project is missing from the system, that is the first call to make.
  3. Your company appears on the project. Subcontractors are often left off the PWC-100 because they were unknown at award. The FAQ says the eCPR system lets a subcontractor add its information to the project and then submit. Do that once per project.

The submission

  1. Sign in to DIR's Public Works Website Services. The certified payroll reporting page links to it under Submit Payroll Records (DIR certified payroll reporting). The portal was modernized in 2024 and required new accounts; old logins from the previous system do not work.
  2. Select the project and the week. The week ending date drives everything downstream, including the file name if you upload XML.
  3. Choose your method. DIR's FAQ states the two options: the manual iForm, or an XML upload. The iForm means typing each worker's classification, hours by day, rates, gross, deductions, and net. The XML route means producing a file that follows DIR's schema version 1.3 and its guidelines, both published on the reporting page along with a sample file. The rules that bounce files are on the upload errors page.
  4. No work this week? File anyway. A week with no work on the project is reported as a statement of non performance, with no employee records. Skipping the week is how gaps start.
  5. Review and sign. Every certified payroll record must contain or be verified by a written declaration, under penalty of perjury, that the information is true and correct and that the employer has complied with the prevailing wage sections (Labor Code 1776(a)). That declaration is the contractor's. Whoever prepares the file, the sign off is yours.
  6. Keep the confirmation. Save the confirmation and a copy of what was filed. Certified copies must be available for inspection at your principal office, and you must tell the awarding body where the records are kept, with five working days to report a change of location (Labor Code 1776(b) and (g)).

How often

At least monthly, or more often if the contract with the awarding body says so. Monthly has a statutory definition: a submission at least once every 30 days while work is being performed, and within 30 days after the final day of work on the project (Labor Code 1771.4(a)(3)). Many contracts say weekly, and the federal WH-347 on federally assisted work is weekly regardless. The full calendar is on the deadlines page.

What the GC's portal does not do

Uploading to LCPtracker, PRISM, Elation, OCPS, or eMars is the awarding body's monitoring. DIR's FAQ: "Submitting CPRs to other agencies does not put you in compliance with the state unless you submit eCPRs directly to DIR." The exceptions are the four legacy Labor Compliance Programs the FAQ lists, Caltrans, the City of Los Angeles, the Los Angeles Unified School District, and the County of Sacramento, plus projects under qualifying project labor agreements at the Labor Commissioner's discretion. Which portal each body uses is mapped on the portals page.

Who can see what you filed

Filed records are searchable by the public through DIR's CPR Public Search with confidential information removed (DIR). DIR's FAQ says full redaction removes all personally identifiable information, meaning name, address, phone number, and social security number, as well as the FEIN and the contractor's email address; your company name remains. You can view and print your own unredacted eCPR only immediately before submitting it, so save that copy. Assume a prime, a union, or a competitor can read your filings, and file accordingly.

What we do instead

You send the payroll export you already run. We produce the WH-347 and the eCPR file, validate it against DIR's schema, and a person reviews it against the project and the wage determination. You do the review and sign. The first weekly filing is free.

Questions

The project is not in the DIR system. What now?
The awarding body has to file the PWC-100 before any contractor can submit an eCPR. Contact the awarding body's contract administrator and ask for the DIR project number. Keep the email, because your filing clock does not stop.
Our GC files everything in LCPtracker for us. Are we covered?
Not with the state. The GC's portal is the awarding body's side. Unless the project falls under one of the four legacy Labor Compliance Programs, you file the eCPR directly with DIR under your own registration as well.
Can someone else submit for us?
A service can prepare, validate, and upload. The declaration under penalty of perjury has to be yours, so the last step stays with you. We walk you through it the first time and it takes about two minutes.

Never type into the DIR portal again

Send the payroll export you already run. We turn it into the WH-347 and the DIR eCPR filing, checked by software and verified by a person. Your first weekly filing is free, before you pay us anything. $995 one time setup, then $249 per month flat.

Got it. We reply the same business day.

First filing free