> For the complete documentation index, see [llms.txt](https://gitbook-docs.coinmetrics.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gitbook-docs.coinmetrics.io/network-data/network-data-overview/exchange-traded-fund/point-in-time-flows.md).

# 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](/network-data/network-data-overview/exchange-traded-fund.md), 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

<table data-full-width="true"><thead><tr><th>Data type</th><th>Entities</th><th width="159">Frequency / cadence</th><th>Unit</th><th>Primary endpoint</th></tr></thead><tbody><tr><td>Metric</td><td>Assets</td><td>1d, 1h</td><td>Native units, USD, transfer count</td><td><code>/timeseries/asset-metrics</code></td></tr></tbody></table>

## 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`):

<table data-full-width="true"><thead><tr><th width="360">Standard metric</th><th>Point-in-time metric</th><th>Description</th></tr></thead><tbody><tr><td><code>FlowIn{Entity}Ntv</code> / <code>FlowIn{Entity}USD</code></td><td><code>FlowIn{Entity}PitNtv</code> / <code>FlowIn{Entity}PitUSD</code></td><td>Deposits to the entity. See <a href="/network-data/network-data-overview/exchange-traded-fund/deposits.md">Deposits</a>.</td></tr><tr><td><code>FlowOut{Entity}Ntv</code> / <code>FlowOut{Entity}USD</code></td><td><code>FlowOut{Entity}PitNtv</code> / <code>FlowOut{Entity}PitUSD</code></td><td>Withdrawals from the entity. See <a href="/network-data/network-data-overview/exchange-traded-fund/withdrawals.md">Withdrawals</a>.</td></tr><tr><td><code>FlowNet{Entity}Ntv</code> / <code>FlowNet{Entity}USD</code></td><td><code>FlowNet{Entity}PitNtv</code> / <code>FlowNet{Entity}PitUSD</code></td><td>Net flows for the entity. See <a href="/network-data/network-data-overview/exchange-traded-fund/net-flows.md">Net Flows</a>.</td></tr><tr><td><code>FlowTfrIn{Entity}Cnt</code></td><td><code>FlowTfrIn{Entity}PitCnt</code></td><td>Deposit transfer count for the entity.</td></tr><tr><td><code>FlowTfrOut{Entity}Cnt</code></td><td><code>FlowTfrOut{Entity}PitCnt</code></td><td>Withdrawal transfer count for the entity.</td></tr><tr><td><code>Sply{Entity}Ntv</code> / <code>Sply{Entity}USD</code></td><td><code>Sply{Entity}PitNtv</code> / <code>Sply{Entity}PitUSD</code></td><td>Supply held by the entity. See <a href="/network-data/network-data-overview/exchange-traded-fund/exchange-traded-fund-supply.md">Exchange Traded Fund Supply</a>.</td></tr><tr><td><code>TxEtfCnt</code></td><td><code>TxEtfPitCnt</code></td><td>Transaction count for ETFs. See <a href="/network-data/network-data-overview/exchange-traded-fund/transaction-count.md">Transaction Count</a>.</td></tr></tbody></table>

Replace `{Entity}` with the entity short code from the [ETF coverage table](/network-data/network-data-overview/exchange-traded-fund.md#etf-on-chain-flows-and-supply-metrics-coverage). 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

<table data-full-width="true"><thead><tr><th></th><th>Standard metrics</th><th>Point-in-time metrics</th></tr></thead><tbody><tr><td><strong>Address set</strong></td><td>All addresses <strong>currently known</strong> 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.</td><td>Only addresses <strong>known to belong to the entity at the time</strong> 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.</td></tr><tr><td><strong>History start</strong></td><td>From each address's <strong>first non-zero balance</strong></td><td>From each address's <strong>date of discovery</strong> as an entity address</td></tr><tr><td><strong>Restatement</strong></td><td>Past 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.</td><td>Past values are fixed; newly discovered addresses affect only intervals on or after their discovery date</td></tr><tr><td><strong>Best for</strong></td><td>Current monitoring and analysis using the fullest available address coverage</td><td>Point-in-time-correct backtests, research, and any workflow that must not inherit future address discoveries</td></tr></tbody></table>

For example, compare BlackRock ETF supply in native units:

<table data-full-width="true"><thead><tr><th width="360">Metric</th><th>Description</th></tr></thead><tbody><tr><td><code>SplyBLKNtv</code></td><td>The sum in native units held by BlackRock at the end of that interval. Metric values reflect activity of addresses <strong>currently known</strong> to belong to the entity, from each address's <strong>first non-zero balance</strong>.</td></tr><tr><td><code>SplyBLKPitNtv</code></td><td>The sum in native units held by BlackRock at the end of that interval. Metric values reflect activity of addresses <strong>known to belong to the entity at the time</strong>, from each address's <strong>date of discovery</strong> as an entity address.</td></tr></tbody></table>

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

{% tabs %}
{% tab title="Python Client" %}

```python
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()
)
```

{% endtab %}

{% tab title="Shell" %}

```shell
curl --compressed "https://api.coinmetrics.io/v4/timeseries/asset-metrics?assets=btc&metrics=FlowInBLKNtv,FlowInBLKPitNtv&frequency=1d&api_key=<your_key>"
```

{% endtab %}

{% tab title="Python" %}

```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()
```

{% endtab %}
{% endtabs %}

Full parameter reference: see the API Reference for [`/timeseries/asset-metrics`](https://docs.coinmetrics.io/api/v4/#operation/getTimeseriesAssetMetrics).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://gitbook-docs.coinmetrics.io/network-data/network-data-overview/exchange-traded-fund/point-in-time-flows.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
