---
title: "Whale vs Retail CVD"
description: "In Indicators this is not available yet as the kScript (legacy) recipe: the trade_volume_by_size class that hands every bar's tape pre-bucketed into USD order-…"
order: 61
section: "cookbook"
---

<!-- source: docs/indicators/cookbook/tape-reader.md; generated by packages/cli/scripts/gen-indicator-docs.ts, do not edit -->

# Whale vs Retail CVD

In Indicators this is not available yet as the kScript (legacy) recipe: the `trade_volume_by_size` class that hands every bar's tape pre-bucketed into USD order-size bands is declared for cross-host parity but refused by name (`wrun_cells_unavailable`), because this data plane has no point lane for it.

The nearest form is the live [tape source](../core-concepts/data-sources.md#live-tape): a celled input of prints at or above a native-size `min_size`, read as `[offsetMs, price, size, side]` blocks, so a whale flow line can start from the moment the daemon subscribes (no history, no USD buckets). For historical aggregate flow, side-split `trades.volume` inputs accumulate the way the [Aggregated CVD](aggregated-cvd.md) recipe does.

What stays on kScript (legacy): the USD size buckets, the retail line, the per-bar trade counts and any bar before the subscription began; run the original with **Use kScript engine**.
