AI experts sharing free tutorials to accelerate your business.
Back to Plumbing toolkit

Safety & Compliance Tracker

Track technician certifications, license renewals, vehicle inspections, and safety training deadlines across your entire team. Generates upcoming-expiration alerts, audit-ready compliance reports, and renewal action plans — so nothing lapses and you never get caught flat-footed by an OSHA audit or a GC compliance request.

Saves ~30 min/audit cycleintermediate Claude · ChatGPT · Gemini

🛡️ Safety & Compliance Tracker

Purpose

Track technician certifications, license renewals, vehicle inspections, and safety training deadlines across your entire team. Generates upcoming-expiration alerts, audit-ready compliance reports, and renewal action plans — so nothing lapses and you never get caught flat-footed by an OSHA audit or a GC compliance request.

When to Use

  • Monthly check-in — Run at the start of each month to see what's expiring in the next 30/60/90 days
  • Before bidding commercial/GC work — Generate a compliance packet showing your team's current certs
  • After hiring or onboarding a new tech — Input their certs to get a baseline and set up renewal tracking
  • After an incident or near-miss — Quickly verify that the involved tech's training and certs were current
  • OSHA or insurance audit prep — Generate a formatted compliance report for your entire crew

Required Input

Provide one or more of the following:

  1. Team roster with certifications — A list of each tech's name, role, and current certifications with expiration dates. Can be pasted from a spreadsheet, typed out, or described from memory.

    Example format:

    Marcus R. — Journeyman License (exp 09/2026), OSHA-10 (exp 12/2026),
                Backflow Cert (exp 03/2027), CPR/First Aid (exp 06/2026),
                Med Gas (exp 11/2026), Vehicle inspection (exp 05/2026)
    
  2. Jurisdiction / state — Your operating state(s), since licensing requirements vary

  3. Type of work — Residential, commercial, new construction, service/repair, medical gas, fire suppression, etc.

  4. Specific compliance question (optional) — e.g., "What do I need to have a tech work on a hospital job in Texas?"

Instructions

You are a compliance and safety administrator for a plumbing company. Your job is to track every certification, license, training requirement, and inspection deadline across the team, flag what's coming due, and produce audit-ready documentation.

Before you start:

  • Load config.yml from the repo root for company details, state, and team size
  • Reference knowledge-base/regulations/ for jurisdiction-specific requirements
  • Reference knowledge-base/terminology/ for correct cert and license names

Step 1 — Build the Compliance Matrix

Organize all certifications into this structure:

CategoryExamples
Trade licensesJourneyman, Master, Apprentice registration
Safety certificationsOSHA-10, OSHA-30, Confined Space, Trenching & Excavation
Specialty certificationsBackflow prevention, Medical gas, Fire suppression, Gas fitting
First aid / emergencyCPR/AED, First Aid, Bloodborne Pathogens
Vehicle & equipmentDOT medical card, CDL (if applicable), Vehicle inspection, Crane/forklift
Insurance & bondingWorkers comp, General liability, Bonding (if applicable)
Continuing educationState-required CE hours, manufacturer training

Step 2 — Flag Expiration Windows

For each cert, calculate days until expiration and assign urgency:

  • 🔴 CRITICAL (expired or within 30 days) — Immediate action required. Tech may not legally perform certain work.
  • 🟡 WARNING (31–60 days) — Schedule renewal now. Most certs require advance application.
  • 🟢 UPCOMING (61–90 days) — On the radar. Start budgeting time and fees.
  • CLEAR (90+ days) — No action needed this cycle.

Step 3 — Generate Renewal Action Plan

For each flagged item, provide:

  • What needs to be renewed and for whom
  • Where to renew (state board URL, training provider, testing center)
  • Estimated cost and processing time
  • Whether the tech can continue working while renewal is in process (varies by cert type and state)
  • Who is responsible (tech, office, or owner)

Step 4 — Produce Audit-Ready Report (if requested)

Format a clean compliance summary suitable for:

  • OSHA inspector review
  • General contractor prequalification packets
  • Insurance audits
  • Internal records

Output format:

═══════════════════════════════════════════════
  SAFETY & COMPLIANCE TRACKER
  Company: [Name]  |  Date: [Date]  |  State: [XX]
  Team size: [X] technicians
═══════════════════════════════════════════════

⚠️  ALERTS SUMMARY
  🔴 CRITICAL: [X] items expired or expiring within 30 days
  🟡 WARNING:  [X] items expiring within 31–60 days
  🟢 UPCOMING: [X] items expiring within 61–90 days

───────────────────────────────────────────────
🔴 CRITICAL — ACTION REQUIRED IMMEDIATELY
───────────────────────────────────────────────

  [Tech Name] — [Cert Name]
    Status:    Expires [date] ([X] days)
    Impact:    [What work this tech cannot do without it]
    Renew at:  [URL or location]
    Cost:      ~$[amount]  |  Processing: [X] days
    Can work during renewal? [Yes/No — explain]
    Owner:     [Tech / Office / Owner]

───────────────────────────────────────────────
🟡 WARNING — SCHEDULE RENEWAL THIS MONTH
───────────────────────────────────────────────

  [Same format as above]

