diff --git a/scripts/populate_new_carrier_startup_campaign.py b/scripts/populate_new_carrier_startup_campaign.py index eceaac2..e9eac57 100644 --- a/scripts/populate_new_carrier_startup_campaign.py +++ b/scripts/populate_new_carrier_startup_campaign.py @@ -204,25 +204,19 @@ def usable_email_filter(cols: set[str]) -> str: def startup_date_filter(cols: set[str], days: int) -> str: - # FMCSA add_date is text in the seed migration. It is commonly YYYY-MM-DD or - # MM/DD/YYYY depending on import source, so handle both and fall back to row - # creation date if parsing fails. - parts = [] - if "add_date" in cols: - parts.append( - """ - CASE - WHEN add_date ~ '^\\d{4}-\\d{2}-\\d{2}' THEN add_date::date - WHEN add_date ~ '^\\d{1,2}/\\d{1,2}/\\d{4}$' THEN to_date(add_date, 'MM/DD/YYYY') - ELSE NULL - END >= CURRENT_DATE - (%(recent_days)s::int * INTERVAL '1 day') - """ - ) - if "created_at" in cols: - parts.append("created_at >= NOW() - (%(recent_days)s::int * INTERVAL '1 day')") - if not parts: - return "TRUE" - return "(" + " OR ".join(parts) + ")" + # Use FMCSA's carrier add_date only. Do not fall back to our row created_at, + # because historical FMCSA carriers can be newly imported into our database. + if "add_date" not in cols: + raise RuntimeError("fmcsa_carriers.add_date is required for new-carrier targeting") + return """ + ( + CASE + WHEN add_date ~ '^\\d{4}-\\d{2}-\\d{2}' THEN add_date::date + WHEN add_date ~ '^\\d{1,2}/\\d{1,2}/\\d{4}$' THEN to_date(add_date, 'MM/DD/YYYY') + ELSE NULL + END + ) >= CURRENT_DATE - (%(recent_days)s::int * INTERVAL '1 day') + """ def has_order_exclusion_clause(order_cols: set[str]) -> str: