Fathom Profile
See where trading concentrates. The volume profile maps volume by price and, by default, draws the value area holding 70% of it.
Volume profile of the current session, accumulated over closed bars. On each closed bar, a final point gives the POC, the value area (valueAreaPercent of the volume, widened by at least one level around the POC), the VWAP and the volume-weighted standard deviation.
- Identifier
session-profile- Objects received
values- Calculation
- Since the start of the week
- Historical cost
- 1 unit per trade
Subscribe
The same params work in real time, on historical data and in exports. Any you leave out take their default value.
{
"t": "subscribe",
"sub": "session-profile",
"instrument": "NQ.front",
"indicator": "session-profile",
"params": {
"timeframe": 300,
"valueAreaPercent": 70
},
"mode": "live",
"from": "live"
}Parameters
As soon as a parameter differs from its default, the subscription counts as a custom configuration. A new value may require preparing a new calculation (status warming).
| Parameter | Type | Default | Allowed values | Unit | Description |
|---|---|---|---|---|---|
timeframe | integer | 300 | 15 · 60 · 300 | — | Bar duration in seconds: 15, 60 or 300. |
valueAreaPercent | integer | 70 | 1 to 100 | % | Share of the volume contained in the value area. |
Objects received
Each object keeps the same id from one update to the next. Its data is in the data field. Prices are in ticks: multiply them by the instrument’s tick size (GET /v1/instruments) to get points.
values sent complete
Values at the close of the bar.
Format of the id: <barStartNs>. Each object is sent once, already complete (final: true).
| Field | Type | Unit | Present | Description |
|---|---|---|---|---|
poc | integer | ticks | always | Session POC at the close of the bar. |
sd | number | ticks | always | Volume-weighted standard deviation of prices; ±k bands = vwap ± k·sd. |
vah | integer | ticks | always | Value area high (VAH). |
val | integer | ticks | always | Value area low (VAL). |
vwap | number | ticks | always | Session VWAP. |
Calculation warm-up
The calculation starts over at the beginning of every week (Saturday 00:00 UTC). During the weekend close it keeps the state of the past week; objects still open are finalized on the first trade of the new week. If nobody is using your parameters yet, the server first recomputes the week since its start (status warming), then goes live (status live).
Historical data follows the same rules: a query over a past period returns exactly what the real-time stream published.
Example messages
Messages received with the subscription parameters above. Over WebSocket, each message also carries sub and cursor.
{
"t": "upsert",
"id": "1790207700000000000",
"final": true,
"ts": "1790208000058746563",
"data": {
"poc": 123076,
"vah": 123177,
"val": 122990,
"vwap": 123131.51652638057,
"sd": 63.49728844602092
}
}JSON schemas
To validate or type your data: the JSON schemas of the parameters and of data, also available from GET /v1/indicators. The SDK can generate types from them.
Parameters schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://fathomcharts.com/schemas/session-profile/params.json",
"type": "object",
"additionalProperties": false,
"properties": {
"timeframe": {
"type": "integer",
"default": 300,
"enum": [
15,
60,
300
],
"description": "Bar duration in seconds: 15, 60 or 300."
},
"valueAreaPercent": {
"type": "integer",
"default": 70,
"minimum": 1,
"maximum": 100,
"description": "Share of the volume contained in the value area."
}
}
}Schema of the data field
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://fathomcharts.com/schemas/session-profile/data.json",
"title": "values",
"type": "object",
"additionalProperties": false,
"required": [
"poc",
"vah",
"val",
"vwap",
"sd"
],
"properties": {
"poc": {
"type": "integer",
"description": "Session POC at the close of the bar."
},
"sd": {
"type": "number",
"description": "Volume-weighted standard deviation of prices; ±k bands = vwap ± k·sd."
},
"vah": {
"type": "integer",
"description": "Value area high (VAH)."
},
"val": {
"type": "integer",
"description": "Value area low (VAL)."
},
"vwap": {
"type": "number",
"description": "Session VWAP."
}
}
}