───────────────────────────────────────────────
🟢 UPCOMING — PLAN AHEAD
───────────────────────────────────────────────

  [Same format as above]

───────────────────────────────────────────────
✅ TEAM COMPLIANCE MATRIX
───────────────────────────────────────────────

  Tech         | License | OSHA | Backflow | CPR | Vehicle | CE
  -------------|---------|------|----------|-----|---------|----
  Marcus R.    |  ✅     |  🟡  |  ✅      | 🔴  |  ✅     | ✅
  Jake T.      |  ✅     |  ✅  |  N/A     | ✅  |  🟡     | 🟡
  [etc.]

───────────────────────────────────────────────
💰 RENEWAL BUDGET THIS QUARTER
───────────────────────────────────────────────

  Cert renewals:     $[amount]
  Training courses:  $[amount]
  Testing fees:      $[amount]
  Total:             $[amount]

═══════════════════════════════════════════════

Important guidelines:

  • Always note jurisdiction-specific requirements. A plumbing license in Texas has different CE requirements than California.
  • OSHA penalties for serious violations are now $16,131 per violation (2026 rates). Mention this when certs are in 🔴 status to underscore urgency.
  • Under OSHA's Multi-Employer Citation Policy, the controlling employer can be cited for subcontractor cert lapses — flag this for shops that sub out work or work under GCs.
  • If a tech is missing a cert that's required for their scope of work, clearly state they should not perform that work until the cert is current.
  • Include estimated renewal costs and processing times so the owner can budget.

Example Output

═══════════════════════════════════════════════
  SAFETY & COMPLIANCE TRACKER
  Company: ABC Plumbing  |  Date: 2026-04-13  |  State: TX
  Team size: 4 technicians
═══════════════════════════════════════════════

⚠️  ALERTS SUMMARY
  🔴 CRITICAL: 2 items expired or expiring within 30 days
  🟡 WARNING:  3 items expiring within 31–60 days
  🟢 UPCOMING: 1 item expiring within 61–90 days

───────────────────────────────────────────────
🔴 CRITICAL — ACTION REQUIRED IMMEDIATELY
───────────────────────────────────────────────

  Jake T. — CPR/First Aid Certification
    Status:    Expired 2026-04-01 (12 days overdue)
    Impact:    Jake is the designated first responder on
               his crew. Without current CPR, your crew
               may not meet OSHA requirements for jobsites
               without nearby medical facilities.
    Renew at:  American Red Cross (redcross.org) or
               local community college
    Cost:      ~$75  |  Processing: Same-day (class)
    Can work during renewal? Yes, but assign another
               tech as designated responder until complete.
    Owner:     Jake (schedule class) / Office (pay fee)

  Marcus R. — DOT Medical Card
    Status:    Expires 2026-04-28 (15 days)
    Impact:    Marcus drives the F-350 service truck.
               Without a current DOT medical card, he
               cannot legally operate a vehicle over
               10,001 lbs GVWR.
    Renew at:  Any FMCSA-listed medical examiner
               (npdb.fmcsa.dot.gov)
    Cost:      ~$85–$150  |  Processing: Same-day
    Can work during renewal? Cannot drive the F-350.
               Can ride along or drive a smaller vehicle.
    Owner:     Marcus (schedule exam) / Office (verify)

───────────────────────────────────────────────
✅ TEAM COMPLIANCE MATRIX
───────────────────────────────────────────────

  Tech         | License | OSHA | Backflow | CPR | Vehicle | CE
  -------------|---------|------|----------|-----|---------|----
  Marcus R.    |  ✅     |  🟡  |  ✅      | ✅  |  🔴     | ✅
  Jake T.      |  ✅     |  ✅  |  N/A     | 🔴  |  ✅     | 🟡
  Dani S.      |  ✅     |  ✅  |  ✅      | ✅  |  ✅     | ✅
  Chris M.     |  🟡     |  ✅  |  🟢     | ✅  |  ✅     | ✅

───────────────────────────────────────────────
💰 RENEWAL BUDGET THIS QUARTER
───────────────────────────────────────────────

  CPR/First Aid (Jake):           $75
  DOT Medical (Marcus):           $125
  OSHA-10 Refresher (Marcus):     $89
  Journeyman renewal (Chris):     $225
  Backflow recert (Chris):        $175
  CE hours — 2 techs × 8 hrs:    $320
  Total:                          $1,009

⚠️  REMINDER: OSHA serious-violation penalties are
    $16,131 per occurrence in 2026. A single lapsed
    certification can cost 16× more than renewing it.

═══════════════════════════════════════════════

v1.1 Additions (2026-04-25)

The v1.0 skill scored 9.1 on the 04-14 and 04-24 evals; the soft spot was personalization (8/10) and efficiency (8/10). The 04-24 summary called out per-tech renewal calendars and tighter state-rule integration as the unlocked lift. The v1.1 additions below are strictly additive — none of the v1.0 content above changes. Use the v1.0 sections for the standing monthly tracker output; use the v1.1 sections when the shop wants per-tech detail, jurisdiction-overlay clarity, or a 12-month renewal-budget projection.

Per-Tech Renewal Calendar

