Finished Affirm's DS loop about 6 weeks ago for a mid-level DS role on their risk team. Here's the breakdown by round since "DS interview" is vague and what Affirm actually tests is pretty specific.
SQL round (45 min) Two problems. First was medium-complexity: aggregation + window functions + a subtle join condition. Second was harder: I had to reconstruct user payment sequences from an event table and flag irregular patterns. Think "find users who missed a payment then made it up within 7 days" but with dirtier data.
They're using a real fintech schema for the problems. Not a generic e-commerce schema. Columns like loanid, installmentnumber, duedate, settleddate, delinquency_flag. This matters. Know what a loan lifecycle looks like in data.
Stats + probability round (45 min) Asked me to explain A/B test setup for a feature that affects merchant approval rates. Then: what if your randomization unit is merchants but your measurement unit is transactions? (Variance inflation, SUTVA violation territory.) Also a Bayesian vs. frequentist question about early stopping. This is legitimately rigorous. They hired some sharp people from academia.
One probability question: given historical default rates by FICO band, how would you update a model as new delinquency data arrives? Less a math problem, more testing whether you understand online learning concepts.
Case / business round (60 min) Not a PM case. More like: here's a metric that moved, diagnose it. They gave me a scenario where delinquency rate ticked up 0.3% over 4 weeks. Walk through your analysis. What segments do you look at? What external factors? What do you recommend?
This is where fintech domain knowledge matters. If you can't reason about credit risk at a high level, the case round will be rough.
No ML modeling round in my loop (risk DS role, not a modeling scientist role specifically). If you're interviewing for their ML platform or credit modeling team it's probably different.
Total: 4 rounds. Offer came about 9 days after the final interview.