If you are a subcontractor in California doing any public works job, a school, a county building, a transit project, or a city infrastructure contract, AB 889 changed your bookkeeping requirements as of January 1, 2026. The new law mandates annualized fringe benefit calculations, weekly payroll submissions to the California Department of Industrial Relations (DIR) via XML file, and a specific audit-ready record structure. Six months in, many subcontractors in Downey, Compton, Paramount, Norwalk, and across Southeast Los Angeles County are discovering that what their bookkeeper or office manager was doing in 2025 no longer meets the 2026 standard.
The Division of Labor Standards Enforcement (DLSE), which enforces prevailing wage compliance, is actively auditing public works projects. Subcontractors who started public works jobs in early 2026 already have six months of records to account for. This guide covers what changed, what your books need to show, and how to close the gaps before an auditor asks for documentation you do not have.
What AB 889 Changed: The Key Bookkeeping Requirements
Annualized Fringe Benefit Calculations
Under California prevailing wage law, contractors must pay workers the prevailing wage rate set by DIR for their trade and geographic area. That rate has two components: the basic hourly rate and the fringe benefit rate. The fringe benefit portion covers health insurance, pension contributions, vacation pay, and similar benefits.
Before AB 889, some subcontractors calculated fringe benefit contributions only against hours worked on the public contract. AB 889 tightened this by requiring that fringe benefit contributions be evaluated on an annualized basis. What annualization means in practice: if you pay a health insurance premium for a worker, the full annual cost of that premium is spread across all hours the worker is expected to work in a year (typically 2,080 hours for a full-time employee), and that per-hour credit is what counts toward satisfying the prevailing wage fringe requirement on the public works job.
Why this matters for your books: if your fringe benefit credit per hour falls short of the DIR-required fringe rate after annualization, the difference is treated as unpaid wages under DLSE. A subcontractor who thought fringe benefits were covered may find, when the math is done correctly, that workers on public jobs were underpaid. That is a wage theft finding, and it triggers back pay liability plus penalties. Your bookkeeping needs to show the annualization calculation for each worker, not just the premium amounts paid.
Weekly XML Payroll Submission to DIR
Starting January 2026, certified payroll records for public works jobs must be submitted to DIR's online system on a weekly basis, in XML format. This replaced the prior practice for many subcontractors of keeping certified payroll on file and submitting it to the awarding body (the city, county, or transit agency) on request or on a project schedule.
The XML submission requirement means your certified payroll data has to be in a structured, machine-readable format every week, for every project. The records submitted must match the applicable DIR wage determination for the specific project, covering wages paid, hours worked by classification, fringe benefits, and deductions. Faxing, emailing a PDF, or handing paper records to a general contractor does not satisfy this requirement.
For most small subcontractors, this is the gap they do not know exists. If your payroll process has not been updated to generate DIR-compatible XML files and submit them weekly, you have six months of submissions that were not made on time.
Worker Classification: AB5 Now Applies in Full to Public Works
AB 889 closed an exemption gap that had allowed some subcontractors to pay workers on public projects as independent contractors (1099) rather than employees (W-2). As of January 2026, the full AB5 ABC test applies to all workers on public works projects. A worker must satisfy all three prongs of the test to be classified as an independent contractor:
- The worker is free from the hiring entity's control and direction in performing the work
- The work performed is outside the usual course of the hiring entity's business
- The worker is customarily engaged in an independently established trade, occupation, or business of the same nature as the work performed
For most trades workers, framing, drywall, concrete, electrical, and plumbing crews working under a subcontractor's direction on a specific project, prong B fails. That means they need to be on W-2, with payroll taxes withheld and certified payroll records generated. Continuing to pay them as 1099 on a public works job after January 2026 creates payroll tax liability and prevailing wage liability simultaneously. For the full picture of what correct classification documentation looks like in your books, see our W-2 vs 1099 California bookkeeping guide.
Record Retention: Three Years from Project Completion
AB 889 sets a three-year retention minimum for certified payroll records, measured from the completion of the public works project (not the completion of a pay period or calendar year). Three years was already required under California Labor Code Section 1776 for certified payroll, but many subcontractors operating under general contractor master agreements had been following shorter project-specific retention schedules. Under the 2026 standard, your full certified payroll package for every public works job must be kept for three years after the project closes.
What Your Books Need to Show
Passing a DLSE audit on a public works project requires that your records answer specific questions. Here is what the audit-ready record structure looks like at the bookkeeping level.
Project-Level Labor Tracking
Your payroll records must break down hours by employee, by project, by week. Total hours per pay period across all jobs is not sufficient. If a plumber worked 24 hours on a city water main project and 16 hours on a private commercial job in the same week, those need to be tracked and recorded separately. In QuickBooks Online, you set this up using Classes (one class per project) or Jobs under a customer, so that payroll transactions can be coded to the correct project at the time of entry. Doing it retroactively is possible but time-consuming, which is why June 2026 is the moment to fix the setup, not after a notice arrives.
Wage Determination Matching
For each project, you need a record of the applicable DIR wage determination: the document that states the required basic hourly rate and fringe benefit rate for each classification on that specific job. Your payroll records must show that what you actually paid matches or exceeds those rates. If you have workers in multiple classifications on the same project (for example, a journeyman electrician and an electrical apprentice), both classifications need separate rate documentation. The wage determination for a Los Angeles County public works contract is different from one in Orange County, and both differ from a state-funded transit project. Pulling the correct determination and keeping it in your job file is a bookkeeping task, not just a project management one.
Fringe Benefit Documentation with Annualization Math
For each worker on a public works project, keep documentation of the health insurance premium paid, pension contributions, and any vacation or holiday pay accrued, along with the annualization calculation: annual benefit cost divided by annual hours worked, producing a per-hour fringe credit. That per-hour figure needs to meet or exceed the DIR fringe rate for the worker's classification. A summary line on a certified payroll form that says "fringe benefits paid" without the supporting worksheet does not hold up in an audit.
Certified Payroll Worksheet (WH-347 Equivalent)
California's certified payroll form follows the federal WH-347 format. Each week, for each public works project, it must show: employee name, address, and last four digits of Social Security number; work classification; daily hours (straight time and overtime); hourly rate paid; gross wages; each deduction itemized; net wages paid; and a signed statement of compliance. In QuickBooks, this is not a native report. You export payroll data and map it to a WH-347 spreadsheet, or use a payroll add-on that generates the format directly. Either way, the underlying QuickBooks data must be structured by project and classification for the export to produce clean output.
Deduction Records
Every deduction taken from a worker's paycheck on a public works job must be documented individually: union dues, health insurance employee contributions, garnishments, and any other withholding. AB 889 records cannot carry a catch-all "other deductions" line. Each item must be named and the amount shown per worker per week.
Segregating Public Works Labor in QuickBooks
Create a separate QuickBooks Class for each public works project and run all payroll entries, subcontractor payments, and materials costs through it. This lets you pull a payroll transaction report filtered to a single project and produce the weekly certified payroll without reconstructing data from scratch. QuickBooks Desktop users can accomplish the same segregation using the Jobs feature under a customer record. The point is that at any time, a project-level payroll report should be one filter away, not a manual reconciliation project. For a full QuickBooks setup guide specific to California contractors, see our QuickBooks for contractors guide.
The Most Common AB 889 Compliance Gaps in SE LA
Misclassified Trades Workers
Framing, drywall, concrete and masonry, and specialty subcontractors who have been paying field crews as 1099 are the most exposed group under the AB 889 change. The pattern is common in Southeast LA County: a small subcontractor wins a public works bid, brings their regular crew, pays them the same way they always have (1099 at end of year), and does not realize the AB5 full test now applies to every hour worked on that public contract. The fix is to convert affected workers to W-2, run correct payroll with prevailing wage rates and fringe, and generate retroactive certified payroll for the weeks since January 2026. The retroactive piece is a bookkeeping project; it is not pleasant, but it is manageable if done now rather than after a DLSE investigation opens.
Fringe Benefit Shortfall After Annualization
Subcontractors who pay health insurance for their workers often assume the premium satisfies the DIR fringe requirement. The issue is the annualization math. A health insurance premium that costs $600 per month per employee works out to $3.46 per hour when spread over 2,080 annual hours. If the DIR fringe rate for that classification is $7.00 per hour, the health insurance alone covers less than half of it. The subcontractor owes the difference in cash (as an additional fringe payment or as wages). Fixing this requires recalculating fringe credits for every worker on every public works job since January and determining whether make-whole payments are required.
Late or Missing XML Submissions
Contractors who were faxing, emailing PDFs, or handing paper certified payroll to the general contractor have not been submitting to DIR's online system at all. This is the most widespread gap, and the one that is hardest to retroactively cure because the weekly submission deadlines have already passed. The path forward is to: set up DIR system access now, begin submitting weekly for all current projects, and document the reason for the gap in prior submissions. Whether DLSE treats late submissions as a penalty matter or as a correctable deficiency depends on the circumstances; the starting point is getting current immediately and keeping a record of the correction.
How a Bookkeeper Helps with Prevailing Wage Compliance
Prevailing wage bookkeeping is a specific workflow, not a feature that comes standard with any bookkeeping setup. J.P Bookkeeping works directly with California public works subcontractors on the pieces that keep them audit-ready.
On the setup side: QuickBooks classes and job structure configured specifically for public works labor tracking, so every payroll entry is coded by project and classification from the start. A certified payroll record template built to DIR's current submission requirements, mapped to the WH-347 format, so the weekly export is a defined process rather than a scramble.
For subcontractors who started public works jobs in January 2026 and have not been maintaining DIR-compliant records, the immediate task is a gap reconciliation: pulling payroll records for every public works week since the job started, recalculating fringe benefit credits using annualization, identifying any shortfall, and building the retroactive certified payroll record set. This is catch-up bookkeeping with a compliance deadline attached.
On an ongoing basis: weekly payroll records structured to be DIR-submission-ready, fringe benefit tracking that shows the annualization math, and month-end reconciliation of public works labor costs by project. J.P Bookkeeping has direct California public works and labor compliance experience, and serves subcontractors in Downey, Compton, Paramount, Norwalk, and across Southeast Los Angeles County in both English and Spanish. For more on what the contractor bookkeeping setup looks like, see our contractor bookkeeping services page.
Disclaimer: J.P Bookkeeping is a bookkeeping firm, not a CPA or law firm. For tax planning, legal questions, or regulatory compliance, consult a licensed CPA or attorney. Information reflects publicly available requirements as of June 8, 2026. Confirm current IRS rates and thresholds at irs.gov and ftb.ca.gov before filing.