Ingest Substack CSV Workflow Expected schema Posts CSV columns (load-bearing in bold): id, slug, title, post date, views, opens, open rate, clicks, click through rate, sent , delivered, signups within 1 day, subscriptions within 1 day, unsubscribes within 1 day, signups, subscribes, shares, estimated value, engagement rate, reaction count, comment count Subscribers CSV (handled separately, never ingested row-by-row): email, created at, subscription type, activity tier, email opens last 30 days, email opens last 7 days. Schema drift If a load-bearing column is missing: - Write with the header…