DOT intake: review-only (no telecom entity step), email verifier,

updated flagger excluding 4+ year stale carriers

- Intake manifest: DOT services use ["review"] only, skipping the
  telecom entity step with FRN/USAC fields
- Flagger: excludes 4+ year overdue carriers from campaign (spam
  trap risk). 18,277 safe targets from 100K records.
- Email verifier: self-hosted MX + SMTP verification tool

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
justin 2026-05-29 00:29:28 -05:00
parent 5bf364aced
commit e67df3c4c3
3 changed files with 265 additions and 16 deletions

View file

@ -106,21 +106,21 @@ def flag_carriers(dry_run: bool = False) -> dict:
# MCS-150 check
if mcs150_parsed:
if mcs150_parsed < FOUR_YEARS_AGO.date():
# Skip severely overdue (4+ years) — likely abandoned, spam trap risk
flags.append("mcs150_severely_overdue")
issues.append(f"MCS-150 severely overdue (last filed {mcs150_parsed})")
severity = "critical"
stats["mcs150_severe"] += 1
stats["mcs150_overdue"] += 1
# Mark as NOT campaign eligible — too old
severity = "stale"
elif mcs150_parsed < TWO_YEARS_AGO.date():
flags.append("mcs150_overdue")
issues.append(f"MCS-150 overdue (last filed {mcs150_parsed})")
issues.append(f"MCS-150 biennial update is overdue — last filed {mcs150_parsed}. Required every 2 years. Fines up to $1,000/day.")
severity = "major" if severity == "none" else severity
stats["mcs150_overdue"] += 1
else:
# No date — can't determine, flag as unknown
# No date — skip for campaign (can't verify recency)
flags.append("mcs150_unknown")
issues.append("MCS-150 filing date unknown — verify at FMCSA Portal")
severity = "minor" if severity == "none" else severity
severity = "stale"
# For-hire carrier — needs BOC-3, UCR, insurance
if for_hire:
@ -153,9 +153,10 @@ def flag_carriers(dry_run: bool = False) -> dict:
if for_hire and "mcs150_overdue" in flags:
severity = "critical"
actionable_flags = [f for f in flags if f != "zero_fleet"]
# Exclude stale/severely overdue from campaign (spam trap risk)
actionable_flags = [f for f in flags if f not in ("zero_fleet", "mcs150_severely_overdue", "mcs150_unknown")]
deficiency_count = len(actionable_flags)
campaign_eligible = deficiency_count > 0 and bool(email)
campaign_eligible = deficiency_count > 0 and bool(email) and severity != "stale"
if campaign_eligible:
stats["campaign_eligible"] += 1