Build notes
Product and engineering decisions behind Grantwise.
A serious builder note for reviewers: what the product is trying to solve, where the model is intentionally simple, and how the implementation is structured.
Try the checkerWhy this exists
Most equity calculators show a single optimistic number. Grantwise was built to make the downside cases as visible as the upside, because the acqui-hire scenario is more common than the IPO scenario and candidates rarely see it modelled clearly.
The goal is not to predict the future. It is to make the missing assumptions obvious enough that a candidate can ask better questions before treating equity as compensation.
The calculator architecture
The entire calculation lives in a single pure TypeScript module, lib/equity-calculator.ts, with no side effects and no external dependencies. All inputs flow in, a result object flows out.
That made unit testing straightforward. Every scenario, edge case, and tax path can be tested in isolation without mocking a UI, which is important because the calculator is the product.
The checker state is base64-encoded into the URL so results are fully shareable without a database. For a stateless client-side tool, that is the right tradeoff: people can send an analysis link, but the app does not need accounts or server-side persistence.
The three decisions that shaped the model
The model shows four scenarios instead of one because a single number implies false precision. Showing acqui-hire, acquisition, modest IPO, and great IPO forces the user to think probabilistically, which is the right mental model for startup equity.
Liquidation preference is an explicit input because most calculators ignore it entirely. In any exit below 3-4x the last valuation, the preference stack is often the single largest driver of whether common shareholders receive anything, so making it visible and defaulting it to a realistic $15M was intentional.
AMT is shown separately from income tax because ISO holders can face AMT liability at exercise even if the company never exits. Surfacing AMT exposure as a distinct number builds trust with users who know what it means, and teaches users who do not.
What the Grantwise Score is and isn't
The score is not a prediction of whether the company will succeed. It is a structured way to evaluate whether the offer has enough upside to be worth negotiating harder, and whether the input quality is high enough to trust the output.
What I'd build next
- Side-by-side offer comparison with a delta view.
- Round-by-round cap table modelling where the user can add each financing event.
- A questions-to-ask generator that outputs negotiation prompts specific to the user's score breakdown.