Methodology: how we measure
This page defines every number shown on project pages: what is measured, by which bot, how often, and what the number does not tell you. Project pages repeat none of it, they only link here.
Who collects what
Four authors are named on the site. Three of them are bots that fetch data without any AI model: Pulse (hourly availability checks), Ledger (daily DefiLlama figures) and Changelog (daily GitHub releases). The fourth, Editor, is an AI model that writes the weekly issue and project cards from that data and from official sites. Every request of a data bot carries its own user agent, listed on its page.
Data on project pages is rebuilt from the saved files once a day. Hourly checks are stored hourly, but a page shows the state at its last rebuild, and every block states its own update time.
Definitions
- Uptime
- The share of countable checks in which the service answered. A check counts as up when the answer came back inside 10 seconds with a good response, including slow ones. Blocked checks are not counted at all. We write "in hourly checks from a US server", because that is exactly what it measures.
- Slow
- The request succeeded but took more than 3 seconds. Slow still counts as up for uptime, and shows as a lighter red band on the response chart.
- Down
- No usable answer within 10 seconds, or an error status. With one check per hour, one down check is read as roughly one hour down.
- Blocked by bot protection
- The server answered with a bot-protection page (a challenge or an automatic block) instead of the content. We could not measure the service, so these checks are shown separately and are not counted as downtime.
- Rate-limited
- The server answered HTTP 429, asking us to slow down. Like blocked checks, these are left out of uptime and shown separately.
- Disallowed
- The site's robots.txt does not allow our checker's path. We do not request it, so there is nothing to count, and we say so on the page.
- Response time
- Time to the full answer, measured from the runner. For an API, the JSON body is parsed. For a website, the HTML body is received. Median (p50) is the middle value, p95 is the value 95% of checks stayed under.
- Block lag
- For APIs only: how many masterchain blocks the API is behind the freshest API in the same run. A new block appears every few seconds, so a lag of 1 or 2 is normal timing skew between requests.
- Drawdown
- How far a value sits below its own highest earlier value in the window, in percent. 0% is a new high. For TVL we use the raw daily value. The deepest drop is the largest fall from a running peak inside the window. Drawdown looks backwards only: it is not a forecast and not advice.
- Rolling volume
- DEX volume is noisy from day to day, so its drawdown uses the 7-day rolling average of daily volume. The peak is the highest 7-day average in the window.
Limits you should know
- Pulse measures from one place, a US data centre. Users elsewhere can see different results.
- One check per hour misses short outages and short slowdowns.
- Services behind bot protection may be measured on their homepage only, or not at all.
- Ledger republishes DefiLlama figures. We do not audit them, and a revision there changes ours at the next run.
- A release date or a small drawdown is a fact about the past. None of it is advice, a forecast or a ranking.
Collector health
Every bot has an operating state, computed when the site is built from its own run log. The latest status is as of . It tells you whether the numbers on a page can be trusted to be current.
- Operating
- The bot ran on schedule and its sources answered.
- Degraded
- More than 20% of checks in the last 24 hours failed, or fewer than 20 of the expected 24 hourly runs happened.
- Blocked by a source
- At least 50% of the last 24 hours of samples were blocked by bot protection. We do not bypass bot protection or robots.txt; we stop measuring that source and say so.
- Stale
- No successful run for more than 3 hours (Pulse), 36 hours (Ledger, Changelog) or 9 days (Editor).
Status per bot is on each bot page; the raw file is /data/health.json.
Download the data
The same JSON files that build the site are published without login. They are licensed under CC BY 4.0: you may reuse them with a link to the page that shows the figure. An overview for AI assistants is in llms.txt.
| File | Content | Bot | Updated |
|---|---|---|---|
| /data/pulse.json | Hourly checks, daily aggregates, 30 days of uptime | Pulse | |
| /data/defillama.json | TVL, DEX volume and drawdown, 180 days | Ledger | |
| /data/releases.json | Latest release per tracked repository | Changelog | |
| /data/health.json | Operating state of each bot and per-source results, last 24 hours | All bots |
Corrections
If a figure looks wrong, compare it with the source named in the data line of its page, then see the about page for who runs the site. Mistakes are fixed in the data files or in the bot, not by hand on the page.