new-site/docs/fmcsa-trucking-plan.md
justin 3325259af7 fix(email): drop @TrackLink from per-subscriber CTAs (404 + collapse bug)
Listmonk @TrackLink registers ONE static URL per tracked link and points
every recipient's /link/<uuid> redirect at it. On per-subscriber hrefs
({{ lp_link }}, ?dot=, ?npi=, ?clia=) this is doubly broken:
 - the registered links.url was captured before the {{ lp_link }} token
   rendered, yielding /order/slug&utm_source=... (first &, no ?) -> 404
 - even when valid it collapses every carrier/provider onto the first
   subscriber's dot/npi/clia value

Real human clicks are already tracked via Umami campaign-click (bot
filtered), so Listmonk link tracking here is redundant and destructive.

Stripped @TrackLink from per-subscriber CTAs:
 - scripts/create_deficiency_source_campaigns.py (_cta, _dot_check_cta)
 - data/trucking_campaigns/{ucr,ifta}_*.html
 - data/hc_campaigns/*.html (10 templates)

Static CTAs (e.g. CRTC ?code= order link) keep @TrackLink (safe).
Live fix to the 10 broken registered links.url rows applied separately
(first & -> ?), backup in listmonk.pw_links_dkim_fix_bak_20260622.

Docs: new runbook incident section + corrected the disproven
'use @TrackLink on all CTAs' guidance in fmcsa/hc plans.
2026-06-22 17:01:39 -05:00

12 KiB
Raw Permalink Blame History

FMCSA / Trucking Compliance Services — Product Plan

Market Overview

  • 2,077,308 total motor carriers in FMCSA census
  • 1,584,234 with email addresses (76%)
  • 29,113 with overdue MCS-150 (biennial update >2 years old) and email
  • 97% of carriers have fewer than 20 trucks — small operators who can't be bothered with paperwork

Phase 1: Compliance Checker + Data Pipeline (DONE)

Completed

  • fmcsa_carriers table (migration 078)
  • Socrata data downloader (scripts/workers/fmcsa_census_downloader.py)
  • FMCSA QCMobile API integration (web key registered)
  • API route: GET /api/v1/dot/lookup?dot=XXXXXX — 7 compliance checks
  • API route: GET /api/v1/dot/search?name=Acme — name search
  • Frontend: /tools/dot-compliance-check — full site chrome, orange theme
  • Homepage: orange banner + "Five areas" with Trucking/DOT card
  • API access restricted (nginx — public endpoints only, admin blocked)

Current Checks (from FMCSA QCMobile API)

Check Source Status
Operating status (allowed to operate Y/N) FMCSA API Live
MCS-150 biennial update (overdue detection) Census + API Live
Insurance filing (BIPD, cargo, bond) FMCSA API Live
Safety rating (S/C/U) FMCSA API Live
Operating authority (common/contract/broker) FMCSA API Live
Out-of-service rate vs national average FMCSA API Live
Crash record (fatal/injury/total) FMCSA API Live

Phase 2: Additional Compliance Checks

UCR (Unified Carrier Registration) — HIGH PRIORITY

  • What: Annual registration + fee ($59$7,511 based on fleet size)
  • Who: All interstate for-hire carriers, brokers, freight forwarders
  • Penalty: Vehicles placed out of service at roadside inspection
  • Data source: ucr.gov — no public API, requires scraping individual lookups
  • Implementation: Playwright scraper to check UCR status by DOT#, add as check in the compliance checker
  • Revenue opportunity: UCR filing service ($4999 per carrier per year)

IFTA (International Fuel Tax Agreement) — MEDIUM

  • What: Quarterly fuel tax returns + decals for multi-jurisdiction carriers
  • Who: Carriers operating in 2+ IFTA jurisdictions
  • Penalty: Fines + inability to operate in non-base jurisdictions
  • Data source: State-level — no central database. Would need to ask during intake.
  • Implementation: Informational check based on carrier operation type (interstate = likely needs IFTA)
  • Revenue opportunity: IFTA quarterly filing service ($99199/quarter)

IRP (International Registration Plan) — MEDIUM

  • What: Apportioned plates/registration for multi-state CMV operation
  • Who: Interstate carriers (vehicles >26,000 lbs or 3+ axles)
  • Data source: State-level — no central database
  • Implementation: Informational check based on carrier type
  • Revenue opportunity: IRP registration service ($149299)

Drug & Alcohol Testing Program — HIGH VALUE

  • What: DOT-mandated random drug/alcohol testing pool, written policy, MRO, DER
  • Who: Every carrier with CDL drivers (basically everyone)
  • Penalty: Driver disqualification, carrier placed out of service, fines up to $16,000/violation
  • Data source: No public database — self-certified compliance
  • Implementation: Not a "check" — this is a service offering. Sell enrollment in a testing consortium + written policy + compliance binder.
  • Revenue opportunity: $199/year per carrier (consortium enrollment + policy) — RECURRING
  • Partners needed: Third-party testing consortium (e.g., DISA, US Drug Testing Labs, National Drug Screening)

New Entrant Safety Audit Prep — MEDIUM VALUE

  • What: New carriers must pass an FMCSA safety audit within 18 months
  • Who: Carriers with DOT authority issued in the last 18 months
  • Data source: SAFER shows add_date in census — can filter for recent registrations
  • Implementation: Filter census for add_date within last 18 months, target with audit prep service
  • Revenue opportunity: Safety audit prep package ($299499)

ELD (Electronic Logging Device) — LOW PRIORITY

  • What: Must use FMCSA-registered ELD for hours of service tracking
  • Who: Nearly all CMV operators (exemptions for short-haul, older vehicles)
  • Data source: FMCSA publishes registered ELD device list, but no per-carrier compliance data
  • Implementation: Informational only — cannot verify compliance externally
  • Revenue opportunity: Low — ELD compliance is mostly handled by device vendors

Hazmat (HM-232 / PHMSA) — NICHE

  • What: PHMSA registration + security plan for hazmat carriers
  • Who: Carriers hauling hazardous materials (hm_flag=true in census)
  • Data source: PHMSA has lookup, not in FMCSA API. Census has hm_flag field.
  • Implementation: Flag hazmat carriers and offer PHMSA registration check
  • Revenue opportunity: Hazmat compliance package ($399799)

State-Level Permits & Registrations

State Filing States Data Available Priority
Overweight/oversize permits All 50 State DOT websites Low — too fragmented
State motor carrier tax ~12 states (CA, OR, NM, NY, KY, etc.) State comptroller sites Medium — target high-volume states
State DOT registration Varies State DMV/DOT systems Low
Unified Carrier Registration (state enforcement) 41 participating states ucr.gov High — covered in UCR above
CARB (California Air Resources Board) CA only CARB TRU lookup Medium — big market, one state
Oregon weight-mile tax OR only ODOT system Low
New York HUT (Highway Use Tax) NY only NY DTF system Low
Kentucky KYU / weight distance tax KY only KY DOR system Low
New Mexico weight distance tax NM only NM MVD system Low

Recommended state-level focus: California (CARB) — largest market, real enforcement, public lookup available.

Phase 3: Service Catalog & Pricing

Services to Add to compliance-orders.ts

Service Slug Price Gov Fee Notes
MCS-150 Biennial Update mcs150-update $79 $0 Filed online via SAFER
BOC-3 Process Agent Filing boc3-filing $149 $0 Designate PW as process agent in all 50 states
UCR Annual Registration ucr-registration $79 $59$7,511 Fee based on fleet size
New Operating Authority (MC#) mc-authority $499 $300 FMCSA application fee
DOT Number Registration dot-registration $149 $0 New USDOT number
Drug & Alcohol Program Setup dot-drug-alcohol $199/yr $0 Consortium + policy + DER — RECURRING
Safety Audit Preparation safety-audit-prep $399 $0 New entrant audit prep package
DOT Full Compliance Bundle dot-full-compliance $599 varies MCS-150 + BOC-3 + UCR + D&A program
IFTA Quarterly Filing ifta-quarterly $99/qtr varies State fuel tax return
Hazmat/PHMSA Registration phmsa-registration $499 $0$2,575 HM-232 registration

Pricing Strategy

  • MCS-150 at $79 is the loss leader / entry point (like CPNI for telecom)
  • BOC-3 at $149 is recurring — carrier needs it as long as they operate
  • Drug & Alcohol at $199/yr is the real recurring revenue play
  • Full bundle at $599 is the upsell for carriers with multiple deficiencies

Phase 4: Email Campaign

Target Segmentation

Segment Count Criteria Message
Severely overdue (4+ years) ~21,000 mcs150_parsed < 2022, has email "Your USDOT may be deactivated"
Overdue (2-4 years) ~8,000 mcs150_parsed 2022-2024, has email "MCS-150 biennial update is past due"
Due soon (expiring 2026) ~hundreds of thousands mcs150_parsed in 2024 "Your MCS-150 update is coming due"
New entrants (first 18 months) ~50,000 add_date > 18 months ago "Safety audit deadline approaching"
Hazmat carriers ~100,000+ hm_flag=true "PHMSA registration compliance check"

Campaign Approach

  • Same Listmonk infrastructure as FCC campaigns
  • Warmup schedule (200/day → ramp up)
  • Link to DOT compliance checker with ?dot={DOT#}&email={email} pre-filled
  • Use @TrackLink ONLY on static CTAs (same URL for all recipients). NEVER on a per-subscriber href such as {{ lp_link }} / ?dot={DOT#} — Listmonk registers one static URL per tracked link and would 404 + collapse every carrier onto one DOT (see runbook "Jun 22 2026 — @TrackLink on per-subscriber CTAs"). Per-subscriber links render directly; human clicks are tracked via Umami campaign-click.
  • Free compliance check as the CTA (not direct sell)

Phase 5: Automation (Future)

Playwright Filing Automation

  • MCS-150 updates via SAFER web portal
  • UCR registration via ucr.gov
  • BOC-3 filing via FMCSA L&I system
  • MC authority application via FMCSA URS

Recurring Revenue

  • Annual UCR registration reminders + filing
  • Biennial MCS-150 update reminders + filing
  • Drug & alcohol consortium annual renewal
  • BOC-3 process agent renewal

Technical Architecture

Data Flow

Socrata API (census) → fmcsa_carriers table (2M records)
                              ↓
FMCSA QCMobile API ← /api/v1/dot/lookup (real-time per carrier)
                              ↓
                     /tools/dot-compliance-check (frontend)
                              ↓
                     Listmonk campaigns (email outreach)
                              ↓
                     Order flow → worker handlers → filing

Cron Jobs Needed

  • Daily: FMCSA census delta download (Socrata API)
  • Weekly: UCR status scrape for flagged carriers
  • Monthly: New entrant identification (recent DOT registrations)

Database Tables

  • fmcsa_carriers — census data (migration 078)
  • fmcsa_compliance_check_log — search analytics (TBD)
  • dot_compliance_orders — or reuse compliance_orders with new service slugs (TBD)

Competitive Landscape

Existing DOT compliance service providers

  • DOT Compliance Group (dotcompliancegroup.com) — full service, unknown pricing
  • J.J. Keller (jjkeller.com) — established, enterprise-focused, expensive
  • Foley Carrier Services (foleyservices.com) — insurance + compliance, big players
  • FMCSA Registration (fmcsaregistration.com) — direct competitor, $149499 per service
  • Moving Authority (movingauthority.com) — MC authority specialists
  • DOT Registrations (dotregistrations.org) — similar pricing model

Our Differentiator

  • Free compliance checker tool — nobody else offers this as a lead magnet
  • AI-powered deficiency detection at scale (same as FCC model)
  • Email outreach to 1.5M+ carriers with specific deficiency data
  • Lower pricing through automation (no manual data entry)
  • Bundled services (telecom + trucking for carriers that do both)

IRP filing — known follow-ups (2026-06)

  • POA signer name/title on auto-signed orders: dot-compliance-remediation orders auto-sign the state-trucking authorization without capturing the signer's printed name/title, so the POA PDF attached to IRP submissions has a blank printed-name/title (the date IS rendered). We are sending these as-is to see if base states accept them; if a state rejects for an incomplete POA, capture signer_name/signer_title in the remediation auth flow (or re-issue the POA for signature) before submitting. Code: state_trucking_authorization.py (template has name/title/date fields + a date anchor), esign_stamp.py (stamps signature + date).