For any tech the shop wants tracked individually (rather than rolling up to the team matrix), produce a 12-month forward-looking calendar showing every renewal event by month. The calendar is the artifact the tech actually carries home and the one the office uses for a one-on-one renewal conversation.

Format:

─────────────────────────────────────────────────────────────
  RENEWAL CALENDAR — [Tech Name] — 12 months from [date]
─────────────────────────────────────────────────────────────

  MONTH    | RENEWAL                          | OWNER     | $
  ---------|----------------------------------|-----------|------
  May 2026 | DOT Medical Card                 | Tech      | $125
  Jun 2026 | CPR / First Aid                  | Tech      | $75
  Jul 2026 | (clear)                          | —         | —
  Aug 2026 | (clear)                          | —         | —
  Sep 2026 | TX Journeyman License (3-yr)     | Office    | $225
  Oct 2026 | OSHA-10 Refresher                | Tech      | $89
  Nov 2026 | Medical Gas Cert (2-yr)          | Tech      | $385
  Dec 2026 | (clear)                          | —         | —
  Jan 2027 | CE Hours block (8 hrs by Mar)    | Tech      | $160
  Feb 2027 | (clear)                          | —         | —
  Mar 2027 | Backflow Cert (annual)           | Tech      | $175
  Apr 2027 | Vehicle Inspection (state, 1-yr) | Office    | $25

  12-month total: $1,259  |  Tech-paid: $584  |  Office-paid: $675
  Stacked-renewal months: Sep, Nov (>$300/mo) — schedule budget early

  Tech-side prep ahead of each renewal:
   • DOT Medical: book exam at clinic 2 weeks before expiration
   • CPR class: Red Cross or local CC, allow half-day
   • Journeyman: state portal opens 90 days before expiration
   • Med Gas: 2-day course + exam, schedule 60 days out
   • CE hours: TX requires 8 hrs by license anniversary
─────────────────────────────────────────────────────────────

Discipline notes:

  • One calendar per tech, not one for the whole shop. A combined calendar is what the v1.0 matrix already produces. The per-tech calendar is for the renewal conversation and for the tech's own file.
  • Owner column is binary (Tech / Office). "Tech" means the tech is responsible for booking and submitting; "Office" means the shop runs the renewal on the tech's behalf (most common: license renewals through the state portal where the office holds the credentials, vehicle inspections, anything paid through company AP).
  • Stacked-renewal-month flag. Any month with more than $300 in renewal cost or more than two events gets flagged so the office can either re-time one of them (if the cert allows early renewal) or budget the cash flow.
  • Prep windows. Each cert has a typical prep window (DOT medical 2 weeks ahead, journeyman portal opens 90 days before, med-gas course is 2 days plus exam scheduling lead time). Surface the prep window so the tech doesn't get caught at T-7-days with no slot available.
  • Run this any time a tech is hired, promoted, or moved between scopes that change their cert requirements. Then update at each cycle.

State-Rule Overlay (License + CE)

Different states impose different renewal cycles, CE-hour requirements, and reciprocity rules. The v1.0 reminder noted this generally; v1.1 names the rules for the 12 states with the largest plumbing-shop populations so the skill can flag the right thing without the office having to look it up.

StateMaster license cycleJourneyman CE / cycleRenewal window opensNotable quirk
CAAnnual (CSLB C-36)None state-mandated; LMOA recommended60 days before expirationC-36 covers plumbing only; gas connections require separate experience verification under DCA bulletin
TX1-yr Master / 1-yr Journeyman (TSBPE)6 hrs / yr90 days before expirationBackflow tester is separate TCEQ endorsement, not a TSBPE cert; CE must include 1 hr code-update content
FL2-yr (DBPR Plumbing CFC)14 hrs / 2 yrs90 days before expiration1 hr workers' comp + 1 hr workplace safety mandatory inside the 14
NYLocal (NYC DOB Master Plumber)NYC: 7 hrs / yrVaries by jurisdictionPlumbing license is municipal in NY, not state — NYC, Buffalo, Rochester all separate boards
PALocal (no state license)Local board setsLocalPhiladelphia and Pittsburgh have separate Master Plumber boards; rural counties often delegate to UCC
OHAnnual (OCILB Plumbing)10 hrs / yr60 days before expirationCE provider must be OCILB-approved; online-only courses capped at 5 of 10 hrs
MI3-yr (LARA Master / Journey)0 (renewal-only)30 days before expirationReciprocity with WI, IL, OH on Journey level only; Master is non-reciprocal
ILAnnual (IDPH Plumbing)4 hrs / yr60 days before expiration1099-only contractor must hold their own license — not coverable under the shop's license
GA2-yr (Construction Industry Licensing Board)0 (renewal-only)90 days before expirationMaster Plumber Restricted vs. Unrestricted distinction matters for water service over 1.25"
NCAnnual (State Board of Examiners)0 (renewal-only)60 days before expirationP-1 vs. P-2 vs. P-2-restricted classification governs scope; running over scope is a Class 2 violation
VA2-yr (DPOR Tradesman / Master)3 hrs / 2 yrs30 days before expirationContinuing-ed required only for Master; Journeyman (Tradesman level) renews on time only
WAAnnual (L&I PL01)8 hrs / yr60 days before expirationPL01 (Plumber 01) and Plumber Trainee are the two licenses; Specialty (PR pump) is separate

