What Project P&L Measures
A project's money figures are built from two things: the orders SEND executed for that project, and the live value of the project token its wallet set still holds. Buys contribute what they spent, sells contribute what they returned, and holdings are marked at the current price.
Fees and volume-campaign profit share are tracked separately and are deliberately not folded into a project's realized or unrealized P&L.
The Formulas
Every figure on a project surface comes from this set. They are computed server-side in native SOL, with USD counterparts alongside.
- Invested -- the sum of the amount spent across the project's buy orders
- Returned -- the sum of the amount received across the project's sell orders
- Value -- what the wallet set's holdings of the project token are worth right now
- Realized P&L -- returned minus invested
- Unrealized P&L -- value minus what is still committed, i.e. value - (invested - returned)
The Number You See Is Mark-to-Market
The figure labelled "P&L" on every project surface is the unrealized, mark-to-market total: what your holdings are worth plus what you have already taken out, less what you put in. The percentage beside it is that figure over your invested amount.
This matters because realized P&L on its own reads a flat -100% for anything you have not sold yet: with nothing returned, returned minus invested is exactly the amount invested, negated. The interface deliberately does not show that number as your P&L.
Where It Appears
The same three figures -- Invested, Value and P&L -- appear at four scales, always preferring USD and falling back to the native SOL amount when no USD price is available.
- Project card -- Value as the headline, the signed P&L and percentage beneath it, and Invested as the secondary stat
- Projects list summary cards -- Projects, Invested, Value and P&L aggregated across the full filtered set
- Project page header -- Invested, Value and P&L, colour-coded, collapsing to icons on narrow screens and to P&L alone on the smallest
- Fullscreen chart -- the same three figures in USD alongside the price
How Value Is Computed, and When It Is Unknown
Value is computed by reading every wallet in the project's set, summing their raw balances of the project token, scaling by the mint's decimals and pricing the result. The computed value is memoised for 20 seconds per wallet-set and token pair, so a page that shows the same project several times does not re-read every wallet balance each time.
The computation refuses to guess. Holdings of exactly zero are a known zero. If the mint's decimals cannot be resolved, the value is reported as unknown rather than priced at the wrong scale. If no price record exists, the value is unknown rather than zero -- and the USD figures are omitted from the response entirely, which is why the interface falls back to SOL instead of showing $0.00.
Freshness
The REST response is the source of truth, and the project page refetches it on its own cadence. On top of that, a live value feed pushes recomputed money -- invested, returned, value, realized and unrealized, with their USD counterparts -- to the owner of the project as prices and balances move, debounced so a burst of ticks does not become a burst of frames.
That feed is an accelerator, not a guarantee: it runs only when the backend has every valuation dependency available, and it never writes a project's status, which travels on a separate feed. If it is silent, the figures still refresh over REST.
Project P&L Is Not Portfolio P&L
SEND computes money in two independent places. A project's figures come from that project's own executed orders, with USD taken from each order's value at the time it traded. The dashboard's portfolio and holdings figures come from a separate per-wallet lot engine that marks holdings against the price feed and is scoped to a wallet across every mint, not to a project.