A token fund's real position lives in a folder of PDFs, not in a spreadsheet. Turning that folder into one reconcilable table is a mechanical job with four predictable failure points.
Warrants counted as invested capital. An unexercised warrant is optionality, not money. Adding it to the "amount invested" column inflates every downstream number.
Vesting start assumed. Two contracts with identical "12 month cliff, 24 month vest" can vest three years apart if one starts at closing and the other at TGE.
Side letters skipped. They are short, they look administrative, and they are where the MFN lives. Read them or the table is wrong.
Duplicates from follow-ons. The same investor can appear three times across a vintage. Roll up by legal entity, not by the name on the cover page.
One workbook. One row per document, with instrument type, investor entity, amount, cap, discount, allocation, unlock, cliff, vesting, pro-rata, MFN, governing law — plus two columns most people leave out: the confidence for each field, and the clause it came from.
The second one is what makes the table auditable. When someone asks "where did this cap come from" six months later, the answer is a section number, not a memory.
The job is mechanical: read the same label, find the same clause, put the value in the same column. It takes about twenty minutes per document by hand, which is why funds with forty deals never finish it. It is also exactly the kind of work that should be done by a machine and checked by a human, not the other way round.
Related: SAFT fields · warrants vs SAFTs