State rules that bite shops in practice:

  • The five states with mandatory CE (TX, FL, OH, IL, WA) penalize lapse by reverting the license to inactive — the tech cannot perform regulated work until both CE hours and renewal are submitted.
  • States with municipal plumbing licensing (NY, PA, parts of MO) make the "state license" question itself ambiguous — track per-municipality if the shop crosses city lines.
  • Reciprocity is narrower than most shops assume — MI ↔ WI ↔ IL ↔ OH on Journeyman is the largest reciprocal block; CA, NY, FL accept no out-of-state plumbing licenses for Master without re-examination.
  • The renewal-window-opens column matters because most state portals will not accept a renewal earlier than the named window; setting a calendar reminder for 95 days out wastes 5 days when the portal opens at 90.

When the shop's state is in the table above, integrate the state-specific cycle, CE, and quirks into the per-tech calendar and into the alerts. When the state is not in the table, the skill should default to a 1-yr cycle, flag CE as "verify with state board," and instruct the office to add the state to its working list.

12-Month Renewal Budget Projection

In addition to the v1.0 quarterly budget block, produce a rolling 12-month projection any time the office is doing annual planning. Format:

─────────────────────────────────────────────────────────────
  12-MONTH RENEWAL BUDGET PROJECTION
  Run date: [date]  |  Team size: [N]  |  State: [XX]
─────────────────────────────────────────────────────────────

  Q1 (Jan–Mar): $[amt]  | [N] events | tech-paid $[amt] / office-paid $[amt]
  Q2 (Apr–Jun): $[amt]  | [N] events | tech-paid $[amt] / office-paid $[amt]
  Q3 (Jul–Sep): $[amt]  | [N] events | tech-paid $[amt] / office-paid $[amt]
  Q4 (Oct–Dec): $[amt]  | [N] events | tech-paid $[amt] / office-paid $[amt]

  Annual total: $[amt]
  Largest single-month spend: [Month] $[amt]
  Largest single-event cost:  [Cert + Tech] $[amt]

  PER-TECH BREAKDOWN
  Tech         | Annual | Tech-paid | Office-paid | Stacked months
  -------------|--------|-----------|-------------|----------------
  Marcus R.    | $1,259 | $584      | $675        | Sep, Nov
  Jake T.      | $   460| $215      | $245        | (none)
  Dani S.      | $   825| $375      | $450        | Mar
  Chris M.     | $   910| $510      | $400        | Jan
  ─────────────|────────|───────────|─────────────|────────────────
  TOTAL        | $3,454 | $1,684    | $1,770      |

  Cross-team stacked months (>$700 combined):
   • Sep 2026 — $710 (Marcus journeyman + Dani backflow)
   • Nov 2026 — $385 + $245 = $630 (Marcus med-gas + Chris CPR)
─────────────────────────────────────────────────────────────

Use the projection to:

  • File the renewal budget into the shop's annual budget cycle (typically Q4 for the upcoming year).
  • Schedule training-eligible techs for shop-paid CE blocks the office can buy in bulk (CPR for 4 techs at one class is cheaper than 4 separate enrollments).
  • Surface stacked-month risks early — a $1,200 cash-flow hit in a single month is manageable if foreseen 9 months out, painful if discovered 9 days out.

Audit-Mode Variant (insurance / OSHA / GC prequal)

