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.
213 lines
12 KiB
Markdown
213 lines
12 KiB
Markdown
# 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
|
||
- [x] `fmcsa_carriers` table (migration 078)
|
||
- [x] Socrata data downloader (`scripts/workers/fmcsa_census_downloader.py`)
|
||
- [x] FMCSA QCMobile API integration (web key registered)
|
||
- [x] API route: `GET /api/v1/dot/lookup?dot=XXXXXX` — 7 compliance checks
|
||
- [x] API route: `GET /api/v1/dot/search?name=Acme` — name search
|
||
- [x] Frontend: `/tools/dot-compliance-check` — full site chrome, orange theme
|
||
- [x] Homepage: orange banner + "Five areas" with Trucking/DOT card
|
||
- [x] 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 ($49–99 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 ($99–199/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 ($149–299)
|
||
|
||
### 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 ($299–499)
|
||
|
||
### 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 ($399–799)
|
||
|
||
### 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, $149–499 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).
|