Skip to main content

Point-in-Time Flows

Overview​

Point-in-time ETF flow metrics measure the same on-chain deposit, withdrawal, net-flow, and transfer-count activity as the standard ETF flow metrics, but attribute that activity using only the addresses Talos had identified as belonging to the entity at the time. They are designed for historical analysis and backtesting where restating past intervals with newly discovered addresses would introduce look-ahead bias.

Every standard ETF flow metric has a point-in-time equivalent. Insert Pit immediately before the unit suffix (Ntv, USD, or Cnt) in the metric name. For example, BlackRock deposits in native units map from FlowInBLKNtv to FlowInBLKPitNtv. Point-in-time flow metrics are available at 1d and 1h frequency.

At a Glance​

Data typeEntitiesFrequency / cadenceUnitPrimary endpoint
MetricAssets1d, 1hNative units, USD, transfer count/timeseries/asset-metrics

Metrics​

Each standard ETF flow metric has a point-in-time counterpart, named by inserting Pit immediately before the unit suffix (Ntv, USD, or Cnt):

Standard metricPoint-in-time metricDescription
FlowIn{Entity}Ntv / FlowIn{Entity}USDFlowIn{Entity}PitNtv / FlowIn{Entity}PitUSDDeposits to the entity. See Deposits.
FlowOut{Entity}Ntv / FlowOut{Entity}USDFlowOut{Entity}PitNtv / FlowOut{Entity}PitUSDWithdrawals from the entity. See Withdrawals.
FlowNet{Entity}Ntv / FlowNet{Entity}USDFlowNet{Entity}PitNtv / FlowNet{Entity}PitUSDNet flows for the entity. See Net Flows.
FlowTfrIn{Entity}CntFlowTfrIn{Entity}PitCntDeposit transfer count for the entity.
FlowTfrOut{Entity}CntFlowTfrOut{Entity}PitCntWithdrawal transfer count for the entity.
Sply{Entity}Ntv / Sply{Entity}USDSply{Entity}PitNtv / Sply{Entity}PitUSDSupply held by the entity. See Exchange Traded Fund Supply.
TxEtfCntTxEtfPitCntTransaction count for ETFs. See Transaction Count.

Replace {Entity} with the entity short code from the ETF coverage table. For example, BlackRock deposits in native units are FlowInBLKPitNtv, Grayscale withdrawals in native units are FlowOutGSCPitNtv, and VanEck net flows in native units are FlowNetVANPitNtv. USD variants follow the same pattern (FlowInBLKPitUSD, FlowOutGSCPitUSD, and so on).

Aggregate metrics use Etf for all ETFs in place of {Entity} — for example, FlowInEtfNtv maps to FlowInEtfPitNtv, and SplyEtfUSD maps to SplyEtfPitUSD. Transfer-count aggregates follow the same rule (FlowTfrFromEtfCnt → FlowTfrFromEtfPitCnt, FlowTfrToEtfCnt → FlowTfrToEtfPitCnt).

Metrics whose names include Incl — the variants that include ETF-to-ETF transfers — place Pit before Incl rather than before the unit suffix. For example, FlowInEtfInclNtv maps to FlowInEtfPitInclNtv, and FlowTfrFromEtfInclCnt maps to FlowTfrFromEtfPitInclCnt.

Methodology​

Standard and point-in-time ETF flow metrics answer the same question — how much value is held, and how much value moved into or out of an entity over an interval — but they differ in when an address counts as belonging to the entity.

Standard vs. point-in-time​

Standard metricsPoint-in-time metrics
Address setAll addresses currently known to belong to the entity. For example, a metric value for the date 2021-01-01 would include all addresses known at the current date, including addresses that had been discovered after 2021-01-01.Only addresses known to belong to the entity at the time of the interval. For example, a metric value for the date 2021-01-01 would only include addresses that had been discovered on or prior to 2021-01-01.
History startFrom each address's first non-zero balanceFrom each address's date of discovery as an entity address
RestatementPast values can change when new entity addresses are discovered later. This is done on an ad hoc basis and customers will be informed as and when any changes are made.Past values are fixed; newly discovered addresses affect only intervals on or after their discovery date
Best forCurrent monitoring and analysis using the fullest available address coveragePoint-in-time-correct backtests, research, and any workflow that must not inherit future address discoveries

For example, compare BlackRock ETF supply in native units:

MetricDescription
SplyBLKNtvThe sum in native units held by BlackRock at the end of that interval. Metric values reflect activity of addresses currently known to belong to the entity, from each address's first non-zero balance.
SplyBLKPitNtvThe sum in native units held by BlackRock at the end of that interval. Metric values reflect activity of addresses known to belong to the entity at the time, from each address's date of discovery as an entity address.

ETF flow metrics follow the same attribution logic. A deposit to an address that Talos later tags as belonging to BlackRock appears in FlowInBLKNtv for all historical intervals back to that address's first activity, but in FlowInBLKPitNtv only from the interval when the address was first identified as BlackRock.

Accessing the Data​

Python Client
from coinmetrics.api_client import CoinMetricsClient

api_key = "<API_KEY>"
client = CoinMetricsClient(api_key)

print(
client.get_asset_metrics(
assets="btc",
metrics=["FlowInBLKNtv", "FlowInBLKPitNtv"],
frequency="1d",
).to_dataframe()
)
Shell
curl --compressed "https://api.coinmetrics.io/v4/timeseries/asset-metrics?assets=btc&metrics=FlowInBLKNtv,FlowInBLKPitNtv&frequency=1d&api_key=<your_key>"
Python
import requests

response = requests.get(
"https://api.coinmetrics.io/v4/timeseries/asset-metrics",
params={
"assets": "btc",
"metrics": "FlowInBLKNtv,FlowInBLKPitNtv",
"frequency": "1d",
"api_key": "YOUR_API_KEY",
},
).json()

Full parameter reference: see the API Reference for /timeseries/asset-metrics.