The v1.0 audit-ready report block is suitable for an internal review. When an external party is requesting the report (workers' comp underwriter, GL renewal, OSHA inspector, GC prequalification packet), produce the audit-mode variant that adds:

  • Cover page: Company name, FEIN, primary state license #, insurance certificate references, contact for compliance questions
  • Date-of-record stamp: "Compliance position as of [YYYY-MM-DD]" — auditors care about the snapshot date, not the live tracker
  • Signed-off-by: Owner name + title; some carriers require a notarized version
  • Documentation references: Per-cert, name the issuing body and the verification URL the auditor can hit (state board lookup, Red Cross verification portal, etc.) so the auditor doesn't have to ask
  • Exclusions and N/As: State explicitly which certs do NOT apply to this shop's scope (e.g., "Medical gas certification N/A — shop does not perform medical gas installations") so the auditor doesn't read the absence as a missing cert
  • 30/60/90 day forward window only. Do not surface the full 12-month calendar in an external audit packet — it dilutes the snapshot and gives the auditor more surface area for follow-up questions than necessary

The audit-mode variant is the one to use when the request comes from outside the shop. The v1.0 internal report is the one to run monthly inside the shop.


v1.2 Additions (2026-06-01)

The v1.1 skill held at 9.5 across six consecutive evaluator cycles (04-25 ship through 05-25). The 04-28 and 05-25 evaluator summaries both named this skill as the next improvement target, with the all-50-state expansion (using the Invoice Follow-Up v2.4.A data-expansion template) as the primary vector, the backflow-recall recertification trigger pattern as the secondary vector (reinforced by Apollo Backflow +3% in the 05-25 wave and the manufacturer recall in the same wave), and the lead-handling endorsement column as the tertiary vector (newly relevant after the Lead Service Line Customer Briefing v0.9 ship in the 06-01 monitor cycle). v1.2 ships all three additively — none of the v1.0 / v1.1 content above changes.

All-50-States License + CE Overlay Expansion

The v1.1 state-rule overlay covered the 12 states with the largest plumbing-shop populations. v1.2 extends the same overlay to the remaining 38 states + DC, using the same column structure (Master license cycle / Journeyman CE per cycle / Renewal window opens / Notable quirk) and the same Invoice Follow-Up Sequence v2.4.A data-expansion discipline: every row is annotated with the state board's licensing-portal source URL and a verified date so the shop can confirm a row before relying on it. Rows where the state board changed format or merged into a multi-trade umbrella board (the most common cause of stale row data) carry a verified date the shop should re-confirm at the next annual review.

The expansion table below picks up where the v1.1 table left off. Use it in addition to the v1.1 12-state table; the two together give all-50-state + DC + the seven cities with municipal licensing.

StateMaster license cycleJourneyman CE / cycleRenewal window opensNotable quirkverified
AK2-yr (DCCED Construction Contractors)16 hrs / 2 yrs60 days beforePlumbing endorsement is separate from general contractor; remote-site jurisdictions defer to borough-level codes2026-06-01
AL2-yr (PMGFB)8 hrs / yr60 days beforeMedical gas piping installer is a separate Plumbers and Gas Fitters Board certification, not bundled with Master2026-06-01
ARAnnual (ADH Plumbing Section)8 hrs / yr60 days beforeRestricted Plumber vs. Master Plumber distinction governs scope; service-only license tier exists separately2026-06-01
AZ2-yr (ROC L-37 / B-37)0 (renewal-only)60 days beforeL-37 (commercial) and B-37 (residential) are separate licenses; cross-classification requires re-examination2026-06-01
CO3-yr (DORA Plumbing)16 hrs / 3 yrs90 days beforeThree license tiers (Master / Journeyman / Residential) with strict scope-by-tier rules; CE must include 4 hrs IPC code updates2026-06-01
CTAnnual (DCP P-1 / P-2)7 hrs / yr30 days beforeP-1 (unlimited) vs. P-2 (limited service) distinction; CE for gas work is an additional 4 hrs2026-06-01
DC2-yr (DCRA Master Plumber)12 hrs / 2 yrs90 days beforePlumber's license is district-issued; reciprocity with MD and VA on Journeyman only2026-06-01
DE2-yr (DDPR Master)10 hrs / 2 yrs90 days beforeSmall-state reciprocity with NJ, PA, MD on Journeyman; Master is non-reciprocal2026-06-01
HIAnnual (DCCA Plumbing C-37)0 (renewal-only)30 days beforeC-37 covers both new installation and service; specialty endorsements (solar water heating, septic) are separate2026-06-01
IA3-yr (IDPH Plumbing)24 hrs / 3 yrs90 days beforeCE must include 6 hrs UPC code updates; backflow tester is a separate IDNR endorsement2026-06-01
IDAnnual (DOPL Journey / Master Plumber)16 hrs / yr60 days beforeHigh CE-hour requirement; Master license requires a documented apprenticeship trail beyond Journey hours2026-06-01
IN4-yr (PIDB Plumbing Commission)12 hrs / 4 yrs90 days beforeLongest renewal cycle in the country; the 4-yr cycle is easy to misfile on calendars built around a default 1-yr or 2-yr cadence2026-06-01
KSLocal (no state license)Local board setsLocalPlumbing license is municipal in KS — Wichita, Topeka, Overland Park all separate boards; rural counties often delegate to state Building Officials2026-06-01
KY2-yr (HBC Plumbing Division)6 hrs / 2 yrs90 days beforeMaster Plumber requires 8 yrs apprenticeship + Journey time; SBCCI reciprocity block on Journey only2026-06-01
LA2-yr (LSPB Master Plumber)8 hrs / 2 yrs60 days beforeMaster Plumber + Backflow Prevention are separate LSPB endorsements; Journeyman-Plumber-Apprentice three-tier structure2026-06-01
MA2-yr (BSEEA Master Plumber)12 hrs / 2 yrs60 days beforeLead-safe renovation endorsement (RRP) required for any work in pre-1978 housing; standalone lead-handling endorsement separately required2026-06-01
MD2-yr (DLLR Master Plumber)12 hrs / 2 yrs90 days beforeBackflow tester is separate MDE endorsement; standalone lead-handling endorsement required for any LSL work2026-06-01
MEAnnual (PFCB Master / Journeyman)8 hrs / yr60 days beforeOil burner technician overlap if shop services boilers; specialty endorsement required2026-06-01
MN2-yr (DLI Plumbing Master / Journey)16 hrs / 2 yrs60 days beforeLead-handling endorsement required for LSL work; CE includes 4 hrs water-conditioning content2026-06-01
MOLocal (no state license)Local board setsLocalMunicipal licensing in MO — St. Louis, Kansas City, Springfield separate boards; rural counties may have no plumbing licensing requirement at all2026-06-01
MSAnnual (MSBCC Plumbing)8 hrs / yr60 days beforeSBCCI reciprocity on Journey only; Master is non-reciprocal2026-06-01
MT3-yr (DLI Plumbing)12 hrs / 3 yrs90 days beforeMaster Plumber + Residential Plumber are scope-distinct; commercial scope requires the unlimited Master endorsement2026-06-01
NC(covered in v1.1)(see v1.1 row — included here for cross-reference)2026-06-01
ND2-yr (NDSPB Master / Journey)8 hrs / 2 yrs60 days beforeSmall market; reciprocity with MN, SD, MT on Journey only2026-06-01
NE2-yr (NEDOL Master Plumber)8 hrs / 2 yrs60 days beforeBackflow tester is separate NDHHS endorsement; gas-fitter overlap requires separate certification2026-06-01
NH2-yr (Plumbers Board)6 hrs / 2 yrs30 days beforeBackflow endorsement is separate; Master Plumber requires documented Journey time of 4+ yrs2026-06-01
NJ2-yr (DCA Master Plumber)10 hrs / 2 yrs60 days beforeLead-safe renovation endorsement (RRP) required for any work in pre-1978 housing; standalone lead-handling endorsement required for LSL work2026-06-01
NM3-yr (CID Plumbing GF-2 / MM-3)30 hrs / 3 yrs60 days beforeGF-2 (gas fitting) and MM-3 (multi-mechanical, includes plumbing) are scope-distinct; CE must include code-cycle hours2026-06-01
NV2-yr (NSCB C-1)0 (renewal-only)60 days beforeC-1 (plumbing and heating) is the unified license; specialty endorsements (medical gas, fire protection) are separate2026-06-01
OK3-yr (CIB Plumbing)9 hrs / 3 yrs90 days beforeThree license tiers (Plumbing Contractor / Journeyman / Apprentice); reciprocity with AR, KS, MO on Journey only2026-06-01
OR2-yr (BCD Plumbing PB / PJ)16 hrs / 2 yrs60 days beforeBuilding Codes Division umbrella; CE includes 4 hrs energy-code content2026-06-01
RIAnnual (DBR Master Plumber)6 hrs / yr60 days beforeSmall market; reciprocity with CT, MA on Journey only2026-06-01
SC2-yr (LLR Master Plumber)6 hrs / 2 yrs90 days beforeSBCCI reciprocity on Journey only; Master is non-reciprocal2026-06-01
SDAnnual (PCB Master Plumber)8 hrs / yr60 days beforeReciprocity with ND, MN, MT, IA on Journey only; CE includes water-system code hours2026-06-01
TN2-yr (BCB Plumbing Contractor)8 hrs / 2 yrs90 days beforeSBCCI reciprocity on Journey only; Plumbing Contractor license is required for any work over $25,0002026-06-01
UT2-yr (DOPL S-220 / S-300)12 hrs / 2 yrs60 days beforeS-220 (residential) vs. S-300 (general plumbing) scope-distinction; CE must include 4 hrs IPC code-cycle content2026-06-01
VT2-yr (DFR Master Plumber)8 hrs / 2 yrs60 days beforeSmall market; reciprocity with NH, MA, ME on Journey only2026-06-01
WI4-yr (DSPS Master Plumber)24 hrs / 4 yrs90 days beforeLong renewal cycle (same calendar-misfile risk as IN); MI reciprocity on Journey only2026-06-01
WVAnnual (PLB Master Plumber)4 hrs / yr60 days beforeMaster Plumber requires 4 yrs documented Journey time; backflow tester is separate WVDHHR endorsement2026-06-01
WY2-yr (DOPL Plumbing)8 hrs / 2 yrs60 days beforeSmall market; reciprocity with MT, ID on Journey only2026-06-01

Cities with municipal plumbing licensing (in addition to or instead of state-level):

CityCycleCERenewal opensNotable quirkverified
NYC(covered in v1.1)(see v1.1 NY row)2026-06-01
BuffaloAnnual (Department of Permit and Inspection Services)6 hrs / yr30 days beforeNY state has no statewide plumbing license; each upstate city sets its own2026-06-01
RochesterAnnual (Bureau of Buildings)6 hrs / yr30 days beforeSame NY pattern; Rochester's Master Plumber exam is separate from Buffalo's2026-06-01
Philadelphia2-yr (L&I Plumbing)12 hrs / 2 yrs60 days beforeSeparate from the PA-statewide no-license pattern; Philadelphia Master Plumber is required for any work in the city2026-06-01
Pittsburgh2-yr (DPL Master Plumber)12 hrs / 2 yrs60 days beforeSame Philadelphia pattern; Pittsburgh Master Plumber required for any work in the city2026-06-01
St. LouisAnnual (Plumbing Board)8 hrs / yr60 days beforeMO has no statewide license; St. Louis Master Plumber is a city-board issuance2026-06-01
Kansas CityAnnual (Codes Administration)8 hrs / yr60 days beforeSame MO pattern; KC Master Plumber separate from St. Louis2026-06-01

Reciprocity blocks that bite shops in practice:

  • Southern Building Code Congress International (SBCCI) block (AL, GA, KY, LA, MS, NC, SC, TN): Journey-level licenses reciprocal across the block; Master is not reciprocal. A Master Plumber licensed in TN does not automatically hold Master status in NC and must re-examine. Shops crossing the Southeast routinely miss this and put unlicensed Masters on work.
  • MI ↔ WI ↔ IL ↔ OH (covered in v1.1): largest formal Journey reciprocal block in the country.
  • Pacific Northwest informal reciprocity (OR, WA, ID): not formal, but the three boards have a 30-day reciprocity-application acceptance pattern that runs faster than re-examination.
  • New England small-state reciprocity (NH, VT, ME, MA): Journey-only reciprocal between any two of the four; Master requires re-examination.
  • No reciprocity for Master in any state (CA, NY, FL, TX): the four largest plumbing markets all require Master Plumbers to re-examine when crossing in. Plan for an 8–12 week re-licensing window for any owner moving the shop's primary state into one of these four.

When the shop's state is in either the v1.1 12-state table or the v1.2 38-state + DC table above, integrate the state-specific cycle, CE, and quirks into the per-tech calendar and into the alerts. When the state is one of the seven cities with municipal licensing, run the municipal-board lookup in addition to the state-level lookup. When the state is changed in config.yml, regenerate the per-tech calendar — the prep windows and renewal-window-opens columns drive calendar reminders that should fire on the new state's schedule, not the old.

Backflow Recall + Recertification Trigger Pattern

A manufacturer recall on a backflow device — the Apollo Backflow recall surfaced in the 05-25 PHCP-PVF wave is the active example as of June 2026 — creates a recertification trigger that runs above the standard annual cadence. When a device is replaced under recall, the device is tested fresh as part of the install, and in most jurisdictions the fresh test starts a new annual clock. Shops without a recall-aware tracker miss this and either (a) bill the customer for a redundant annual test 30 days later, or (b) miss the audit-trail link between the recall replacement and the test cycle, which surfaces during a county-water-district audit.

Trigger: Apply when the input includes a recall-tracker reference from Product Recall Customer Outreach v1.1 (the recall-tracker output schema includes a device_class field; the AUTOMATED-RECALL block fires whenever device_class is one of: backflow_assembly, RPZ, DCVA, PVB, SVB, AVB, DCDA, RPDA).

Output addition — append after the v1.0 TEAM COMPLIANCE MATRIX block when triggered:

───────────────────────────────────────────────
🔔 AUTOMATED RECALL — BACKFLOW RECERTIFICATION
   Source: Product Recall Customer Outreach v1.1 tracker
   Recall: [Manufacturer + model + recall ID]
   Recall date: [date]  |  Recall scope: [N] affected devices
───────────────────────────────────────────────

  AFFECTED-DEVICE ROSTER (cross-ref Product Recall tracker)

  Address                  | Device     | Assigned Tester | Last Test | Replaced | Re-test Due
  -------------------------|------------|-----------------|-----------|----------|-------------
  142 Cardinal Ln, Henrico | Apollo PVB | Marcus R.       | 02/15/26  | 06/04/26 | 06/04/27 ✅
  88 Glen Allen Rd, Henrico| Apollo PVB | Marcus R.       | 03/01/26  | 06/05/26 | 06/05/27 ✅
  301 Bon Air St, Henrico  | Apollo RPZ | Dani S.         | 04/10/26  | pending  | TBD ⏳
  [...]

  ASSIGNED-TESTER IMPACT (rolls up to per-tech matrix)

  Tech       | Devices Affected | Re-tests Performed | Open Re-tests | Endorsement Status
  -----------|------------------|--------------------|---------------|--------------------
  Marcus R.  |  6               |  2                 |  4 (this wk)  | ✅ TCEQ active
  Dani S.    |  3               |  0                 |  3 (next wk)  | ✅ TCEQ active

  Cross-skill emit → Product Recall Customer Outreach v1.1 tracker:
    Audit-trail field `compliance_test_renewal` populated per affected device.
───────────────────────────────────────────────

Hardening rules for the recall-recertification block:

  • Re-test resets the annual clock; do not also bill the customer for the calendar-anniversary annual. The most common shop error here is billing the customer for an annual test 60–90 days after the recall replacement because the calendar-anniversary reminder fires regardless. The v1.2.B block suppresses the calendar-anniversary reminder for any device with a recall-replacement date in the trailing 12 months.
  • Endorsement-status check on the assigned tester. Some jurisdictions (TX TCEQ, IA IDNR, WA L&I) require the tester, not just the installer, to hold a current backflow-tester endorsement at the time of test. The block surfaces the assigned tester's endorsement status alongside the affected-device roster so the office can re-assign if the endorsement is mid-renewal.
  • Audit-trail emit is the legal-defense artifact. The cross-skill emit into the Product Recall Customer Outreach tracker is what the county water district auditor will request 6–18 months after the recall wave. Skipping the emit produces a clean technical replacement but no defensible compliance record.
  • Per-jurisdiction recertification-trigger rules vary. Most jurisdictions accept the fresh-install test as the new annual baseline; a minority (FL, CA, NV) require a separate post-install certification visit within 30 days regardless of install-test. The block flags any affected address in a minority-rule jurisdiction with a 30-day re-visit task.

Lead-Handling Endorsement Tracking — for Shops Doing LSL Work

For shops doing customer-side LSL replacement work under utility programs — cross-references the Lead Service Line Customer Briefing v0.9 skill shipped 2026-06-01 — the per-tech matrix gains a Lead-Handling Endorsement column. The endorsement is jurisdiction-specific: some states bundle lead-handling competency into the Master plumbing license, but seven states (CA, NY, MD, MA, NJ, IL, MN) require a separate standalone endorsement on top of the EPA Renovation, Repair and Painting (RRP) lead-safe certification.

Trigger: Apply when config.yml has lsl_program_participation: true, or when any job in the dispatch pipeline carries an lsl_program tag (sourced from the Lead Service Line Customer Briefing skill's tracker).

Output addition — adds two columns to the v1.0 TEAM COMPLIANCE MATRIX, and a new alert band:

───────────────────────────────────────────────
✅ TEAM COMPLIANCE MATRIX (v1.2.C: + Lead-Handling endorsement)
───────────────────────────────────────────────

  Tech         | License | OSHA | Backflow | CPR | Vehicle | CE | EPA-RRP | State Lead-Handling
  -------------|---------|------|----------|-----|---------|----|---------|---------------------
  Marcus R.    |  ✅     |  ✅  |  ✅      | ✅  |  ✅     | ✅ |   ✅    |  ✅ (MD ind. cert)
  Jake T.      |  ✅     |  ✅  |  N/A     | ✅  |  ✅     | ✅ |   ✅    |  🟡 exp 30 days
  Dani S.      |  ✅     |  ✅  |  ✅      | ✅  |  ✅     | ✅ |   ✅    |  ✅
  Chris M.     |  ✅     |  ✅  |  🟢      | ✅  |  ✅     | ✅ |   🔴    |  🔴 not certified

───────────────────────────────────────────────
🟢 LSL-PROGRAM WORK-WINDOW READINESS
───────────────────────────────────────────────

  Upcoming LSL-program work (from Lead Service Line Customer Briefing tracker):
    Phase 2 Henrico start: July 2026  |  23 known addresses

  Lead-handling-qualified techs for this window: 2 of 4
   - Marcus R. ✅
   - Dani S.   ✅
   - Jake T.   🟡 endorsement expires 06/30/26 — schedule renewal NOW
   - Chris M.  🔴 not yet RRP-certified — book 8-hr RRP class this month

  Recommendation: Run the LSL-program crew with Marcus + Dani as primaries; route Jake's renewal through the office; book Chris into the RRP class before any LSL-program ride-along.
───────────────────────────────────────────────

Hardening rules for the lead-handling endorsement column:

  • The seven states with standalone state-level endorsements (CA, NY, MD, MA, NJ, IL, MN): the EPA-RRP certification is necessary but not sufficient — the standalone state endorsement is required additionally. The other 43 states + DC: EPA-RRP alone is the operational floor.
  • EPA-RRP certification is 5-yr renewal; the 7-state standalone endorsements are 2–3 yr. The state endorsement is the more frequent renewal, so it is the one most likely to lapse silently. The 60-day-warning band catches it before a scheduled LSL-program work-day.
  • Do NOT auto-assign a non-certified tech to an LSL-program job. The Dispatch Brief Generator v1.2.A morning-board flow consumes the readiness signal from this block; any LSL-tagged job with no certified tech on the day's roster gets re-routed to the next available certified tech or held until the office reassigns.
  • Forward emit: the LSL-Program Work-Window Readiness block emits to the Dispatch Brief Generator v1.2.A morning brief as a tech-current-on-lead-handling-endorsement flag per assigned job. The morning brief shows the flag inline at the per-job header for any LSL-tagged job.
  • Audit-trail. Lead-handling-endorsement currency at the time of each LSL-program replacement is the artifact the utility's compliance program will request at the post-program audit (typically 12 months after the program's compliance date). The tracker's endorsement_status_at_job_date field is the defensible record.

Cross-Skill Reference Pointers (v1.2)

  • Invoice Follow-Up Sequence v2.4.A data-expansion template — source pattern for the all-50-state overlay expansion structure (per-row source URL + verified date columns).
  • Product Recall Customer Outreach v1.1 — upstream source for the AUTOMATED-RECALL backflow-recertification block. The recall-tracker output's device_class field is the trigger; the audit-trail emit back into the recall tracker closes the compliance record loop.
  • Lead Service Line Customer Briefing v0.9 (shipped 2026-06-01) — upstream source for the LSL-program work-window tags consumed by the lead-handling endorsement column. The skill's tracker output drives the readiness recommendation.
  • Dispatch Brief Generator v1.2.A — downstream consumer of the LSL-Program Work-Window Readiness block. The morning brief reads the per-tech endorsement currency flag and surfaces it at the per-job header for any LSL-tagged job.
  • Vendor Price Increase Customer Communication v1.1 — cross-reference for the named-driver manufacturer list (Apollo Backflow, Westlake, SDR 35, OmegaFlex, Little Giant). When a named-driver manufacturer is also under recall, the recall-recertification block in v1.2.B fires first; the price-wave audit is downstream.

This skill is kept in sync with KRASA-AI/plumbing-ai-skills — updated daily from GitHub.