Every import flow we tested started the same way: the person opens their brokerage app on their phone, and stalls. The CSV export exists, four screens deep, behind a login they have on a different device.
So the first-class path is a screenshot. Vision reads the positions, we resolve the tickers, and you confirm a table before anything is saved. PDF statements work the same way. Connecting an institution directly and typing positions in by hand are both there for people who want them.
Confirmation is not a formality
Extraction is fallible, so the review step shows what was read, what it was matched to, and what it could not resolve. Nothing enters your portfolio without you having looked at it once.