screeners.projects, every figure as of as_of, the last complete day. Each measure has a column per window and aggregation, named <measure>_<window>_<aggregation>: fees_30d_sum is the fees of the 30 days ending on as_of, and tvl_7d_change is TVL on as_of against TVL seven days earlier.
Columns
- Keys
- Aggregations
- Measures
The two key columns, then one FLOAT64 column per measure, window and aggregation. Every row is a project in
dimensions.projects, so the join on project_id always matches.| Column | Type | Description |
|---|---|---|
as_of | TIMESTAMP | The last complete day, the same on every row. Every window ends on it. |
project_id | STRING | Project the row belongs to, such as aave; joins dimensions.projects. |
A window is
1d, 7d, 30d, 90d, 180d or 365d, and spans that many days ending on as_of, while the max_ columns read the whole history. Which aggregations a measure has follows its over_time in Metric definitions: only a measure whose over_time is sum has sum.| Column | What it holds |
|---|---|
<measure>_<window>_avg | Mean of the daily values over the window. |
<measure>_<window>_sum | Total of the daily values over the window. Flows only: the measures ticked under Sum. |
<measure>_<window>_change | A comparison of two aggregations: the value on as_of against the value one window earlier, as (now - then) / abs(then). Null when either value is missing or the earlier one is 0. |
<measure>_<window>_trend | A comparison of two aggregations: the window’s average against the average of the window before it, as (avg - prior) / abs(prior). Null unless the window before has a value on every one of its days, and null when its average is 0. |
<measure>_max_latest | The value on as_of. Null when there is none. |
<measure>_max_ath | The highest daily value over the project’s whole history. |
<measure>_max_atl | The lowest daily value over the project’s whole history. |
Every measure has the
avg, change, trend and max_ columns, and the flows also have sum. A distinct count such as daily_active_users or token_holders takes avg, never sum.| Measure | Sum | What it holds |
|---|---|---|
daily_active_addresses | ✗ | Distinct addresses transacting with the project’s contracts per day. |
monthly_active_addresses | ✗ | Distinct addresses transacting with the project’s contracts over a rolling 30 days. |
weekly_active_addresses | ✗ | Distinct addresses transacting with the project’s contracts over a rolling 7 days. |
monthly_active_developers | ✗ | Number of active developers. |
active_loans | ✗ | Value of loans outstanding at day end, in USD. |
fees_per_daily_active_user | ✗ | Average fees per user. |
revenue_per_daily_active_user | ✗ | Average revenue per user. |
assets_staked | ✗ | Value staked at day end, in USD. |
bridge_deposits | ✗ | USD value of assets held in the project’s bridge contracts on the main chain. |
bridged_supply | ✗ | USD value of the project’s stablecoins held outside the chain they were issued on. |
buybacks | ✓ | USD value of the project’s own tokens repurchased from the market. |
capital_deployed | ✗ | USD value of user deposits an asset manager has allocated into investments. |
code_commit_count | ✓ | Commits to public repositories. |
cost_of_revenue | ✓ | Direct supply-side cost of revenue. |
earnings | ✓ | What the project kept after costs, in USD. Goes negative when a project pays out more than it retains. |
notional_trading_volume_exchange | ✓ | Notional value of perpetual futures traded, attributed to the project whose matching engine settled the trade. |
expenses | ✓ | What the project spent, in USD: cost of revenue, token incentives and operating expenses, wherever each is reported onchain. |
fees | ✓ | Total fees users paid, in USD. Chain gas plus app trading fees. |
fees_supply_side | ✓ | The part of those fees the project passed on to the supply side, in USD. |
flash_loan_volume | ✓ | Total flash loan volume. |
gas_used | ✓ | Gas consumed by transactions calling the project’s contracts. |
gross_profit | ✓ | Revenue minus cost of revenue. |
notional_trading_volume_interface | ✓ | Notional value of perpetual futures traded, attributed to the project whose interface the trade was placed through. |
liquidation_volume | ✓ | USD value of debt covered in liquidations. |
liquidity_turnover | ✗ | Trading volume relative to liquidity. |
market_cap_circulating | ✗ | Market cap on circulating supply. |
market_cap_fully_diluted | ✗ | Market cap on maximum supply. |
open_interest | ✗ | USD notional value of all open positions on the project’s derivatives markets. |
operating_expenses | ✓ | Onchain operating expenses, excluding token incentives. |
outstanding_supply | ✗ | Stablecoin supply issued by the project and outstanding today, in USD. Stablecoin issuers only. |
price_to_fees_circulating | ✗ | Circulating market cap over annualized fees (trailing 30d run-rate). |
price_to_fees_fully_diluted | ✗ | Fully diluted market cap over annualized fees (trailing 30d run-rate). |
price | ✗ | Project token price in USD. |
price_to_revenue_circulating | ✗ | Circulating market cap over annualized revenue (trailing 30d run-rate). |
price_to_revenue_fully_diluted | ✗ | Fully diluted market cap over annualized revenue (trailing 30d run-rate). |
revenue | ✓ | Fees the project kept, in USD. |
staking_market_cap | ✗ | USD value of the native token staked to secure the chains the project operates, summed across them. |
take_rate | ✗ | Share of fees the project retains as revenue. |
token_incentives | ✓ | Value of the project’s own token paid out as rewards, in USD. |
token_supply_circulating | ✗ | Circulating token supply. |
token_supply_maximum | ✗ | Maximum token supply. |
token_trading_volume | ✓ | Trading volume of the project’s own token. |
token_turnover_circulating | ✗ | Token trading volume over circulating market cap. |
token_turnover_fully_diluted | ✗ | Token trading volume over fully diluted market cap. |
token_holders | ✗ | Addresses holding the project’s token. |
trade_count | ✓ | Number of trades executed. |
tradeable_asset_count | ✗ | Number of tokens tradeable on the exchange. |
tradeable_pair_count | ✗ | Number of token pairs available for trading on the exchange. |
trading_volume | ✓ | Cash value of the trades that took place, in USD. |
trade_size_average | ✗ | Average trading volume per trade. |
trading_volume_per_daily_active_user | ✗ | Average trading volume per user. |
transaction_count_contracts | ✓ | Transactions calling the project’s contracts. |
transaction_volume | ✓ | USD value of transactions processed by the project. |
transfer_volume | ✓ | USD value of assets moved through the project’s bridge transfers, counted once per transfer. |
treasury | ✗ | Value the project held at day end, in USD, its own token included. |
treasury_net | ✗ | Value the project held at day end excluding its own token, in USD. |
tvl | ✗ | Value locked in the project’s contracts at day end, in USD. |
daily_active_users | ✗ | Distinct addresses that used the project that day. A HyperLogLog estimate, not a sum of the daily series. |
monthly_active_users | ✗ | Distinct addresses that used the project in the trailing 30 days. A HyperLogLog estimate. |
weekly_active_users | ✗ | Distinct addresses that used the project in the trailing 7 days. A HyperLogLog estimate. |
Sample queries
- One project
- Top 25 by 30-day fees
- Biggest 7-day TVL moves
- Market cap against yearly revenue
Every column of one row shares the same
as_of, so the figures read together.select
as_of,
tvl_max_latest,
tvl_7d_change,
fees_30d_sum,
fees_30d_trend
from `screeners.projects`
where project_id = 'aave'
fees_30d_sum is the total of the 30 days ending on as_of. The join to dimensions.projects on project_id adds the name.select
projects.name,
screener.fees_30d_sum,
screener.revenue_30d_sum,
screener.fees_30d_trend
from `screeners.projects` as screener
join `dimensions.projects` as projects
using (project_id)
where screener.fees_30d_sum is not null
order by screener.fees_30d_sum desc
limit 25
tvl_7d_change compares TVL on as_of with TVL seven days earlier, as a fraction. The TVL floor keeps a small base from dominating the ranking.select
projects.name,
screener.tvl_max_latest,
screener.tvl_7d_change
from `screeners.projects` as screener
join `dimensions.projects` as projects
using (project_id)
where screener.tvl_max_latest > 10000000
and screener.tvl_7d_change is not null
order by abs(screener.tvl_7d_change) desc
limit 25
revenue_365d_sum is the revenue of the 365 days ending on as_of, and market_cap_circulating_max_latest the latest circulating market cap. Their ratio is a price-to-sales multiple.select
projects.name,
screener.market_cap_circulating_max_latest,
screener.revenue_365d_sum,
safe_divide(
screener.market_cap_circulating_max_latest,
screener.revenue_365d_sum
) as price_to_sales
from `screeners.projects` as screener
join `dimensions.projects` as projects
using (project_id)
where screener.revenue_365d_sum > 1000000
and screener.market_cap_circulating_max_latest > 0
order by price_to_sales
limit 25