Sitemap

What Did You Actually Make?

6 min readOct 21, 2026

--

The Profit and Loss widget reads your whole Algorand history, including swaps, pools, farms, and NFTs, and tells you where it is not sure.

Press enter or click to view image in full size
The Profit and Loss widget: realized, unrealized, income and fees, then every asset.

A portfolio tracker tells you what you hold. Most people open one to find out whether they are up or down, and by how much.

Today we are releasing the Profit and Loss widget. Give it an address, or a bundle of up to twenty, and it works out for every asset what you paid, what you sold for, what you still hold, and what that is worth now. It keeps realized and unrealized profit, income and fees apart.

You can try it today, free. Scroll to the end for the steps.

The Hard Part Is the Input

The arithmetic is small: take what a unit cost, take what it fetched, subtract. Any spreadsheet does it. Adding liquidity sends two assets away and returns a receipt. Depositing into a farm sends a token away and hands back nothing at all. A tool that reads those as sales shows a loss that never happened, and it does so on day one, to every DeFi user.

We have been decoding those positions for years, because the true value of a portfolio depends on it. Every transaction is already sorted into swaps, liquidity added and removed, deposits into and withdrawals from dApps, rewards, NFT purchases and sales, transfers, costs and fees. Every past event is already priced, from the pools that held the asset at that moment. The widget is built on that, so its numbers come from the same rows as your tax CSV.

The Rules, in Plain Words

  • Average cost is the default. Units leaving an asset take the average cost of the units you held at that moment.
  • Adding liquidity or entering a farm is not a sale. The cost basis moves with your tokens into the position and comes back with them.
  • Rewards, airdrops, and interest are income. Valued when you received them, and that value becomes their cost basis. They have their own line, apart from trading.
  • A transfer between your own addresses changes nothing. The units move and keep their cost.
  • A transfer to anyone else is a withdrawal at cost. Nothing is realized. A transfer in from outside arrives at its market value that day.
  • Fees are expenses. Network fees and costs are counted, and fees paid to buy something go into what it cost.

The same rules are written out on a public methodology page, and they are the last page of the PDF report.

It Says When It Is Not Sure

Every P&L tool gets some history wrong. This one tells you which part.

An issues view lists every flag in one place. An asset sold for more than the history shows, a deposit with no known cost, a holding with no price. Each one names its effect on the totals and links to the asset.

Press enter or click to view image in full size
The issues view: each flag says how much it moves the totals, and links to the asset.

Unpriced is not zero. An asset that never had a market, usually an unsolicited token, counts for nothing and is kept out of the warnings. A holding with no current price is left out of the value, and says so.

Assets that need no attention stay out of the way. Holdings with a price show. Sold-out, no-market, and hidden assets sit behind “Show N”, and you can hide any asset and bring it back. Hiding changes the display only. The totals still count it.

After a reprocess, you are told what moved. When a classifier fix changes your totals, a “What changed” block shows by how much, per asset, against the previous result.

Press enter or click to view image in full size
After a reprocess, “What changed” lists the assets whose figures moved, and by how much.

You can correct it. If you bought an asset on an exchange and withdrew it, the widget does not know what you paid. Enter the cost, and it replaces the market value on arrival. Set a value for a holding with no market price, and it is marked “set by you”. Name your other wallets, and a transfer to one is treated as yours. None of it touches the underlying transactions.

NFTs

A bought NFT carries its price, fees, and royalties as its cost. A purchase of several NFTs in one group splits the cost between them.

Get ASA Stats’s stories in your inbox

Join Medium for free to get updates from this writer.

A held NFT is valued at the portfolio’s appraisal, capped by the lowest price you list it for yourself. If no defensible price exists, it shows no market rather than a made-up floor. NFTs are labelled “appraised” in the table and left out of the chart and period figures, because they have no history to chart.

Professional and above can leave NFTs out of the totals altogether.

Pick Your Method, and Your Currency

Average cost suits most readers, and it is what every tier gets. Cluster adds FIFO, LIFO, and HIFO.

Figures follow the currency in your profile, USD or EUR, with euros converted at the European Central Bank’s rate for the day of each event. Asastatser and above can also switch to ALGO, which answers a different question: whether you beat holding ALGO.

Alerts From Your Own Cost

Every row in the table has an Alert me at control: break-even, +25%, +50%, −20% or a number of your own. It creates an ordinary price alert with the threshold worked out from your average cost, so price alerts from your cost come with any account.

Asastatser and above can also watch for a large outflow from a bundle, and for a collection floor moving under an NFT they hold.

What You Get, Tier by Tier

  • Signed in, no subscription: 1 address, linked to you; summary, per-asset table, issues view, and What changed; alerts from your cost
  • Intro: 1 address, any; the same as above
  • Asastatser: 1 address, any; adds year-to-date, 30-day and 7-day periods, the ALGO view, event drill-down with explorer links, winners and losers, your own cost corrections
  • Professional: 5 addresses; adds chart, drawdown and concentration, liquidity-aware valuation, LP and farm analytics, NFTs in or out of the totals
  • Cluster: 20 addresses; adds CSV and events CSV, the PDF report, FIFO, LIFO and HIFO

The address counts are totals across everything you have processed, so a bundle of twenty and four bundles of five draw on the same allowance. Removing a bundle frees its addresses.

Liquidity-aware valuation prices a holding by what selling it would fetch from its pools now, instead of the quoted spot price, which matters in a thin market.

A signed-in reader without a subscription gets one address, and it has to be linked to their account with a 0 ALGO signature.

Not Tax Advice

This is not tax advice. The methodology page and the last page of the PDF report both say so. Tax rules differ between countries, and some require a particular method or treatment of income. The CSV export is there for your accountant, and the methodology page says exactly what we did, so they can tell you whether it fits.

Go and See What You Made

Four steps, all free:

  1. Sign in. Username and password, one of five social accounts, or an Algorand wallet: Pera, Defly, Lute, Kibisis, Exodus. An email address is optional, and we mean optional: the form does not ask for one.
  2. Connect your address. Signing a 0 ALGO message proves you hold it. It never touches the chain and costs nothing.
  3. Open the P&L button on your address page and start the processing. Leave it running. The first pass over a long history takes a while, and the page shows how far it is.
  4. Read the issues view first. It tells you how much to trust the rest.

Tell us where a number looks wrong; a transaction ID is all we need. Find us on Discord, X, Reddit, LinkedIn, and GitHub, where a bug report is a conversation.

--

--

ASA Stats
ASA Stats

Written by ASA Stats

ASA Stats evaluates and presents ASA and NFT price information on the Algorand blockchain. Portfolio Tracker, API and Feature-Driven Development. Check it out.