Skip to content

Report Types and Fields

This is a reference page

Use your browser's page search (Ctrl+F / Cmd+F) to jump straight to a report type or field — this page is not meant to be read top to bottom.

Report Types

A Report Type groups together specific data fields. Data fields are default system fields as well as calculated custom fields.

26 report types

The Report Types from the table listed below are displayed in the report/templates component under the column "type" on the Template Settings tab.

Report Type Description
Deal Information about Orders received by XCore from connectors, including details per Leg sent to Liquidity Providers and per Deal returned by them. Each order may be split into one or more legs, and each leg may be executed in one or more deals.
Includes both A-Book and B-Book trades.
Shows only trades with Partial or Filled status (no Pending or Rejected).
By default (when no grouping is applied), this report shows one row per deal. If an order is split into multiple legs/deals, the order appears in multiple rows. To show one row per order, group by order.order and aggregate all deal.* fields.
The date range is applied on the deal's execution time.
Deal (ClickHouse) Information regarding Orders, Legs, and Deals, powered by ClickHouse for high-performance data processing. Provides faster query execution and efficient handling of large data volumes. Recommended for large-scale historical reporting and high-volume data analysis.
Includes both A-Book and B-Book trades.
Includes all trades of all statuses: Pending, Rejected, Partial, and Filled.
By default (when no grouping is applied), this report shows one row per deal. If an order is split into multiple legs/deals, the order appears in multiple rows. To show one row per order, group by order.open_order and aggregate all deal.* fields.
The date range is applied on the deal's execution time.

Note: Data in the ClickHouse database is synchronized once per hour.
Deal A-Book Information regarding Orders, Legs, and Deals that follows the same structure and logic as the Deal report, but includes only executions routed to the A-Book.
By default (when no grouping is applied), this report shows one row per deal, following the same row structure and grouping logic as the Deal report.
The date range is applied on the deal's execution time.
Deal B-Book Information regarding Orders, Legs, and Deals that follows the same structure and logic as the Deal report, but includes only executions routed to the B-Book.
By default (when no grouping is applied), this report shows one row per deal, following the same row structure and grouping logic as the Deal report.
The date range is applied on the deal's execution time.
Deal (All Statuses)

Video guide
Information regarding Orders, Legs, and Deals that follows the same structure and logic as the Deal report, but covering orders of every status - Filled, Partial, Pending, and Rejected.
Includes both A-Book and B-Book trades.
By default (when no grouping is applied), this report shows one row per deal. If an order is split into multiple legs/deals, the order appears in multiple rows; an order with no leg/deal contributes a single row. To show one row per order, group by order.order and aggregate all deal.* fields.
The date range is applied on the order's open time.
Deal (Margin Account)

Video guide
Information regarding Orders, Legs, and Deals that follows the same structure and logic as the Deal report, plus each deal's client margin account (#deal.margin_account), filterable by margin account.
By default (when no grouping is applied), this report shows one row per deal, following the same row structure and grouping logic as the Deal report.
The margin account comes from the client-side position the deal was booked to.
Resolving it from positions makes this report slower than Deal on long date ranges.
The date range is applied on the deal's execution time.
Orders Count A single count of filled or partially filled orders within the selected date range.
Returns exactly one row for the whole report - no grouping, filtering by other fields, or additional columns are available.
The date range is applied on the deal's execution time.
Max Spread Reject Report

Video guide
Orders rejected by XCore because the requested spread exceeded the Connector's configured maximum spread limit.
Only includes orders rejected under a blocking spread mode (reject or invalidate) where the spread genuinely exceeded the limit.
Partially filled orders are not included, even if the remaining amount was rejected for exceeding the maximum spread.
The date range is applied on the order's open time.
Order Details Information about Orders received by XCore from connectors, showing only order-level information without details on legs or deals.
Includes all trades of all statuses: Pending, Rejected, Partial, and Filled.
The date range is applied on the order's open time.
Order Reject Information about Orders received by XCore from connectors, including details on Legs sent to Liquidity Providers, without deal-level data.
Includes only trades with Rejected status (no Pending, Partial, or Filled).
By default (when no grouping is applied), this report shows one row per leg. If an order is split into multiple legs, the order appears in multiple rows.
Leg-level information is available only if a leg was created and sent to a Liquidity Provider; orders rejected before leg creation will not have leg details.
The date range is applied on the order's open time.
Account Wallet Information about XCore Accounts, showing all balance-related transactions without order, leg, or deal details.
Includes deposits, withdrawals, and charges, providing data for auditing and analysis.
The Account Wallet report can include related Account Position data by linking each wallet action to its originating position via the Position Sequence, providing context for the account activity.
Account Position Information about XCore Accounts, showing all position adjustments.
Includes all open positions and changes to positions for each account in the XCore system.
Account Position EOD The most recent recorded values of all positions for XCore Accounts, up to the end of the selected report date range. Tracked separately per symbol without consolidation across the account.
Account Wallet EOD Information on the opening and closing balances, as well as the total balance changes from different types of operations over the selected report period. Tracked separately per wallet and currency without consolidation across the XCore Account, expressed in the currency in which each balance change was recorded.
Account EOD Information on opening and closing balances, total balance changes, Exposure, Floating Profit/Loss, Equity, Used Margin, and Free Margin over the selected report period. Consolidated per Account and converted to the Default Account Currency.
Trade Decay V5

Video guide
Information about Orders, Legs, and Deals enriched with decay metrics, including Decay Interval, Decay Bid, Decay Ask, and Computed Decay Value. The report shows how the value of each Client trade changes after the leg is sent to the Liquidity Provider. It helps brokers analyze trade quality, visualize post-submission price movement, identify Client logins whose trading behavior may pose a risk to the broker, and perform detailed analysis at the level of each individual order.
By default (when no grouping is applied), this report shows one row per deal.
The date range is applied on the order's open time.

Note: Data in the ClickHouse database is synchronized once per hour.
Trade Decay V5 Toxic

Video guide
Information regarding Orders, Legs, Deals, and decay metrics that follows the same structure and logic as the Trade Decay V5 report, but focuses on negative decay outcomes (decay value < 0). This report is used to identify trading behavior that is unfavorable for the broker and favorable for the Client.
After all calculations and aggregations are completed, only records (or groups) with a negative final decay value are included in the report.
No pre-filtering is applied before aggregation; filtering is applied only on the final computed result.
By default (when no grouping is applied), this report shows one row per deal.
The date range is applied on the order's open time.

Note: Data in the ClickHouse database is synchronized once per hour.
Trade Decay V5 Profitable

Video guide
Information regarding Orders, Legs, Deals, and decay metrics that follows the same structure and logic as the Trade Decay V5 report, but focuses on positive decay outcomes (decay value > 0). This report is used to identify trading behavior that is favorable for the broker and unfavorable for the Client.
After all calculations and aggregations are completed, only records (or groups) with a positive final decay value are included in the report.
No pre-filtering is applied before aggregation; filtering is applied only on the final computed result.
By default (when no grouping is applied), this report shows one row per deal.
The date range is applied on the order's open time.

Note: Data in the ClickHouse database is synchronized once per hour.
Trade Flow by Login

Video guide
Decay values for trade executions across 31 time intervals (T+0ms to T+900s) from the leg open - potential USD profit or loss from the broker's perspective at each interval.
Available grouping dimensions include Connector, Connector Account, MT Group Name (SubID 2), Client Login (SubID 3), Symbol, Book (A/B), Order Side, Order Type, Leg Type, Provider, and Business Date. These can be used individually or in combination. Grouping by at least one of these dimensions is required; ungrouped data cannot be retrieved.
Covers A-Book and B-Book trades.
The date range is applied on the order's open time.

Note: Data in the ClickHouse database is synchronized once per hour.
Toxic Client Watchlist

Video guide
Ranks client logins (or any other report grouping) with consistently negative decay values across selected time intervals, indicating trading activity that is unfavorable for the broker. Helps brokers identify and prioritize accounts for review.
Covers 31 time intervals (T+0ms to T+900s) and both A-Book and B-Book trades.
Only groups that satisfy the Negative Interval Ranges filter are included in the report.
For interval fields, only the Sum and VWAPMM (value per million USD) aggregation types produce meaningful results.
The Negative Interval Ranges filter defines the time intervals, threshold, and whether all ranges must be satisfied (AND) or any range may be satisfied (OR). If the filter is not specified, the default criteria are a single interval from 5 ms to 200 ms with a decay value below 0.
The report is always sorted by Watchlist Worst Value in ascending order, so the groups with the most negative aggregated decay values appear at the top of the report.
Grouping by at least one dimension is required; ungrouped data cannot be retrieved.
The date range is applied on the order's open time.

Note: Data in the ClickHouse database is synchronized once per hour.
Book Report Snapshot of the liquidity book at the moment an order is executed, including bid and ask quotes, liquidity levels, providers, and applied markups across all book layers.
The date range is applied on the order's open time.
Book ClickHouse Snapshot of the liquidity book at the moment an order is executed, following the same structure and logic as the Book Report, but powered by ClickHouse for high-performance data processing. Provides faster query execution and efficient handling of large data volumes. Recommended for large-scale historical reporting and high-volume data analysis.
The date range is applied on the order's open time.

Note: Data in the ClickHouse database is synchronized once per hour.
TOB by Maker (ClickHouse)

Video guide
Compares the top-of-book bid and ask each Liquidity Provider (Maker) quotes for one symbol over time, powered by ClickHouse for fast access to tick-level history. Helps you judge which Providers quote the tighter price and narrower spread, supporting routing and Provider-selection decisions.
Requires a Symbol filter - returns no rows until one is selected. Provider filter is optional.
Rows are already grouped by Maker and symbol - no other grouping or aggregation is available for this report.

Note: the database keeps only the last 7 days of tick history - a wider date range returns data starting from 7 days ago at the earliest.
Note: Data in the ClickHouse database is synchronized once per hour.
Fill Ratio Information about trade execution quality at the leg level, including leg status, execution outcomes, and price behavior. Includes only leg-level data.
By default (when no grouping is applied), this report shows one row per leg. If an order is split into multiple legs, the order appears in multiple rows.
The date range is applied on the order's open time.
Profit B-Book Information on the broker's net exposure and mark-to-market PnL per symbol over the selected report period, calculated from the broker's perspective.
Includes only B-Book trades.
The date range is applied on the deal's execution time.

Note: Calculations include trade execution data only and do not include position changes applied outside of trading activity, such as manual adjustments through Position Admin or PL_SETTLEMENT transactions.
Position P&L

Video guide
Daily B-Book PnL from the account's position, split into realized, unrealized change, overnight carry (position revaluation held from the previous day), and trading PnL - per account, symbol, and business day (rolls at 5 pm New York).
This report is intended for RISK accounts.
The date range determines which business days are included.

Note: complements Position EOD/Account EOD (a level at one instant) by reporting each business day's change instead.

Available Fields (Columns)

Data fields are Report Type specific and so some fields may only be available in specific Report Type.

Available Fields (Columns)

The Field Names from the tables listed below are displayed in the report/templates component under the column "item" on the Field Settings tab.

Report Type: Deal | Deal A-Book | Deal B-Book | Deal (All Statuses) | Deal (Margin Account)
report type: deal | deal a-book | deal b-book | deal (all statuses) | deal (margin account)
Field Name Description
order.order Order ID - the unique XCore Order ID.
order.connector Order Connector - the connector name from the XCore configuration.
order.protocol Order Connector Protocol - the type of connector protocol from the XCore configuration, such as FIX, MT4, MT5, Giveup, etc.
order.account Order Connector Account - the name of the connector account within the XCore connector responsible for executing the order.
order.connector/account The combined identifier of the order's execution channel, showing both the connector name and the specific connector account used for execution, formatted as "Connector/Account".

Note: Formed by concatenating order.connector (the connector name) and order.account (the connector account within the connector on XCore).
order.clordid Order Client Order ID - the unique client Order ID.
order.subid1 Order SubID 1 - the SubID 1 of the order.
order.subid2 Order SubID 2 - the SubID 2 of the order. When orders originate from an MT4 and MT5 connector, this will be the Group Name.
order.subid3 Order SubID 3 - the SubID 3 of the order. When orders originate from an MT4 and MT5 connector, this will be the Account Login number.
order.subid4 Order SubID 4 - the SubID 4 of the order. When orders originate from an MT4 connector, this will be the MT4 Order Ticket Number. When orders originate from an MT5 connector, this will be the posID.
order.side Order Side - the side of the Order indicates whether the order is a "buy" or "sell".
order.type Order Type - the XCore order type.

Note: available values are:
- market
- limit
- stop
order.instrument Order Instrument - the connector stream instrument name as known by the MT4, MT5 or FIX end client.
order.symbol Order Symbol - the connector stream symbol name as known by the XCore.
order.digits Order Symbol Digits - the number of digits defined for the symbol, representing decimals after the “.” and excluding the last pip value digit.
order.factor Order Factor - the factor of the traded instrument, defined in the Symbol configuration by the contract_size value.
order.currency Order Currency - the currency in which the instrument is traded.
order.size Order Requested Size - the size of the order requested by the client, expressed in lots.
#order.size_usd Order Requested Size USD - the requested order size expressed in USD.

Note:
- if the symbol is quoted in USD and order.price > 0, #order.size_usd = order.size * order.price * order.factor;
- otherwise, if a deal conversion rate is available, #order.size_usd = order.size * deal.conv_usd;
- otherwise, #order.size_usd = 0.

Available on Deal (All Statuses) only. For orders quoted in a third currency, returns 0 if no executed deal is available.
#order.size_eur Order Requested Size EUR - the requested order size expressed in EUR.

Note:
- if the symbol is quoted in EUR and order.price > 0, #order.size_eur = order.size * order.price * order.factor;
- otherwise, if a deal conversion rate is available, #order.size_eur = order.size * deal.conv_eur;
- otherwise, #order.size_eur = 0.

Available on Deal (All Statuses) only. For orders quoted in a third currency, returns 0 if no executed deal is available.
order.minsize Order Minimum Split Size - the minimum accepted fill size specified in the order request.
order.price Order Requested Price - the requested order price at the time order was placed.

Note: order.price may be 0 for market orders, as the Price tag is optional and may not be included by the end client.
order.deviation Order Allowed Price Deviation - the allowed deviation in points from the requested price up to which the order can be filled.

Note: a value of (-1) indicates unlimited deviation.
order.ttl Order TTL - the maximum duration, in milliseconds, during which XCore will attempt to fill the order.
order.mid Order Mid Price - the Mid price between the top-of-book bid and ask as seen by XCore at the time order was placed, determined based on markups configured in the Provider Stream Settings and the Connector Profile Trade Lock Settings.
order.bid Order Bid Price - the top-of-book Bid price of the order at the time order was placed, including the pre-aggregated bid markup set up in XCore, determined by the markup and spread settings in the Markup Profile and Provider Stream Settings, and the Connector Profile Trade Lock Settings.
order.ask Order Ask Price - the top-of-book Ask price of the order at the time order was placed, including the pre-aggregated ask markup set up in XCore, determined by the markup and spread settings in the Markup Profile and Provider Stream Settings, and the Connector Profile Trade Lock Settings.
order.lq_pool Order Liquidity Pool - the name of the liquidity pool associated with the executed order.
order.lq_profile Order Liquidity Profile (Markup Profile) - the name of the markup profile associated with the executed order.
order.open_milli Order Open Timestamp - the timestamp when the order was received in the XCore. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
order.open_micro Order Open Micro Timestamp - XCore's microsecond counter (0–999999) when the order was received, not part of the timestamp; use it to calculate the difference between two events (the counter restarts every second).
order.fillsize Order Fill Size - the size of the order filled in XCore, in lots.

Note: The fill size is the sum of the individual filled legs of the order.
order.fillprice Order Fill Price - the client overall fill price, including markups defined in the XCore, determined by the markup and spread settings in the Markup Profile and Provider Stream Settings, and the Connector Profile Trade Lock Settings.

Note: the fill price is the volume-weighted average price fill price of the filled legs (leg.fillprice2).
order.message Order Message - the message generated by XCore for the order in case of rejection.
order.close_milli Order Close Timestamp - the timestamp when the order was completed in the XCore. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
order.close_micro Order Close Micro Timestamp - XCore's microsecond counter (0–999999) when the order was completed, not part of the timestamp; use it to calculate the difference between two events (the counter restarts every second).
#order.exec_time Order Execution Time - the time in milliseconds from order submission to order closure, regardless of whether the order was filled.

Note:
#order.exec_time = order.close_milli - order.open_milli.
Returns 0 if order.close_milli = 0 (the order is still open).
#order.open_date Order Open Date - the date when the order was received in the XCore.
Format: DD/MM/YYYY.
#order.open_time Order Open Time - the time when the order was received in the XCore.
Format: HH:MM:SS.
#order.slippage Order Price Slippage (Decimal) - the difference between the Order Requested Price (or the top-of-book price) and the Order Fill Price, displayed in decimal format.

Note:
If order.side = SELL:
- if order.price > 0 then #order.slippage = order.fillprice - order.price
- else #order.slippage = order.fillprice - order.bid

If order.side = BUY:
- if order.price > 0 then #order.slippage = order.price - order.fillprice
- else #order.slippage = order.ask - order.fillprice.
#order.slippage_pips Order Price Slippage (Pips) - the difference between the Order Requested Price (or the top-of-book price) and the Order Fill Price, expressed in pips.

Note:
- #order.slippage_pips = #order.slippage * 10^order.digits
#order.slippage_usd Order Price Slippage (USD per Base Unit) - the difference between the Order Requested Price (or the top-of-book price) and the Order Fill Price, expressed in USD per one base unit.

Note:
#order.slippage_usd = (#order.slippage * deal.conv_usd) / (order.factor * order.fillprice).
Returns 0 when order.fillprice = 0.

May introduce inaccuracies when an order consists of multiple deals with different deal.conv_usd values. For higher accuracy, use aggregation of the deal-level metric #deal.slippage_taker_req_usd_per_unit, or #deal.slippage_taker_req_usd for the full deal-size equivalent.
#order.slippage_eur Order Price Slippage (EUR per Base Unit) - the difference between the Order Requested Price (or the top-of-book price) and the Order Fill Price, expressed in EUR per one base unit.

Note:
#order.slippage_eur = (#order.slippage * deal.conv_eur) / (order.factor * order.fillprice).
Returns 0 when order.fillprice = 0.

May introduce inaccuracies when an order consists of multiple deals with different deal.conv_eur values. For higher accuracy, use aggregation of the deal-level metric #deal.slippage_taker_req_eur instead - note it is expressed per full deal size.

Available on Deal (All Statuses) only.
#order.gain_usd Order Slippage Gain (USD) - the positive component of order slippage expressed in USD for the full order size.

Note:
- if #order.slippage > 0 then #order.gain_usd = (#order.slippage * deal.size * deal.conv_usd / order.fillprice)
- else #order.gain_usd = 0.
Returns 0 when order.fillprice = 0.

May introduce inaccuracies when an order consists of multiple deals with different deal.conv_usd values.
#order.loss_usd Order Slippage Loss (USD) - the negative component of order slippage expressed in USD for the full order size.

Note:
- if #order.slippage < 0 then #order.loss_usd = (#order.slippage * deal.size * deal.conv_usd / order.fillprice)
- else #order.loss_usd = 0.
Returns 0 when order.fillprice = 0.

May introduce inaccuracies when an order consists of multiple deals with different deal.conv_usd values.
#order.slippage_tob_dpm Order Taker TOB Slippage per Million - the taker slippage relative to the top-of-book price at the time the order was placed, normalized to parts per million (PPM) of the benchmark price. The PPM representation makes the value comparable across symbols with different price levels.

Note:
- if order.side = Sell and order.bid ≠ 0 then #order.slippage_tob_dpm = 1,000,000 * (order.fillprice - order.bid) / order.bid
- if order.side = Buy and order.ask ≠ 0 then #order.slippage_tob_dpm = 1,000,000 * (order.ask - order.fillprice) / order.ask
- no value if the benchmark price (order.bid/order.ask) is 0.

This metric measures slippage relative to the market price available when the order was placed. It compares the order fill price against the top-of-book Bid or Ask price and expresses the difference in PPM.
#order.state Order State - the status of the order.

Note: available values are:
- Partial - the order was partially filled (order.size > order.fillsize);
- Filled - the order was fully filled (order.size = order.fillsize);
- Rejected - the order was not filled and has been closed (order.fillsize = 0 and order.close_milli > 0);
- Pending - the order has not been filled and is still open (order.fillsize = 0 and order.close_milli = 0).

Note: Rejected and Pending are available only in the Deal (All Statuses) report.
#order.order_filled Order Filled Flag - indicates that the order is fully filled.

Note: available values are:
1 - the order is fully filled and closed (order.fillsize > 0 and order.fillsize = order.size and order.close_milli > 0);
0 - otherwise.
#order.order_partial Order Partial Flag - indicates that the order is partially filled.

Note: available values are:
1 - the order is partially filled and closed (order.fillsize > 0 and order.fillsize < order.size and order.close_milli > 0);
0 - otherwise.
#order.order_rejected Order Rejected Flag - indicates that the order is rejected.

Note: available values are:
1 - the order was not filled and is closed (order.fillsize = 0 and order.close_milli > 0);
0 - otherwise.
#order.time_in_force Order TimeInForce - the order's Time In Force instruction, showing how the order can be filled.

Note: available values are:
- GTC (Good-Til-Cancelled) - when order.ttl = -1;
- FOK (Fill-Or-Kill) - when order.ttl ≠ -1 and order.minsize = order.size;
- IOC (Immediate-Or-Cancel) - otherwise.
#order.spread Order Spread - the difference between the top-of-book Ask and Bid prices of the order at the time it was placed.

Note:
#order.spread = order.ask - order.bid.
#order.volume_usd Order Volume USD - the USD-denominated requested order volume, calculated using the conversion rate at the time of trade execution.

Note:
For each deal row: #order.volume_usd = order.size * deal.conv_usd.

For correct order-level results, group by the order (for example, order.order) and use the VWA aggregation type for this field.
#order.volume_eur Order Volume EUR - the EUR-denominated requested order volume, calculated using the conversion rate at the time of trade execution.

Note:
For each deal row: #order.volume_eur = order.size * deal.conv_eur.

For correct order-level results, group by the order (for example, order.order) and use the VWA aggregation type for this field.

Available on Deal (All Statuses) only.
leg.order Order ID - the unique XCore Order ID.
leg.leg Leg ID - the unique Leg ID generated by XCore when an order is split into multiple legs to be sent to one or more Liquidity Providers for execution.

Note: If an XCore Order ID 12345 is split into two legs, the system generates two leg IDs (0 and 1) for this order:
- 12345-0
- 12345-1.
leg.batch Leg Batch ID - the batch ID of a leg.

Note: an order can be initially split into one or multiple legs as batch 0. If a leg is rejected, XCore will resend it for execution as batch 1, and so on.
leg.b_book Leg B-Book Execution - the flag that shows whether a trade leg was executed through the B-Book or A-Book.

Note: available values are:
0 - Leg was executed through A-Book.
1 - Leg was executed through B-Book.
2 - Cross-hedge leg.
3 - Leg was executed as Synthetic A-Book.

For trades partially executed in both books, the report will show two separate entries: one with 0 for the A-Book part and one with 1 for the B-Book part.
leg.provider Leg Provider - for A-Book execution, the Liquidity Provider to which the Leg was sent for execution. For B-Book execution, the Provider whose price quote was used to execute the trade.
leg.protocol Leg Provider Protocol - the type of Liquidity Provider implementation.
leg.account Leg Provider Account - the account Tag 1 value sent to the Liquidity Provider.
leg.clordid Leg Client Order ID - the client Order ID sent to the Liquidity Provider.
leg.type Leg Type - the Leg type.

Note: available values are:
- market
- limit
- pq (prequoted), depending on the order type, the DealerTrade mode and the provider.
leg.instrument Leg Provider Instrument - the instrument name at the Liquidity Provider to which the trade was sent for execution.
leg.size Leg Requested Size - the requested size of leg sent to the Liquidity Provider for execution, in lots.
leg.minsize Leg Minimum Execution Size - the lowest leg execution size to be sent to the Liquidity Provider for execution.
leg.price Leg Requested Price - the requested price of leg sent to the Liquidity Provider for execution.
leg.ttl Leg TTL - the remaining time in milliseconds that the XCore will attempt to fill the leg in addition to any subsequent legs.
leg.markup_fix Leg Markup Fix - the fixed markups in decimal format applied on the specific trade based on Markup Profile Bid or Ask markup settings.
leg.markup_flex Leg Markup Flex - the variable markups in decimal format applied on the specific trade based on the Markup Profile Min and Max Spread Settings.
leg.quoteid Leg Quote ID - the Liquidity Provider quote ID chosen by the XCore for leg execution.
leg.quoteref Leg Provider Quote Reference - the Liquidity Provider quote reference ID chosen by the XCore for leg execution.
leg.quotetime Leg Provider Quote Timestamp (system side) - the timestamp of when the quote update was received in the XCore. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
leg.quotetimelp Leg Provider Quote Arrival Delay - the difference in milliseconds between the timestamp when the quote was sent by the Liquidity Provider and the timestamp when it was received by XCore.
leg.open_milli Leg Open Timestamp - the timestamp when the leg was created in the XCore. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
leg.open_micro Leg Open Micro Timestamp - always 0.
leg.fillsize Leg Fill Size - the fill size of the leg, in lots.

Note: A Leg sent to a Liquidity Provider can be further split by the Liquidity Provider into one or several deals. Therefore, the Leg Fill Size is the sum of the deals confirmed by the Liquidity Provider.
leg.fillprice Leg Fill Price - the leg fill price, excluding all markups configured in XCore. For A-Book, this is the price confirmed by the Liquidity Provider. For B-Book, this is the liquidity pool top-of-book price on the traded side.

Note: the fill price is the volume-weighted average fill price of the filled deals (deal.price).
leg.fillprice2 Leg Fill Price with Markup - the marked up leg fill price including any configured XCore markups, determined by the markup and spread settings in the Markup Profile and Provider Stream Settings, and the Connector Profile Trade Lock Settings.
leg.close_milli Leg Close Timestamp - the timestamp when the leg was completed in the XCore. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
leg.close_micro Leg Close Micro Timestamp - XCore's microsecond counter (0–999999) when the leg was completed, not part of the timestamp; use it to calculate the difference between two events (the counter restarts every second).
#leg.ab_book Leg Book Type - the book type for the trade leg, derived from the Leg B-Book Execution flag (leg.b_book).

Note: available values are:
A - leg.b_book = 0 (A-book).
B - any other leg.b_book value (B-book, cross-hedge or Synthetic A-book).

For trades partially executed in both books, the report will show two separate entries: one with A for the A-Book part and one with B for the B-Book part.
#leg.close_date Leg Close Date - the date when the leg was executed in the XCore.
Format: DD/MM/YYYY.
#leg.close_time Leg Close Time - the time when the leg was executed in the XCore.
Format: HH:MM:SS.
#leg.exec_time Leg Execution Time - the time in milliseconds it took for the leg to get executed.

Note:
#leg.exec_time = leg.close_milli - leg.open_milli.
#leg.open_date Order Open Date - the date when the leg was created in the XCore.
Format: DD/MM/YYYY.
#leg.open_time Order Open Time - the time when the leg was created in the XCore.
Format: HH:MM:SS.
#leg.quote_date Leg Provider Quote Date (system side) - the date when the quote update was received in the XCore.
Format: DD/MM/YYYY.
#leg.quote_time Leg Provider Quote Time (system side) - the time when the quote update was received in the XCore.
Format: HH:MM:SS.
#leg.state Leg State - the execution status of the leg.

Note: available values are:
- Rejected - the leg was not filled and has been closed (leg.fillsize = 0 and leg.close_milli > 0);
- Partial - the leg was partially filled (leg.size > leg.fillsize);
- Filled - the leg was fully filled (leg.size = leg.fillsize).
#leg.is_filled Leg Filled Flag - indicates that the leg is in Filled status.

Note: available values are:
1 - the leg is fully filled and closed (leg.fillsize = leg.size and leg.close_milli > 0);
null - otherwise.
#leg.is_partial Leg Partial Flag - indicates that the leg is in Partial status.

Note: available values are:
1 - the leg is partially filled and closed (leg.fillsize > 0 and leg.fillsize < leg.size and leg.close_milli > 0);
null - otherwise.
#leg.is_rejected Leg Rejected Flag - indicates that the leg is in Rejected status.

Note: available values are:
1 - the leg was not filled and is closed (leg.fillsize = 0 and leg.close_milli > 0);
null - otherwise.
#leg.time_in_force Leg TimeInForce - the leg's Time In Force instruction sent to the Liquidity Provider.

Note: available values are:
- FOK (Fill-Or-Kill) - when leg.minsize = leg.size;
- IOC (Immediate-Or-Cancel) - otherwise;
- no value - the order was rejected before a leg was created, so no leg data is present.

Unlike #order.time_in_force, this value never resolves to GTC.
#leg.slippage_pips Leg Price Slippage (Pips) - the difference between the Order Requested Price (or the top-of-book price) and the Leg Fill Price with Markup, expressed in pips.

Note:
If order.side = SELL:
- if order.price > 0 then #leg.slippage_pips = (leg.fillprice2 - order.price) * 10^order.digits
- else #leg.slippage_pips = (leg.fillprice2 - order.bid) * 10^order.digits

If order.side = BUY:
- if order.price > 0 then #leg.slippage_pips = (order.price - leg.fillprice2) * 10^order.digits
- else #leg.slippage_pips = (order.ask - leg.fillprice2) * 10^order.digits.
Returns 0 when leg.fillprice2 = 0.
#leg.volume_usd Leg Volume USD - the USD-denominated volume of the leg at the moment of execution.

Note:
#leg.volume_usd = leg.fillsize * deal.conv_usd.

May introduce inaccuracies when a leg consists of multiple deals with different deal.conv_usd values. For higher accuracy, use aggregation of the deal-level metric #deal.volume_usd.
deal.order Order ID - the unique XCore Order ID.
deal.leg Leg ID - the unique Leg ID generated by XCore when an order is split into multiple legs to be sent to one or more Liquidity Providers for execution.

Note: If an XCore Order ID 12345 is split into two legs, the system generates two leg IDs (0 and 1) for this order:
- 12345-0
- 12345-1.
deal.deal Deal ID - the unique Deal ID generated by XCore when a leg sent to a Liquidity Provider is further split by the Liquidity Provider into one or several deals.

Note: If a leg 12345-0 is split into two deals, the system generates two deal IDs (0 and 1) for this leg:
- 12345-0-0
- 12345-0-1.
#deal.unique_id Unique Deal Identifier - a single identifier that combines the XCore Order ID, Leg ID, and Deal ID into one value.
Format: order.order-leg.leg-deal.deal

Example:
If Order ID = 12345, Leg ID = 0, and Deal ID = 1, then #deal.unique_id = 12345-0-1.
deal.size Deal Execution Size - the size of the deal filled and confirmed by the Liquidity Provider, in lots.
deal.price Deal Execution Price - the price at which the deal was executed, excluding all markups configured in XCore. For A-Book, this is the price confirmed by the Liquidity Provider. For B-Book, this is the liquidity pool top-of-book price on the traded side.
deal.markup The difference between the Client price and the Liquidity Provider price for a trade, calculated in decimal format.

Note: The value is determined based on the Markup Profile Settings (Bid or Ask markups, Min and Max Spread) and the Connector Profile Trade Lock Settings. This value does not include the Liquidity Provider Markup (deal.markup_lp).
deal.markup_lp Liquidity Provider Markup - the value of the Bid or Ask markup applied to the raw Liquidity Provider price, taken from the Provider Stream Settings configured in XCore and expressed in decimal format.
deal.handicap_lp Liquidity Provider Handicap - the handicap value provided by the LP.
deal.ordid Deal Provider Order ID - the Order ID assigned by the LP.
deal.execid Deal Provider Execution ID - the Execution ID received from the LP.
deal.valuedate Deal Value Date - the deal value date received from the Liquidity Provider.
deal.message Deal Message - the message received from the Liquidity Provider for cancelled or rejected deals.
deal.milli Deal Execution Timestamp - the time when XCore recorded the fill received from the Liquidity Provider. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
deal.micro Deal Execution Micro Timestamp - XCore's microsecond counter (0–999999) when XCore recorded the fill, not part of the timestamp; use it to calculate the difference between two events (the counter restarts every second).
deal.conv_eur Deal Base Conversion to EUR - the EUR conversion rate at the moment of trade execution, converting the deal size in lots to EUR, calculated as the price of the symbol's base currency against EUR multiplied by the symbol's contract_size defined in the Symbol configuration.

Note: The conversion rate is calculated from the Top of Book (TOB) market price and does not include any markups.
deal.conv_usd Deal Base Conversion to USD - the USD conversion rate at the moment of trade execution, converting the deal size in lots to USD, calculated as the price of the symbol's base currency against USD, multiplied by the symbol's contract_size defined in the Symbol configuration.

Note: The conversion rate is calculated from the Top of Book (TOB) market price and does not include any markups.
deal.conv Deal Base Conversion to Deal Account Currency - the Account Currency conversion rate at the moment of trade execution, converting the deal size in lots to the account currency, calculated as the price of the symbol's base currency against the Account Currency, multiplied by the symbol's contract_size defined in the Symbol configuration.

Note: The conversion rate is calculated from the Top of Book (TOB) market price and does not include any markups.
deal.ccy Deal Account Currency - the currency of the Account, defined by the default_ccy value in the Account Group Settings.
#deal.margin_account Deal Margin Account - the client margin account the deal was booked to.

Note: "n/a" if no matching position row is found.

Available on Deal (Margin Account) only.
#deal.symbol_quote_ccy Deal Symbol Quote Currency - the quote currency of the traded symbol (e.g., USD for EURUSD).

Note: value is taken from symbol configuration field symbol.quote and represents the currency in which the symbol is quoted.
#deal.base Deal Position Base Change - the change in lots applied to the Position Base during this trade execution, increasing it for Buy trades and decreasing it for Sell trades.

Note:
- if order.side = Sell then #deal.base = - deal.size
- if order.side = Buy then #deal.base = deal.size.
#deal.base_usd Deal Position Base Change USD - the USD-denominated change applied to the Position Base during this trade execution, using the USD conversion rate defined for the traded symbol.

Note:
- if order.side = Sell then #deal.position_base_usd = - deal.size * deal.conv_usd
- if order.side = Buy then #deal.position_base_usd = deal.size * deal.conv_usd.
#deal.commission_booked_amount Deal Commission Booked Amount - the commission amount recorded per individual order and booked into the account wallet as a commission balance change (account_wallet.type = 5), expressed in the currency defined in CommissionConnectors.ccy.

Note: The value is derived from CommissionProfileSetting and represents the incremental commission impact of a single order. It is calculated as the difference between the final wallet balance after the commission booking for the order and the previous wallet balance value for the same Account, Wallet, and Currency.
#deal.close_date Deal Close Date - the date when the deal was executed by the Liquidity Provider.
Format: DD/MM/YYYY.
#deal.close_time Deal Close Time - the time when the deal was executed by the Liquidity Provider.
Format: HH:MM:SS.
#deal.exec_time Deal Execution Time - the time in milliseconds it took for the deal to be executed

Note:
#deal.exec_time = deal.milli - order.open_milli.
#deal.markup_exec Deal Total Executed Markup - the total executed markup for the deal in decimal format, combining the client-side markup and the Liquidity Provider markup, applied according to the order side. This value reflects the total adjustment applied to the deal price during execution.

Note:
- if order.side = Sell then #deal.markup_exec = - (deal.markup + deal.markup_lp)
- if order.side = Buy then #deal.markup_exec = deal.markup + deal.markup_lp.
#deal.markup_exec_pips Deal Total Executed Markup (Pips) - the total executed markup for the deal expressed in pips, combining client-side and Liquidity Provider markups.

Note:
- #deal.markup_exec_pips = #deal.markup_exec * 10^order.digits.
#deal.markup_exec_usd_per_unit Deal Total Executed Markup (USD per Base Unit) - the total executed markup for the deal, expressed in USD per one base unit. This value represents the same adjustment as #deal.markup_exec, but converted from quote currency to USD per base unit using the deal execution price and USD conversion rate.

Note:
#deal.markup_exec_usd_per_unit = (#deal.markup_exec * deal.conv_usd) / (order.factor * deal.price).
#deal.markup_exec_usd Deal Total Executed Markup USD - the total executed markup, converted to USD for the full deal size, combining client-side and Liquidity Provider markups. This value represents the impact of the total executed markup on the deal expressed in USD.

Note:
#deal.markup_exec_usd = (#deal.markup_exec * deal.size / deal.price) * deal.conv_usd.
#deal.markup_exec_eur Deal Total Executed Markup EUR - the total executed markup, converted to EUR for the full deal size, combining client-side and Liquidity Provider markups. This value represents the impact of the total executed markup on the deal expressed in EUR.

Note:
#deal.markup_exec_eur = (#deal.markup_exec * deal.size / deal.price) * deal.conv_eur.
#deal.markup_fix Deal Executed Fixed Markup - the executed fixed markup for the deal in decimal format, derived from the leg's fixed markup and applied according to the order side. This value reflects the fixed adjustment applied to the deal price based on the Markup Profile settings (Bid or Ask).

Note:
- if order.side = Sell then #deal.markup_fix = - leg.markup_fix
- if order.side = Buy then #deal.markup_fix = leg.markup_fix.
#deal.markup_fix_usd Deal Executed Fixed Markup USD - the executed fixed markup, converted to USD for the full deal size. This value represents the impact of the executed fixed markup on the deal expressed in USD.

Note:
#deal.markup_fix_usd = (#deal.markup_fix * deal.size/ deal.price) * deal.conv_usd.
#deal.markup_flex Deal Executed Flexible Markup - the executed variable markup for the deal in decimal format, derived from the leg's flexible markup and applied according to the order side. This value reflects the variable adjustment applied to the deal price based on the Markup Profile Min and Max Spread settings.

Note:
- if order.side = Sell then #deal.markup_flex = - leg.markup_flex
- if order.side = Buy then #deal.markup_flex = leg.markup_flex.
#deal.markup_flex_usd Deal Executed Flexible Markup USD - the executed variable markup, converted to USD for the full deal size. This value represents the impact of the executed variable markup on the deal expressed in USD.

Note:
#deal.markup_flex_usd = (#deal.markup_flex * deal.size/ deal.price) * deal.conv_usd.
#deal.markup_flex_diff Realized Flexible Markup - the applied portion of the flexible markup that was effectively realized during the deal, adjusted according to the order side and price movement. This value reflects the realized adjustment from the variable (flexible) markup relative to the requested leg price.

Note:
If order.side = Sell:
- if leg.markup_flex < 0 and deal.price < leg.price then #deal.markup_flex_diff = - LEAST(leg.price - deal.price, - leg.markup_flex);
- if leg.markup_flex > 0 and deal.price > leg.price then #deal.markup_flex_diff = LEAST(deal.price - leg.price, leg.markup_flex);
- else #deal.markup_flex_diff = 0

If order.side = Buy:
- if leg.markup_flex > 0 and deal.price > leg.price then #deal.markup_flex_diff = - LEAST(deal.price - leg.price, leg.markup_flex);
- if leg.markup_flex < 0 and deal.price < leg.price then #deal.markup_flex_diff = LEAST(leg.price - deal.price, - leg.markup_flex);
- else #deal.markup_flex_diff = 0.
#deal.markup_flex_diff_usd Realized Flexible Markup USD - the portion of the flexible markup effectively realized during the deal, converted to USD for the full deal size. This value represents the impact of the realized flexible markup on the deal expressed in USD.

Note:
#deal.markup_flex_diff_usd = (#deal.markup_flex_diff * deal.size / deal.price) * deal.conv_usd.
#deal.markup_lock Deal Locked Markup - the portion of the client markup applied to the deal after accounting for fixed and realized flexible markups, adjusted according to the order side. This value represents the locked client markup that actually affects the deal price.

Note:
- if order.side = Sell then #deal.markup_lock = - (deal.markup - leg.markup_fix - leg.markup_flex - #deal.markup_flex_diff)
- if order.side = Buy then #deal.markup_lock = deal.markup - leg.markup_fix - leg.markup_flex - #deal.markup_flex_diff.
#deal.markup_lock_usd Deal Locked Markup USD - the portion of the client markup applied to the deal, converted to USD for the full deal size after accounting for fixed and realized flexible markups. This value represents the impact of the locked client markup on the deal expressed in USD.

Note:
#deal.markup_lock_usd = (#deal.markup_lock * deal.size / deal.price) * deal.conv_usd.
#deal.markup_lp_side_adj Deal LP Side-Adjusted Markup - the executed Liquidity Provider markup for the deal in decimal format, applied according to the order side. This value reflects the Bid or Ask LP markup adjustment applied to the deal price based on the Provider Stream Settings in XCore.

Note:
- if order.side = Sell then #deal.markup_lp_side_adj = - deal.markup_lp
- if order.side = Buy then #deal.markup_lp_side_adj = deal.markup_lp.
#deal.markup_lp_usd_side_adj Deal LP Side-Adjusted Markup USD - the executed Liquidity Provider markup, converted to USD for the full deal size. This value represents the impact of the LP markup adjustment on the deal expressed in USD.

Note:
#deal.markup_lp_usd_side_adj = (#deal.markup_lp_side_adj * deal.size / deal.price) * deal.conv_usd.
#deal.markup_req Deal Requested Markup - the total requested markup for the deal in decimal format, combining the Liquidity Provider markup, fixed markup, and variable markup, applied according to the order side. This value reflects the total requested price adjustment applied to the deal.

Note:
- if order.side = Sell then #deal.markup_req = - (deal.markup_lp + leg.markup_fix + leg.markup_flex)
- if order.side = Buy then #deal.markup_req = deal.markup_lp + leg.markup_fix + leg.markup_flex.
#deal.markup_req_usd_per_unit Deal Requested Markup (USD per Base Unit) - the total requested markup for the deal, expressed in USD per one base unit. This value represents the same adjustment as #deal.markup_req, but converted from quote currency to USD per base unit using the deal execution price and USD conversion rate.

Note:
#deal.markup_req_usd_per_unit = (#deal.markup_req * deal.conv_usd) / (order.factor * deal.price).
#deal.markup_req_usd Deal Requested Markup USD - the total requested markup, converted to USD for the full deal size, combining the Liquidity Provider markup, fixed markup, and variable markup. This value represents the impact of the total requested markup on the deal expressed in USD.

Note:
#deal.markup_req_usd = (#deal.markup_req * deal.size / deal.price) * deal.conv_usd.
#deal.quote Deal Position Quote Change - the change in quote currency applied to the Position Quote during this trade execution, decreasing it for Buy trades and increasing it for Sell trades.

Note:
- if order.side = Sell then #deal.quote = deal.size * order.factor * deal.price
- if order.side = Buy then #deal.quote = - (deal.size * order.factor * deal.price).
#deal.quote_to_usd_conv Deal Quote-to-USD Conversion Factor - the conversion factor from the symbol Quote Currency price units to USD per one lot of the base currency, calculated at the moment of trade execution as the ratio of the base-to-USD conversion rate to the deal execution price.

Note:
#deal.quote_to_usd_conv = deal.conv_usd / deal.price;
multiplying this value by a price difference, markup, or slippage gives the USD amount per lot of deal size.
#deal.quote_to_ccy_conv Deal Quote-to-Account Currency Conversion Factor - the conversion factor from the symbol Quote Currency price units to the Deal Account Currency per one lot of the base currency, calculated at the moment of trade execution as the ratio of the base-to-account currency conversion rate to the deal execution price.

Note:
#deal.quote_to_ccy_conv = deal.conv / deal.price;
multiplying this value by a price difference, markup, or slippage gives the amount in the Deal Account Currency per lot of deal size.
#deal.slippage_maker Deal Maker Execution Slippage - the price difference between the executed deal and the requested leg price, applied according to the order side to reflect slippage from the maker. This value represents the slippage incurred relative to the leg's requested price.

Note:
- if order.side = Sell then #deal.slippage_maker = deal.price - leg.price
- if order.side = Buy then #deal.slippage_maker = - (deal.price - leg.price).
Returns 0 when deal.price = 0.

This metric measures slippage between the price sent by XCore to the Liquidity Provider and the actual execution price returned by the Liquidity Provider. It does not include client markups or Trade Lock adjustments.
#deal.slippage_maker_pips Deal Maker Execution Slippage (Pips) - the maker slippage for the deal, expressed in pips.

Note:
#deal.slippage_maker_pips = #deal.slippage_maker * 10^order.digits.
#deal.slippage_maker_usd_per_unit Deal Maker Execution Slippage (USD per Base Unit) - the maker slippage for the deal, expressed in USD per one base unit. This value represents the same adjustment as #deal.slippage_maker, but converted from quote currency to USD per base unit using the deal execution price and USD conversion rate.

Note:
#deal.slippage_maker_usd_per_unit = (#deal.slippage_maker * deal.conv_usd) / (order.factor * deal.price).
#deal.slippage_maker_usd Deal Maker Execution Slippage USD - the price difference between the executed deal and the requested leg price, converted to USD for the full deal size. This value represents the impact of the maker slippage on the deal expressed in USD.

Note:
#deal.slippage_maker_usd = (#deal.slippage_maker * deal.size / deal.price) * deal.conv_usd.
#deal.slippage_maker_eur Deal Maker Execution Slippage EUR - the price difference between the executed deal and the requested leg price, converted to EUR for the full deal size. This value represents the impact of the maker slippage on the deal expressed in EUR.

Note:
#deal.slippage_maker_eur = (#deal.slippage_maker * deal.size / deal.price) * deal.conv_eur.
#deal.slippage_taker_req Deal Taker Request Slippage - the slippage between the taker execution price and the requested order price, adjusted by the order side.

Note:
- if order.side = Sell then #deal.slippage_taker_req = (deal.price + deal.markup + deal.markup_lp) - order.price
- if order.side = Buy then #deal.slippage_taker_req = - (deal.price + deal.markup + deal.markup_lp - order.price).
- Slippage calculations are performed only when order.price > 0.
Returns 0 when deal.price = 0.

This metric measures slippage from the Client perspective. It compares the final execution price delivered to the Client (including markups and Trade Lock adjustments) against the requested order price.
#deal.slippage_taker_req_usd_per_unit Deal Taker Request Slippage (USD per Base Unit) - the taker slippage relative to the requested order price, expressed in USD per one base unit. This value represents the same adjustment as #deal.slippage_taker_req, but converted from quote currency to USD per base unit using the deal execution price and USD conversion rate.

Note:
#deal.slippage_taker_req_usd_per_unit = (#deal.slippage_taker_req * deal.conv_usd) / (order.factor * deal.price).
Slippage calculations are performed only when order.price > 0
#deal.slippage_taker_req_usd Deal Taker Request Slippage USD - the slippage between the taker execution price and the requested order price, converted to USD for the full deal size. This value represents the impact of the taker slippage relative to the requested price on the deal expressed in USD.

Note:
#deal.slippage_taker_req_usd = (#deal.slippage_taker_req * deal.size / deal.price) * deal.conv_usd.
Slippage calculations are performed only when order.price > 0
#deal.slippage_taker_req_eur Deal Taker Request Slippage EUR - the slippage between the taker execution price and the requested order price, converted to EUR for the full deal size. This value represents the impact of the taker slippage relative to the requested price on the deal expressed in EUR.

Note:
#deal.slippage_taker_req_eur = (#deal.slippage_taker_req * deal.size / deal.price) * deal.conv_eur.
Slippage calculations are performed only when order.price > 0
#deal.slippage_taker_tob Deal Taker TOB Slippage - the slippage between the taker execution price and the top-of-book price at the time order was placed, adjusted by the order side.

Note:
- if order.side = Sell and order.bid ≠ 0 then #deal.slippage_taker_tob = (deal.price + deal.markup + deal.markup_lp) - order.bid
- if order.side = Buy and order.ask ≠ 0 then #deal.slippage_taker_tob = - (deal.price + deal.markup + deal.markup_lp - order.ask).
- Slippage calculations are performed only when order.bid (order.ask) > 0.

This metric measures slippage relative to the market price available when the order was placed. It compares the final execution price delivered to the Client (including markups and Trade Lock adjustments) against the top-of-book Bid or Ask price at order creation.
#deal.slippage_taker_tob_usd_per_unit Deal Taker TOB Slippage (USD per Base Unit) - the taker slippage relative to the top-of-book price at the time order was placed, expressed in USD per one base unit. This value represents the same adjustment as #deal.slippage_taker_tob, but converted from quote currency to USD per base unit using the deal execution price and USD conversion rate.

Note:
#deal.slippage_taker_tob_usd_per_unit = (#deal.slippage_taker_tob * deal.conv_usd) / (order.factor * deal.price).
#deal.slippage_tob_usd Deal Taker TOB Slippage USD - the slippage between the taker execution price and the top-of-book price at the time order was placed, converted to USD for the full deal size. This value represents the impact of the taker slippage relative to the top-of-book price on the deal expressed in USD.

Note:
#deal.slippage_tob_usd = (#deal.slippage_taker_tob * deal.size / deal.price) * deal.conv_usd.
#deal.slippage_tob_eur Deal Taker TOB Slippage EUR - the slippage between the taker execution price and the top-of-book price at the time order was placed, converted to EUR for the full deal size. This value represents the impact of the taker slippage relative to the top-of-book price on the deal expressed in EUR.

Note:
#deal.slippage_tob_eur = (#deal.slippage_taker_tob * deal.size / deal.price) * deal.conv_eur.
#deal.slippage_tob_dpm Deal Taker TOB Slippage per Million - the taker slippage relative to the top-of-book price at the time the order was placed, normalized to parts per million (PPM) of the benchmark price. The PPM representation makes the value comparable across symbols with different price levels.

Note:
- if order.side = Sell and order.bid ≠ 0 then #deal.slippage_tob_dpm = 1,000,000 * ((deal.price + deal.markup + deal.markup_lp) - order.bid) / order.bid
- if order.side = Buy and order.ask ≠ 0 then #deal.slippage_tob_dpm = -1,000,000 * ((deal.price + deal.markup + deal.markup_lp) - order.ask) / order.ask
- no value if the benchmark price (order.bid/order.ask) is 0.

This metric measures slippage relative to the market price available when the order was placed. It compares the final execution price delivered to the Client (including markups and Trade Lock adjustments) against the top-of-book Bid or Ask price and expresses the difference in PPM.
#deal.taker_price Taker Execution Price - the final execution price for the deal, calculated as the Liquidity Provider execution price adjusted by the client markup and the Liquidity Provider markup.

Note:
#deal.taker_price = deal.price + deal.markup + deal.markup_lp.
#deal.volume Deal Volume - the nominal volume of the deal in base units of the traded instrument.

Note:
#deal.volume = deal.size * order.factor.
#deal.volume_usd Deal Volume USD - the USD-denominated volume of the deal at the moment of trade execution.

Note:
#deal.volume_usd = deal.size * deal.conv_usd.
#deal.volume_eur Deal Volume EUR - the EUR-denominated volume of the deal at the moment of trade execution.

Note:
#deal.volume_eur = deal.size * deal.conv_eur.
#deal.volume_acc_ccy Deal Volume CCY - the Account Currency-denominated volume of the deal at the moment of trade execution.

Note:
#deal.volume_acc_ccy = deal.size * deal.conv.
#filter.eod_symbol_price EOD Symbol Price - the last recorded price of the symbol up to the end of the selected report date range.

Note:
The price is taken from the filter table, which stores prices that passed the configured thresholds.
The price does not include markups from the Markup Profile Settings (Bid/Ask markups, Min/Max Spread).
The price includes the Bid or Ask markup from the Provider Stream Settings only.
The symbol contract size (symbol.contract_size) is not applied.

Note:
#filter.eod_symbol_price = (filter.bid_close + filter.ask_close) / 2, where filter.bid_close and filter.ask_close are each taken from the last record with that side > 0, so they can come from different records.
Returns 0 if either side has no price.

Note: For Deal-type reports, this field returns values only when the report template includes grouping by at least two fields (for example, order.subid3 and order.symbol).
#filter.eod_symbol_price_time EOD Symbol Price Timestamp - the later timestamp of the filter.bid_close and filter.ask_close values used to calculate #filter.eod_symbol_price. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.

Note: For Deal-type reports, this field returns values only when the report template includes grouping by at least two fields (for example, order.subid3 and order.symbol).

Deal A-Book and Deal B-Book offer the fields above except #filter.eod_symbol_price, #filter.eod_symbol_price_time, #leg.is_filled, #leg.is_partial, #leg.is_rejected, #leg.quotetime_lp, #leg.time_in_force, #order.count, #order.order_filled, #order.order_partial, #order.order_rejected, #order.spread and #order.time_in_force.

Report Type: Deal (ClickHouse)
report type: deal clickhouse
Field Name Description
order.open_order Order ID (order.order) - the unique XCore Order ID.
order.open_taker Order Connector (order.connector) - the connector name from the XCore configuration.
order.open_taker_type Order Connector Protocol (order.protocol) - the type of connector protocol from the XCore configuration, such as FIX, MT4, MT5, Giveup, etc.
order.open_taker_account Order Connector Account (order.account) - the name of the connector account within the XCore connector responsible for executing the order.
#order.connector/account The combined identifier (order.connector/account) of the order's execution channel, showing both the connector name and the specific connector account used for execution, formatted as "Connector/Account".

Note: Formed by concatenating order.connector (the connector name) and order.account (the connector account within the connector on XCore).
order.open_clordid Order Client Order ID (order.clordid) - the unique client Order ID.
order.open_subid1 Order SubID 1 (order.subid1) - the SubID 1 of the order.
order.open_subid2 Order SubID 2 (order.subid2) - the SubID 2 of the order. When orders originate from an MT4 and MT5 connector, this will be the Group Name.
order.open_subid3 Order SubID 3 (order.subid3) - the SubID 3 of the order. When orders originate from an MT4 and MT5 connector, this will be the Account Login number.
order.open_subid4 Order SubID 4 (order.subid4) - the SubID 4 of the order. When orders originate from an MT4 connector, this will be the MT4 Order Ticket Number. When orders originate from an MT5 connector, this will be the posID.
order.open_side Order Side (order.side) - the side of the Order indicates whether the order is a "buy" or "sell".
order.open_type Order Type (order.type) - the XCore order type.

Note: available values are:
- market
- limit
- stop
order.open_instrument Order Instrument (order.instrument) - the connector stream instrument name as known by the MT4, MT5 or FIX end client.
order.open_symbol Order Symbol (order.symbol) - the connector stream symbol name as known by the XCore.
order.open_contract_size Order Factor (order.factor) - the factor of the traded instrument, defined in the Symbol configuration by the contract_size value.
order.open_currency Order Currency (order.currency) - the currency in which the instrument is traded.
order.open_size Order Requested Size (order.size) - the size of the order requested by the client, expressed in lots.
order.open_minsize Order Minimum Split Size (order.minsize) - the minimum accepted fill size specified in the order request.
order.open_price Order Requested Price (order.price) - the requested order price at the time order was placed.

Note: order.price may be 0 for market orders, as the Price tag is optional and may not be included by the end client.
order.open_deviation Order Allowed Price Deviation (order.deviation) - the allowed deviation in points from the requested price up to which the order can be filled.

Note: a value of (-1) indicates unlimited deviation.
order.open_ttl Order TTL (order.ttl) - the maximum duration, in milliseconds, during which XCore will attempt to fill the order.
order.open_bid Order Bid Price (order.bid) - the top-of-book Bid price of the order at the time order was placed, including the pre-aggregated bid markup set up in XCore, determined by the markup and spread settings in the Markup Profile and Provider Stream Settings, and the Connector Profile Trade Lock Settings.
order.open_ask Order Ask Price (order.ask) - the top-of-book Ask price of the order at the time order was placed, including the pre-aggregated ask markup set up in XCore, determined by the markup and spread settings in the Markup Profile and Provider Stream Settings, and the Connector Profile Trade Lock Settings.
order.open_time Order Open Timestamp (order.open_milli) - the timestamp when the order was received in the XCore. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
order.close_message Order Message (order.message) - the message generated by XCore for the order in case of rejection.
order.close_time Order Close Timestamp (order.close_milli) - the timestamp when the order was completed in the XCore. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
#order.exec_time Order Execution Time - the time in milliseconds from order submission to order closure, regardless of whether the order was filled.

Note:
#order.exec_time = order.close_milli - order.open_milli.
Returns 0 if order.close_milli = 0 (the order is still open).
#order.open_date Order Open Date - the date when the order was received in the XCore.
Format: DD/MM/YYYY.
#order.spread Order Spread - the difference between the top-of-book Ask and Bid prices of the order at the time it was placed.

Note:
#order.spread = order.ask - order.bid.
leg.open_leg Leg ID (leg.leg) - the unique Leg ID generated by XCore when an order is split into multiple legs to be sent to one or more Liquidity Providers for execution.

Note: If an XCore Order ID 12345 is split into two legs, the system generates two leg IDs (0 and 1) for this order:
- 12345-0
- 12345-1.
leg.open_batch Leg Batch ID (leg.batch) - the batch ID of a leg.

Note: an order can be initially split into one or multiple legs as batch 0. If a leg is rejected, XCore will resend it for execution as batch 1, and so on.
leg.open_b_book Leg B-Book Execution (leg.b_book) - the flag that shows whether a trade leg was executed through the B-Book or A-Book.

Note: available values are:
0 - Leg was executed through A-Book.
1 - Leg was executed through B-Book.
2 - Cross-hedge leg.
3 - Leg was executed as Synthetic A-Book.

For trades partially executed in both books, the report will show two separate entries: one with 0 for the A-Book part and one with 1 for the B-Book part.
leg.open_maker Leg Provider (leg.provider) - for A-Book execution, the Liquidity Provider to which the Leg was sent for execution. For B-Book execution, the Provider whose price quote was used to execute the trade.
leg.open_maker_type Leg Provider Protocol (leg.protocol) - the type of Liquidity Provider implementation.
leg.open_maker_account Leg Provider Account (leg.account) - the account Tag 1 value sent to the Liquidity Provider.
leg.open_clordid Leg Client Order ID (leg.clordid) - the client Order ID sent to the Liquidity Provider.
leg.open_ord_type Leg Type (leg.type) - the Leg type.

Note: available values are:
- market
- limit
- pq (prequoted), depending on the order type, the DealerTrade mode and the provider.
leg.open_instrument Leg Provider Instrument (leg.instrument) - the instrument name at the Liquidity Provider to which the trade was sent for execution.
leg.open_size Leg Requested Size (leg.size) - the requested size of leg sent to the Liquidity Provider for execution, in lots.
leg.open_minsize Leg Minimum Execution Size (leg.minsize) - the lowest leg execution size to be sent to the Liquidity Provider for execution.
leg.open_price Leg Requested Price (leg.price) - the requested price of leg sent to the Liquidity Provider for execution.
leg.open_ttl Leg TTL (leg.ttl) - the remaining time in milliseconds that the XCore will attempt to fill the leg in addition to any subsequent legs.
leg.open_markup_delta_fix Leg Markup Fix (leg.markup_fix) - the fixed markups in decimal format applied on the specific trade based on Markup Profile Bid or Ask markup settings.
leg.open_markup_delta_flex Leg Markup Flex (leg.markup_flex) - the variable markups in decimal format applied on the specific trade based on the Markup Profile Min and Max Spread Settings.
leg.open_quote_ref Leg Provider Quote Reference (leg.quoteref) - the Liquidity Provider quote reference ID chosen by the XCore for leg execution.
leg.open_quote_time Leg Provider Quote Timestamp (system side) (leg.quotetime) - the timestamp of when the quote update was received in the XCore. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
leg.open_time Leg Open Timestamp (leg.open_milli) - the timestamp when the leg was created in the XCore. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
leg.close_time Leg Close Timestamp (leg.close_milli) - the timestamp when the leg was completed in the XCore. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
#leg.ab_book Leg Book Type - the book type for the trade leg, derived from the Leg B-Book Execution flag (leg.b_book).

Note: available values are:
A - leg.b_book = 0 (A-book).
B - any other leg.b_book value (B-book, cross-hedge or Synthetic A-book).

For trades partially executed in both books, the report will show two separate entries: one with A for the A-Book part and one with B for the B-Book part.
#leg.close_date Leg Close Date - the date when the leg was executed in the XCore.
Format: DD/MM/YYYY.
#leg.close_time_display Leg Close Time (#leg.close_time) - the time when the leg was executed in the XCore.
Format: HH:MM:SS.
#leg.exec_time Leg Execution Time - the time in milliseconds it took for the leg to get executed.

Note:
#leg.exec_time = leg.close_milli - leg.open_milli.
#leg.open_date Order Open Date - the date when the leg was created in the XCore.
Format: DD/MM/YYYY.
#leg.open_time_display Order Open Time (#leg.open_time) - the time when the leg was created in the XCore.
Format: HH:MM:SS.
#leg.quote_date Leg Provider Quote Date (system side) - the date when the quote update was received in the XCore.
Format: DD/MM/YYYY.
#leg.quote_time_display Leg Provider Quote Time (system side) (#leg.quote_time) - the time when the quote update was received in the XCore.
Format: HH:MM:SS.
deal.done_deal Deal ID (deal.deal) - the unique Deal ID generated by XCore when a leg sent to a Liquidity Provider is further split by the Liquidity Provider into one or several deals.

Note: If a leg 12345-0 is split into two deals, the system generates two deal IDs (0 and 1) for this leg:
- 12345-0-0
- 12345-0-1.
#deal_ch.unique_id Unique Deal Identifier (#deal.unique_id) - a single identifier that combines the XCore Order ID, Leg ID, and Deal ID into one value.
Format: order.order-leg.leg-deal.deal

Example:
If Order ID = 12345, Leg ID = 0, and Deal ID = 1, then #deal.unique_id = 12345-0-1.
deal.done_size Deal Execution Size (deal.size) - the size of the deal filled and confirmed by the Liquidity Provider, in lots.
deal.done_price Deal Execution Price (deal.price) - the price at which the deal was executed, excluding all markups configured in XCore. For A-Book, this is the price confirmed by the Liquidity Provider. For B-Book, this is the liquidity pool top-of-book price on the traded side.
leg.open_markup_delta_maker Liquidity Provider Markup (deal.markup_lp) - the value of the Bid or Ask markup applied to the raw Liquidity Provider price, taken from the Provider Stream Settings configured in XCore and expressed in decimal format.
deal.done_ordid Deal Provider Order ID (deal.ordid) - the Order ID assigned by the LP.
deal.done_execid Deal Provider Execution ID (deal.execid) - the Execution ID received from the LP.
deal.done_valuedate Deal Value Date (deal.valuedate) - the deal value date received from the Liquidity Provider.
deal.done_message Deal Message (deal.message) - the message received from the Liquidity Provider for cancelled or rejected deals.
deal.done_time Deal Execution Timestamp (deal.milli) - the time when XCore recorded the fill received from the Liquidity Provider. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
deal.done_conv_usd Deal Base Conversion to USD (deal.conv_usd) - the USD conversion rate at the moment of trade execution, converting the deal size in lots to USD, calculated as the price of the symbol's base currency against USD, multiplied by the symbol's contract_size defined in the Symbol configuration.

Note: The conversion rate is calculated from the Top of Book (TOB) market price and does not include any markups.
#deal_ch.base Deal Position Base Change (#deal.base) - the change in lots applied to the Position Base during this trade execution, increasing it for Buy trades and decreasing it for Sell trades.

Note:
- if order.side = Sell then #deal.base = - deal.size
- if order.side = Buy then #deal.base = deal.size.
#deal_ch.base_usd Deal Position Base Change USD (#deal.base_usd) - the USD-denominated change applied to the Position Base during this trade execution, using the USD conversion rate defined for the traded symbol.

Note:
- if order.side = Sell then #deal.position_base_usd = - deal.size * deal.conv_usd
- if order.side = Buy then #deal.position_base_usd = deal.size * deal.conv_usd.
#deal.close_date Deal Close Date - the date when the deal was executed by the Liquidity Provider.
Format: DD/MM/YYYY.
#deal.close_time_display Deal Close Time (#deal.close_time) - the time when the deal was executed by the Liquidity Provider.
Format: HH:MM:SS.
#deal_ch.exec_time Deal Execution Time (#deal.exec_time) - the time in milliseconds it took for the deal to be executed

Note:
#deal.exec_time = deal.milli - order.open_milli.
#deal_ch.markup_exec Deal Total Executed Markup (#deal.markup_exec) - the total executed markup for the deal in decimal format, combining the client-side markup and the Liquidity Provider markup, applied according to the order side. This value reflects the total adjustment applied to the deal price during execution.

Note:
- if order.side = Sell then #deal.markup_exec = - (deal.markup + deal.markup_lp)
- if order.side = Buy then #deal.markup_exec = deal.markup + deal.markup_lp.
#deal_ch.markup_exec_usd_per_unit Deal Total Executed Markup (USD per Base Unit) (#deal.markup_exec_usd_per_unit) - the total executed markup for the deal, expressed in USD per one base unit. This value represents the same adjustment as #deal.markup_exec, but converted from quote currency to USD per base unit using the deal execution price and USD conversion rate.

Note:
#deal.markup_exec_usd_per_unit = (#deal.markup_exec * deal.conv_usd) / (order.factor * deal.price).
#deal_ch.markup_exec_usd Deal Total Executed Markup USD (#deal.markup_exec_usd) - the total executed markup, converted to USD for the full deal size, combining client-side and Liquidity Provider markups. This value represents the impact of the total executed markup on the deal expressed in USD.

Note:
#deal.markup_exec_usd = (#deal.markup_exec * deal.size / deal.price) * deal.conv_usd.
#deal_ch.markup_fix_side_adj Deal Executed Fixed Markup (#deal.markup_fix) - the executed fixed markup for the deal in decimal format, derived from the leg's fixed markup and applied according to the order side. This value reflects the fixed adjustment applied to the deal price based on the Markup Profile settings (Bid or Ask).

Note:
- if order.side = Sell then #deal.markup_fix = - leg.markup_fix
- if order.side = Buy then #deal.markup_fix = leg.markup_fix.
#deal_ch.markup_fix_usd Deal Executed Fixed Markup USD (#deal.markup_fix_usd) - the executed fixed markup, converted to USD for the full deal size. This value represents the impact of the executed fixed markup on the deal expressed in USD.

Note:
#deal.markup_fix_usd = (#deal.markup_fix * deal.size/ deal.price) * deal.conv_usd.
#deal_ch.markup_flex_side_adj Deal Executed Flexible Markup (#deal.markup_flex) - the executed variable markup for the deal in decimal format, derived from the leg's flexible markup and applied according to the order side. This value reflects the variable adjustment applied to the deal price based on the Markup Profile Min and Max Spread settings.

Note:
- if order.side = Sell then #deal.markup_flex = - leg.markup_flex
- if order.side = Buy then #deal.markup_flex = leg.markup_flex.
#deal_ch.markup_flex_usd Deal Executed Flexible Markup USD (#deal.markup_flex_usd) - the executed variable markup, converted to USD for the full deal size. This value represents the impact of the executed variable markup on the deal expressed in USD.

Note:
#deal.markup_flex_usd = (#deal.markup_flex * deal.size/ deal.price) * deal.conv_usd.
#deal_ch.markup_flex_diff Realized Flexible Markup (#deal.markup_flex_diff) - the applied portion of the flexible markup that was effectively realized during the deal, adjusted according to the order side and price movement. This value reflects the realized adjustment from the variable (flexible) markup relative to the requested leg price.

Note:
If order.side = Sell:
- if leg.markup_flex < 0 and deal.price < leg.price then #deal.markup_flex_diff = - LEAST(leg.price - deal.price, - leg.markup_flex);
- if leg.markup_flex > 0 and deal.price > leg.price then #deal.markup_flex_diff = LEAST(deal.price - leg.price, leg.markup_flex);
- else #deal.markup_flex_diff = 0

If order.side = Buy:
- if leg.markup_flex > 0 and deal.price > leg.price then #deal.markup_flex_diff = - LEAST(deal.price - leg.price, leg.markup_flex);
- if leg.markup_flex < 0 and deal.price < leg.price then #deal.markup_flex_diff = LEAST(leg.price - deal.price, - leg.markup_flex);
- else #deal.markup_flex_diff = 0.
#deal_ch.markup_flex_diff_usd Realized Flexible Markup USD (#deal.markup_flex_diff_usd) - the portion of the flexible markup effectively realized during the deal, converted to USD for the full deal size. This value represents the impact of the realized flexible markup on the deal expressed in USD.

Note:
#deal.markup_flex_diff_usd = (#deal.markup_flex_diff * deal.size / deal.price) * deal.conv_usd.
#deal_ch.markup_lock_side_adj Deal Locked Markup (#deal.markup_lock) - the portion of the client markup applied to the deal after accounting for fixed and realized flexible markups, adjusted according to the order side. This value represents the locked client markup that actually affects the deal price.

Note:
- if order.side = Sell then #deal.markup_lock = - (deal.markup - leg.markup_fix - leg.markup_flex - #deal.markup_flex_diff)
- if order.side = Buy then #deal.markup_lock = deal.markup - leg.markup_fix - leg.markup_flex - #deal.markup_flex_diff.
#deal_ch.markup_lock_usd Deal Locked Markup USD (#deal.markup_lock_usd) - the portion of the client markup applied to the deal, converted to USD for the full deal size after accounting for fixed and realized flexible markups. This value represents the impact of the locked client markup on the deal expressed in USD.

Note:
#deal.markup_lock_usd = (#deal.markup_lock * deal.size / deal.price) * deal.conv_usd.
#deal_ch.markup_lp_side_adj Deal LP Side-Adjusted Markup (#deal.markup_lp_side_adj) - the executed Liquidity Provider markup for the deal in decimal format, applied according to the order side. This value reflects the Bid or Ask LP markup adjustment applied to the deal price based on the Provider Stream Settings in XCore.

Note:
- if order.side = Sell then #deal.markup_lp_side_adj = - deal.markup_lp
- if order.side = Buy then #deal.markup_lp_side_adj = deal.markup_lp.
#deal_ch.markup_lp_usd_side_adj Deal LP Side-Adjusted Markup USD (#deal.markup_lp_usd_side_adj) - the executed Liquidity Provider markup, converted to USD for the full deal size. This value represents the impact of the LP markup adjustment on the deal expressed in USD.

Note:
#deal.markup_lp_usd_side_adj = (#deal.markup_lp_side_adj * deal.size / deal.price) * deal.conv_usd.
#deal_ch.markup_req Deal Requested Markup (#deal.markup_req) - the total requested markup for the deal in decimal format, combining the Liquidity Provider markup, fixed markup, and variable markup, applied according to the order side. This value reflects the total requested price adjustment applied to the deal.

Note:
- if order.side = Sell then #deal.markup_req = - (deal.markup_lp + leg.markup_fix + leg.markup_flex)
- if order.side = Buy then #deal.markup_req = deal.markup_lp + leg.markup_fix + leg.markup_flex.
#deal_ch.markup_req_usd_per_unit Deal Requested Markup (USD per Base Unit) (#deal.markup_req_usd_per_unit) - the total requested markup for the deal, expressed in USD per one base unit. This value represents the same adjustment as #deal.markup_req, but converted from quote currency to USD per base unit using the deal execution price and USD conversion rate.

Note:
#deal.markup_req_usd_per_unit = (#deal.markup_req * deal.conv_usd) / (order.factor * deal.price).
#deal_ch.markup_req_usd Deal Requested Markup USD (#deal.markup_req_usd) - the total requested markup, converted to USD for the full deal size, combining the Liquidity Provider markup, fixed markup, and variable markup. This value represents the impact of the total requested markup on the deal expressed in USD.

Note:
#deal.markup_req_usd = (#deal.markup_req * deal.size / deal.price) * deal.conv_usd.
#deal_ch.quote Deal Position Quote Change (#deal.quote) - the change in quote currency applied to the Position Quote during this trade execution, decreasing it for Buy trades and increasing it for Sell trades.

Note:
- if order.side = Sell then #deal.quote = deal.size * order.factor * deal.price
- if order.side = Buy then #deal.quote = - (deal.size * order.factor * deal.price).
#deal.quote_to_usd_conv Deal Quote-to-USD Conversion Factor - the conversion factor from the symbol Quote Currency price units to USD per one lot of the base currency, calculated at the moment of trade execution as the ratio of the base-to-USD conversion rate to the deal execution price.

Note:
#deal.quote_to_usd_conv = deal.conv_usd / deal.price;
multiplying this value by a price difference, markup, or slippage gives the USD amount per lot of deal size.
#deal_ch.slippage_maker Deal Maker Execution Slippage (#deal.slippage_maker) - the price difference between the executed deal and the requested leg price, applied according to the order side to reflect slippage from the maker. This value represents the slippage incurred relative to the leg's requested price.

Note:
- if order.side = Sell then #deal.slippage_maker = deal.price - leg.price
- if order.side = Buy then #deal.slippage_maker = - (deal.price - leg.price).

This metric measures slippage between the price sent by XCore to the Liquidity Provider and the actual execution price returned by the Liquidity Provider. It does not include client markups or Trade Lock adjustments.
#deal_ch.slippage_maker_usd_per_unit Deal Maker Execution Slippage (USD per Base Unit) (#deal.slippage_maker_usd_per_unit) - the maker slippage for the deal, expressed in USD per one base unit. This value represents the same adjustment as #deal.slippage_maker, but converted from quote currency to USD per base unit using the deal execution price and USD conversion rate.

Note:
#deal.slippage_maker_usd_per_unit = (#deal.slippage_maker * deal.conv_usd) / (order.factor * deal.price).
#deal_ch.slippage_maker_usd Deal Maker Execution Slippage USD (#deal.slippage_maker_usd) - the price difference between the executed deal and the requested leg price, converted to USD for the full deal size. This value represents the impact of the maker slippage on the deal expressed in USD.

Note:
#deal.slippage_maker_usd = (#deal.slippage_maker * deal.size / deal.price) * deal.conv_usd.
#deal_ch.slippage_taker_req Deal Taker Request Slippage (#deal.slippage_taker_req) - the slippage between the taker execution price and the requested order price, adjusted by the order side.

Note:
- if order.side = Sell then #deal.slippage_taker_req = (deal.price + deal.markup + deal.markup_lp) - order.price
- if order.side = Buy then #deal.slippage_taker_req = - (deal.price + deal.markup + deal.markup_lp - order.price).
- Slippage calculations are performed only when order.price > 0.

This metric measures slippage from the Client perspective. It compares the final execution price delivered to the Client (including markups and Trade Lock adjustments) against the requested order price.
#deal_ch.slippage_taker_req_usd_per_unit Deal Taker Request Slippage (USD per Base Unit) (#deal.slippage_taker_req_usd_per_unit) - the taker slippage relative to the requested order price, expressed in USD per one base unit. This value represents the same adjustment as #deal.slippage_taker_req, but converted from quote currency to USD per base unit using the deal execution price and USD conversion rate.

Note:
#deal.slippage_taker_req_usd_per_unit = (#deal.slippage_taker_req * deal.conv_usd) / (order.factor * deal.price).
Slippage calculations are performed only when order.price > 0
#deal_ch.slippage_taker_req_usd Deal Taker Request Slippage USD (#deal.slippage_taker_req_usd) - the slippage between the taker execution price and the requested order price, converted to USD for the full deal size. This value represents the impact of the taker slippage relative to the requested price on the deal expressed in USD.

Note:
#deal.slippage_taker_req_usd = (#deal.slippage_taker_req * deal.size / deal.price) * deal.conv_usd.
Slippage calculations are performed only when order.price > 0
#deal_ch.slippage_taker_tob Deal Taker TOB Slippage (#deal.slippage_taker_tob) - the slippage between the taker execution price and the top-of-book price at the time order was placed, adjusted by the order side.

Note:
- if order.side = Sell and order.bid ≠ 0 then #deal.slippage_taker_tob = (deal.price + deal.markup + deal.markup_lp) - order.bid
- if order.side = Buy and order.ask ≠ 0 then #deal.slippage_taker_tob = - (deal.price + deal.markup + deal.markup_lp - order.ask).
- Slippage calculations are performed only when order.bid (order.ask) > 0.

This metric measures slippage relative to the market price available when the order was placed. It compares the final execution price delivered to the Client (including markups and Trade Lock adjustments) against the top-of-book Bid or Ask price at order creation.
#deal_ch.slippage_taker_tob_usd_per_unit Deal Taker TOB Slippage (USD per Base Unit) (#deal.slippage_taker_tob_usd_per_unit) - the taker slippage relative to the top-of-book price at the time order was placed, expressed in USD per one base unit. This value represents the same adjustment as #deal.slippage_taker_tob, but converted from quote currency to USD per base unit using the deal execution price and USD conversion rate.

Note:
#deal.slippage_taker_tob_usd_per_unit = (#deal.slippage_taker_tob * deal.conv_usd) / (order.factor * deal.price).
#deal_ch.slippage_tob_usd Deal Taker TOB Slippage USD (#deal.slippage_tob_usd) - the slippage between the taker execution price and the top-of-book price at the time order was placed, converted to USD for the full deal size. This value represents the impact of the taker slippage relative to the top-of-book price on the deal expressed in USD.

Note:
#deal.slippage_tob_usd = (#deal.slippage_taker_tob * deal.size / deal.price) * deal.conv_usd.
#deal_ch.slippage_tob_dpm Deal Taker TOB Slippage per Million (#deal.slippage_tob_dpm) - the taker slippage relative to the top-of-book price at the time the order was placed, normalized to parts per million (PPM) of the benchmark price. The PPM representation makes the value comparable across symbols with different price levels.

Note:
- if order.side = Sell and order.bid ≠ 0 then #deal_ch.slippage_tob_dpm = 1,000,000 * ((deal.price + deal.markup + deal.markup_lp) - order.bid) / order.bid
- if order.side = Buy and order.ask ≠ 0 then #deal_ch.slippage_tob_dpm = -1,000,000 * ((deal.price + deal.markup + deal.markup_lp) - order.ask) / order.ask
- no value if the benchmark price (order.bid/order.ask) is 0.

This metric measures slippage relative to the market price available when the order was placed. It compares the final execution price delivered to the Client (including markups and Trade Lock adjustments) against the top-of-book Bid or Ask price and expresses the difference in PPM.
#deal_ch.taker_price Taker Execution Price (#deal.taker_price) - the final execution price for the deal, calculated as the Liquidity Provider execution price adjusted by the client markup and the Liquidity Provider markup.

Note:
#deal.taker_price = deal.price + deal.markup + deal.markup_lp.
#deal_ch.volume Deal Volume (#deal.volume) - the nominal volume of the deal in base units of the traded instrument.

Note:
#deal.volume = deal.size * order.factor.
#deal.volume_usd Deal Volume USD - the USD-denominated volume of the deal at the moment of trade execution.

Note:
#deal.volume_usd = deal.size * deal.conv_usd.
Report Type: Max Spread Reject Report
report type: max spread reject report
Field Name Description
#max_spread_reject.time Time (order.open_milli) - the time on which the order was received in the XCore . Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
#max_spread_reject.order Order ID (order.order) - the unique XCore Order ID .
#max_spread_reject.connector Connector (order.connector) - the connector name from the XCore configuration.
#max_spread_reject.instrument Instrument (order.instrument) - the connector stream instrument name as known by the MT4, MT5 or FIX end client.
#max_spread_reject.symbol Symbol (order.symbol) - the connector stream symbol name as known by the XCore.
#max_spread_reject.amount Amount (order.size) - the size of the order requested by the client, expressed in lots.
#max_spread_reject.bid Bid (#book.bid_quote_price_lp_markup) - the raw bid quote price received from the Liquidity Provider at the time the order was placed, including any pre-aggregation markups configured under the Liquidity Provider Component.
#max_spread_reject.ask Ask (#book.ask_quote_price_lp_markup) - the raw ask quote price received from the Liquidity Provider at the time the order was placed, including any pre-aggregation markups configured under the Liquidity Provider Component.
#max_spread_reject.spread Spread - the difference between the Ask and Bid quote prices received from the Liquidity Provider at the time the order was placed, including any pre-aggregation markups configured under the Liquidity Provider Component.

Note:
#max_spread_reject.spread = #book.ask_quote_price_lp_markup - #book.bid_quote_price_lp_markup.
#max_spread_reject.max_spread Max Spread - the maximum spread configured via MarkupProfileSetting.spread_max for the relevant symbol at the time the order was placed .

Note:
#max_spread_reject.max_spread = #book.ask_quote_price_markup - #book.bid_quote_price_markup.
#max_spread_reject.spread_mode Spread Mode - the spread execution mode recorded at the time of rejection.

Note: this report includes only orders rejected under a blocking mode (reject or invalidate).
Report Type: Orders Count
report type: orders count
Field Name Description
#order.count Order Count - the number of filled or partially filled orders in the selected date range.

Note:
#order.count = COUNT(DISTINCT deal.order), counting only deals where deal.size ≠ 0.
Report Type: Order Details
report type: order details
Field Name Description
order.order Order ID - the unique XCore Order ID.
order.connector Order Connector - the connector name from the XCore configuration.
order.protocol Order Connector Protocol - the type of connector protocol from the XCore configuration, such as FIX, MT4, MT5, Giveup, etc.
order.account Order Connector Account - the name of the connector account within the XCore connector responsible for executing the order.
order.clordid Order Client Order ID - the unique client Order ID.
order.subid1 Order SubID 1 - the SubID 1 of the order.
order.subid2 Order SubID 2 - the SubID 2 of the order. When orders originate from an MT4 and MT5 connector, this will be the Group Name.
order.subid3 Order SubID 3 - the SubID 3 of the order. When orders originate from an MT4 and MT5 connector, this will be the Account Login number.
order.subid4 Order SubID 4 - the SubID 4 of the order. When orders originate from an MT4 connector, this will be the MT4 Order Ticket Number. When orders originate from an MT5 connector, this will be the posID.
order.side Order Side - the side of the Order indicates whether the order is a "buy" or "sell".
order.type Order Type - the XCore order type.

Note: available values are:
- market
- limit
- stop
order.instrument Order Instrument - the connector stream instrument name as known by the MT4, MT5 or FIX end client.
order.symbol Order Symbol - the connector stream symbol name as known by the XCore.
order.digits Order Symbol Digits - the number of digits defined for the symbol, representing decimals after the “.” and excluding the last pip value digit.
order.factor Order Factor - the factor of the traded instrument, defined in the Symbol configuration by the contract_size value.
order.currency Order Currency - the currency in which the instrument is traded.
order.size Order Requested Size - the size of the order requested by the client, expressed in lots.
order.minsize Order Minimum Split Size - the minimum accepted fill size specified in the order request.
order.price Order Requested Price - the requested order price at the time order was placed.

Note: order.price may be 0 for market orders, as the Price tag is optional and may not be included by the end client.
order.deviation Order Allowed Price Deviation - the allowed deviation in points from the requested price up to which the order can be filled.

Note: a value of (-1) indicates unlimited deviation.
order.ttl Order TTL - the maximum duration, in milliseconds, during which XCore will attempt to fill the order.
order.mid Order Mid Price - the Mid price between the top-of-book bid and ask as seen by XCore at the time order was placed, determined based on markups configured in the Provider Stream Settings and the Connector Profile Trade Lock Settings.
order.bid Order Bid Price - the top-of-book Bid price of the order at the time order was placed, including the pre-aggregated bid markup set up in XCore, determined by the markup and spread settings in the Markup Profile and Provider Stream Settings, and the Connector Profile Trade Lock Settings.
order.ask Order Ask Price - the top-of-book Ask price of the order at the time order was placed, including the pre-aggregated ask markup set up in XCore, determined by the markup and spread settings in the Markup Profile and Provider Stream Settings, and the Connector Profile Trade Lock Settings.
order.lq_pool Order Liquidity Pool - the name of the liquidity pool associated with the executed order.
order.lq_profile Order Liquidity Profile (Markup Profile) - the name of the markup profile associated with the executed order.
order.open_milli Order Open Timestamp - the timestamp when the order was received in the XCore. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
order.open_micro Order Open Micro Timestamp - XCore's microsecond counter (0–999999) when the order was received, not part of the timestamp; use it to calculate the difference between two events (the counter restarts every second).
order.fillsize Order Fill Size - the size of the order filled in XCore, in lots.

Note: The fill size is the sum of the individual filled legs of the order.
order.fillprice Order Fill Price - the client overall fill price, including markups defined in the XCore, determined by the markup and spread settings in the Markup Profile and Provider Stream Settings, and the Connector Profile Trade Lock Settings.

Note: the fill price is the volume-weighted average price fill price of the filled legs (leg.fillprice2).
order.message Order Message - the message generated by XCore for the order in case of rejection.
order.close_milli Order Close Timestamp - the timestamp when the order was completed in the XCore. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
order.close_micro Order Close Micro Timestamp - XCore's microsecond counter (0–999999) when the order was completed, not part of the timestamp; use it to calculate the difference between two events (the counter restarts every second).
#order.exec_time Order Execution Time - the time in milliseconds from order submission to order closure, regardless of whether the order was filled.

Note:
#order.exec_time = order.close_milli - order.open_milli.
Returns 0 if order.close_milli = 0 (the order is still open).
#order.delta_fill Order Fill Execution Time - the time in milliseconds from order submission to the first full or partial fill, provided the order has been filled and closed.

Note:
If order.fillsize > 0 and order.close_milli > 0:
#order.delta_fill = order.close_milli - order.open_milli.
Returns null otherwise, including for rejected or still-open orders.
#order.open_date Order Open Date - the date when the order was received in the XCore.
Format: DD/MM/YYYY.
#order.open_time Order Open Time - the time when the order was received in the XCore.
Format: HH:MM:SS.
#order.slippage Order Price Slippage (Decimal) - the difference between the Order Requested Price (or the top-of-book price) and the Order Fill Price, displayed in decimal format.

Note:
If order.side = SELL:
- if order.price > 0 then #order.slippage = order.fillprice - order.price
- else #order.slippage = order.fillprice - order.bid

If order.side = BUY:
- if order.price > 0 then #order.slippage = order.price - order.fillprice
- else #order.slippage = order.ask - order.fillprice.
#order.slippage_pips Order Price Slippage (Pips) - the difference between the Order Requested Price (or the top-of-book price) and the Order Fill Price, expressed in pips.

Note:
- #order.slippage_pips = #order.slippage * 10^order.digits
#order.state Order State - the status of the order.

Note: available values are:
- Pending - the order has not been filled and is still open (order.fillsize = 0 and order.close_milli = 0);
- Rejected - the order was not filled and has been closed (order.fillsize = 0 and order.close_milli > 0);
- Partial - the order was partially filled (order.size > order.fillsize);
- Filled - the order was fully filled (order.size = order.fillsize).
#order.time_in_force Order TimeInForce - the order's Time In Force instruction, showing how the order can be filled.

Note: available values are:
- GTC (Good-Til-Cancelled) - when order.ttl = -1;
- FOK (Fill-Or-Kill) - when order.ttl ≠ -1 and order.minsize = order.size;
- IOC (Immediate-Or-Cancel) - otherwise.
#deal.volume_usd Order Volume USD - the total USD-denominated volume of all deals associated with the order at the moment of trade execution.

Note: available values are:
#deal.volume_usd = Σ(deal.size * deal.conv_usd) for all deals linked to the order - when the order has at least one deal;
null - otherwise.
#deal.volume_eur Order Volume EUR - the total EUR-denominated volume of all deals associated with the order at the moment of trade execution.

Note:
#deal.volume_eur = Σ(deal.size * deal.conv_eur) for all deals linked to the order.
#order.order_count All Orders Count - a constant value of 1 per order. Use the Sum aggregation to get the total number of orders in the selected group.

Note: Counts all orders in the group, regardless of status.
#order.is_filled_partial Order Filled or Partial Flag - indicates whether the order received any fill.

Note: available values are:
1 - the order received a full or partial fill (order.fillsize > 0);
null - otherwise.
#order.fillrate_size Order Fill Rate by Size - the fill rate of the order based on filled size. With the Ratio aggregation, shows the percentage of requested size that was filled across the group.

Note:
#order.fillrate_size (Ratio) = 100 * Σ(order.fillsize) / Σ(order.size).
With any Column Type other than Ratio, this field behaves as Order Fill Size (#order.fillsize).
#order.reject_message Order Reject Reason - the reason why the order received no fill.

Note: available values are:
order.message - when order.fillsize = 0 and order.message is present (excluding the 'n/a' placeholder);
null - otherwise.
Report Type: Order Reject
report type: order reject
Field Name Description
order.order Order ID - the unique XCore Order ID.
order.connector Order Connector - the connector name from the XCore configuration.
order.protocol Order Connector Protocol - the type of connector protocol from the XCore configuration, such as FIX, MT4, MT5, Giveup, etc.
order.account Order Connector Account - the name of the connector account within the XCore connector responsible for executing the order.
order.clordid Order Client Order ID - the unique client Order ID.
order.subid1 Order SubID 1 - the SubID 1 of the order.
order.subid2 Order SubID 2 - the SubID 2 of the order. When orders originate from an MT4 and MT5 connector, this will be the Group Name.
order.subid3 Order SubID 3 - the SubID 3 of the order. When orders originate from an MT4 and MT5 connector, this will be the Account Login number.
order.subid4 Order SubID 4 - the SubID 4 of the order. When orders originate from an MT4 connector, this will be the MT4 Order Ticket Number. When orders originate from an MT5 connector, this will be the posID.
order.side Order Side - the side of the Order indicates whether the order is a "buy" or "sell".
order.type Order Type - the XCore order type.

Note: available values are:
- market
- limit
- stop
order.instrument Order Instrument - the connector stream instrument name as known by the MT4, MT5 or FIX end client.
order.symbol Order Symbol - the connector stream symbol name as known by the XCore.
order.digits Order Symbol Digits - the number of digits defined for the symbol, representing decimals after the “.” and excluding the last pip value digit.
order.factor Order Factor - the factor of the traded instrument, defined in the Symbol configuration by the contract_size value.
order.currency Order Currency - the currency in which the instrument is traded.
order.size Order Requested Size - the size of the order requested by the client, expressed in lots.
order.minsize Order Minimum Split Size - the minimum accepted fill size specified in the order request.
order.price Order Requested Price - the requested order price at the time order was placed.

Note: order.price may be 0 for market orders, as the Price tag is optional and may not be included by the end client.
order.deviation Order Allowed Price Deviation - the allowed deviation in points from the requested price up to which the order can be filled.

Note: a value of (-1) indicates unlimited deviation.
order.ttl Order TTL - the maximum duration, in milliseconds, during which XCore will attempt to fill the order.
order.mid Order Mid Price - the Mid price between the top-of-book bid and ask as seen by XCore at the time order was placed, determined based on markups configured in the Provider Stream Settings and the Connector Profile Trade Lock Settings.
order.bid Order Bid Price - the top-of-book Bid price of the order at the time order was placed, including the pre-aggregated bid markup set up in XCore, determined by the markup and spread settings in the Markup Profile and Provider Stream Settings, and the Connector Profile Trade Lock Settings.
order.ask Order Ask Price - the top-of-book Ask price of the order at the time order was placed, including the pre-aggregated ask markup set up in XCore, determined by the markup and spread settings in the Markup Profile and Provider Stream Settings, and the Connector Profile Trade Lock Settings.
order.lq_pool Order Liquidity Pool - the name of the liquidity pool associated with the executed order.
order.lq_profile Order Liquidity Profile (Markup Profile) - the name of the markup profile associated with the executed order.
order.open_milli Order Open Timestamp - the timestamp when the order was received in the XCore. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
order.open_micro Order Open Micro Timestamp - XCore's microsecond counter (0–999999) when the order was received, not part of the timestamp; use it to calculate the difference between two events (the counter restarts every second).
order.fillsize Order Fill Size - the size of the order filled in XCore, in lots.

Note: The fill size is the sum of the individual filled legs of the order.
order.fillprice Order Fill Price - the client overall fill price, including markups defined in the XCore, determined by the markup and spread settings in the Markup Profile and Provider Stream Settings, and the Connector Profile Trade Lock Settings.

Note: the fill price is the volume-weighted average price fill price of the filled legs (leg.fillprice2).
order.message Order Message - the message generated by XCore for the order in case of rejection.
order.close_milli Order Close Timestamp - the timestamp when the order was completed in the XCore. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
order.close_micro Order Close Micro Timestamp - XCore's microsecond counter (0–999999) when the order was completed, not part of the timestamp; use it to calculate the difference between two events (the counter restarts every second).
#order.exec_time Order Execution Time - the time in milliseconds from order submission to order closure, regardless of whether the order was filled.

Note:
#order.exec_time = order.close_milli - order.open_milli.
Returns 0 if order.close_milli = 0 (the order is still open).
#order.open_date Order Open Date - the date when the order was received in the XCore.
Format: DD/MM/YYYY.
#order.open_time Order Open Time - the time when the order was received in the XCore.
Format: HH:MM:SS.
#order.state Order State - the status of the order.

Note:
Rejected - the order was not filled and has been closed (order.fillsize = 0 and order.close_milli > 0).
#order.time_in_force Order TimeInForce - the order's Time In Force instruction, showing how the order can be filled.

Note: available values are:
- GTC (Good-Til-Cancelled) - when order.ttl = -1;
- FOK (Fill-Or-Kill) - when order.ttl ≠ -1 and order.minsize = order.size;
- IOC (Immediate-Or-Cancel) - otherwise.
leg.order Order ID - the unique XCore Order ID.
leg.leg Leg ID - the unique Leg ID generated by XCore when an order is split into multiple legs to be sent to one or more Liquidity Providers for execution.

Note: If an XCore Order ID 12345 is split into two legs, the system generates two leg IDs (0 and 1) for this order:
- 12345-0
- 12345-1.
leg.batch Leg Batch ID - the batch ID of a leg.

Note: an order can be initially split into one or multiple legs as batch 0. If a leg is rejected, XCore will resend it for execution as batch 1, and so on.
leg.b_book Leg B-Book Execution - the flag that shows whether a trade leg was executed through the B-Book or A-Book.

Note: available values are:
0 - Leg was executed through A-Book.
1 - Leg was executed through B-Book.
2 - Cross-hedge leg.
3 - Leg was executed as Synthetic A-Book.

For trades partially executed in both books, the report will show two separate entries: one with 0 for the A-Book part and one with 1 for the B-Book part.
leg.provider Leg Provider - for A-Book execution, the Liquidity Provider to which the Leg was sent for execution. For B-Book execution, the Provider whose price quote was used to execute the trade.
leg.protocol Leg Provider Protocol - the type of Liquidity Provider implementation.
leg.account Leg Provider Account - the account Tag 1 value sent to the Liquidity Provider.
leg.clordid Leg Client Order ID - the client Order ID sent to the Liquidity Provider.
leg.type Leg Type - the Leg type.

Note: available values are:
- market
- limit
- pq (prequoted), depending on the order type, the DealerTrade mode and the provider.
leg.instrument Leg Provider Instrument - the instrument name at the Liquidity Provider to which the trade was sent for execution.
leg.size Leg Requested Size - the requested size of leg sent to the Liquidity Provider for execution, in lots.
leg.minsize Leg Minimum Execution Size - the lowest leg execution size to be sent to the Liquidity Provider for execution.
leg.price Leg Requested Price - the requested price of leg sent to the Liquidity Provider for execution.
leg.ttl Leg TTL - the remaining time in milliseconds that the XCore will attempt to fill the leg in addition to any subsequent legs.
leg.markup_fix Leg Markup Fix - the fixed markups in decimal format applied on the specific trade based on Markup Profile Bid or Ask markup settings.
leg.markup_flex Leg Markup Flex - the variable markups in decimal format applied on the specific trade based on the Markup Profile Min and Max Spread Settings.
leg.quoteid Leg Quote ID - the Liquidity Provider quote ID chosen by the XCore for leg execution.
leg.quoteref Leg Provider Quote Reference - the Liquidity Provider quote reference ID chosen by the XCore for leg execution.
leg.quotetime Leg Provider Quote Timestamp (system side) - the timestamp of when the quote update was received in the XCore. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
leg.quotetimelp Leg Provider Quote Arrival Delay - the difference in milliseconds between the timestamp when the quote was sent by the Liquidity Provider and the timestamp when it was received by XCore.
leg.open_milli Leg Open Timestamp - the timestamp when the leg was created in the XCore. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
leg.open_micro Leg Open Micro Timestamp - always 0.
leg.fillsize Leg Fill Size - the fill size of the leg, in lots.

Note: A Leg sent to a Liquidity Provider can be further split by the Liquidity Provider into one or several deals. Therefore, the Leg Fill Size is the sum of the deals confirmed by the Liquidity Provider.
leg.fillprice Leg Fill Price - the leg fill price, excluding all markups configured in XCore. For A-Book, this is the price confirmed by the Liquidity Provider. For B-Book, this is the liquidity pool top-of-book price on the traded side.

Note: the fill price is the volume-weighted average fill price of the filled deals (deal.price).
leg.fillprice2 Leg Fill Price with Markup - the marked up leg fill price including any configured XCore markups, determined by the markup and spread settings in the Markup Profile and Provider Stream Settings, and the Connector Profile Trade Lock Settings.
leg.close_milli Leg Close Timestamp - the timestamp when the leg was completed in the XCore. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
leg.close_micro Leg Close Micro Timestamp - XCore's microsecond counter (0–999999) when the leg was completed, not part of the timestamp; use it to calculate the difference between two events (the counter restarts every second).
#leg.ab_book Leg Book Type - the book type for the trade leg, derived from the Leg B-Book Execution flag (leg.b_book).

Note: available values are:
A - leg.b_book = 0 (A-book).
B - any other leg.b_book value (B-book, cross-hedge or Synthetic A-book).

For trades partially executed in both books, the report will show two separate entries: one with A for the A-Book part and one with B for the B-Book part.
#leg.close_date Leg Close Date - the date when the leg was executed in the XCore.
Format: DD/MM/YYYY.
#leg.close_time Leg Close Time - the time when the leg was executed in the XCore.
Format: HH:MM:SS.
#leg.exec_time Leg Execution Time - the time in milliseconds it took for the leg to get executed.

Note:
#leg.exec_time = leg.close_milli - leg.open_milli.
#leg.open_date Order Open Date - the date when the leg was created in the XCore.
Format: DD/MM/YYYY.
#leg.open_time Order Open Time - the time when the leg was created in the XCore.
Format: HH:MM:SS.
#leg.quote_date Leg Provider Quote Date (system side) - the date when the quote update was received in the XCore.
Format: DD/MM/YYYY.
#leg.quote_time Leg Provider Quote Time (system side) - the time when the quote update was received in the XCore.
Format: HH:MM:SS.
#leg.state Leg State - the execution status of the leg.

Note: available values are:
- Rejected - the leg was not filled and has been closed (leg.fillsize = 0 and leg.close_milli > 0);
- Partial - the leg was partially filled (leg.size > leg.fillsize);
- Filled - the leg was fully filled (leg.size = leg.fillsize).
#leg.is_filled Leg Filled Flag - indicates that the leg is in Filled status.

Note: available values are:
1 - the leg is fully filled and closed (leg.fillsize = leg.size and leg.close_milli > 0);
null - otherwise.
#leg.is_partial Leg Partial Flag - indicates that the leg is in Partial status.

Note: available values are:
1 - the leg is partially filled and closed (leg.fillsize > 0 and leg.fillsize < leg.size and leg.close_milli > 0);
null - otherwise.
#leg.is_rejected Leg Rejected Flag - indicates that the leg is in Rejected status.

Note: available values are:
1 - the leg was not filled and is closed (leg.fillsize = 0 and leg.close_milli > 0);
null - otherwise.
#leg.time_in_force Leg TimeInForce - the leg's Time In Force instruction sent to the Liquidity Provider.

Note: available values are:
- FOK (Fill-Or-Kill) - when leg.minsize = leg.size;
- IOC (Immediate-Or-Cancel) - otherwise;
- no value - the order was rejected before a leg was created, so no leg data is present.

Unlike #order.time_in_force, this value never resolves to GTC.
#leg.slippage_pips Leg Price Slippage (Pips) - the difference between the Order Requested Price (or the top-of-book price) and the Leg Fill Price with Markup, expressed in pips.

Note:
If order.side = SELL:
- if order.price > 0 then #leg.slippage_pips = (leg.fillprice2 - order.price) * 10^order.digits
- else #leg.slippage_pips = (leg.fillprice2 - order.bid) * 10^order.digits

If order.side = BUY:
- if order.price > 0 then #leg.slippage_pips = (order.price - leg.fillprice2) * 10^order.digits
- else #leg.slippage_pips = (order.ask - leg.fillprice2) * 10^order.digits.
Report Type: Account Wallet
report type: account wallet
Field Name Description
account_wallet.account Account Name - the account identifier as defined in the XCore configuration. This value corresponds to the Account.name parameter.
account_wallet.seq Account Action Sequence Number - the unique sequential identifier of account operations generated by XCore.
account_wallet.pos_seq Account Action Position Sequence - the sequence number of the account position from which this action originated, as referenced in the Account Position report.
Used to link account wallet actions to account positions, matching account_wallet.pos_seq = account_position.seq for the same account.
account_wallet.time Account Action Timestamp - the timestamp when the account action was recorded in XCore. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
account_wallet.wallet Account Wallet - the wallet source through which XCore accepted manual or external actions that resulted in balance changes for the account. This value corresponds to the AccountProfileWalletSettings.name parameter.
account_wallet.type Account Booking Type - the numeric code representing the type of operation that affected the account balance.
#account_wallet.transaction_type_label Account Booking Type Label - the human-readable name of the booking type for the account operation.

Note: available values are:
- 0 → Deposit
- 1 → Swap
- 2 → PL
- 3 → Dividend
- 4 → Dividend Tax
- 5 → Commission
- else → Unknown
account_wallet.ccy Current Account Currency - the currency in which this balance change was recorded.
account_wallet.balance Account Balance - the current total balance for the specific combination of Account, Wallet, and Currency at the time of the transaction, expressed in the Current Account Currency.

Note: Each row shows the updated total balance for this Account-Wallet-Currency combination, not a partial change, and balances are tracked separately per wallet and currency without consolidation across wallets or currencies.
#account_wallet.booked_amount Account Action Amount (Booked Amount) - the change in the account balance caused by a specific account operation, expressed in the Current Account Currency.
account_wallet.comment Account Action Comment - remarks describing the account operation, using standardized tags and free text.
account_wallet.comment_2 Account Action Comment 2 - additional free-text remarks for the account operation, populated when the Comment2 field is used in the Account Dashboard.
account_position.account Account Name - the account identifier as defined in the XCore configuration.

Note: in the context of the Account Wallet report, this field is populated only when account_wallet.pos_seq = account_position.seq.
account_position.time Position Timestamp - the timestamp when the account position operation occurred. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.

Note: In the context of the Account Wallet report, this field is populated only when account_wallet.pos_seq = account_position.seq.
account_position.symbol Position Symbol - the symbol name as known by the XCore for which the action was performed in case there were swap, dividend charges or automatic PL operations.

Note: In the context of the Account Wallet report, this field is populated only when account_wallet.pos_seq = account_position.seq.
account_position.base Position Base Amount (Base) - the current total volume exposure in the symbol's base currency at the time of the position operation.

Note: Each row shows the updated total exposure, not a partial change.
Note: In the context of the Account Wallet report, this field is populated only when account_wallet.pos_seq = account_position.seq.
account_position.quote Position Quote Amount (Quote) - the current total volume exposure in the symbol's quote currency at the time of the position operation.

Note: Each row shows the updated total exposure, not a partial change.
Note: In the context of the Account Wallet report, this field is populated only when account_wallet.pos_seq = account_position.seq.
account_position.comment Position Comment - remarks describing the position operation, using standardized tags and free text.

Note: In the context of the Account Wallet report, this field is populated only when account_wallet.pos_seq = account_position.seq.
Report Type: Account Position
report type: account position
Field Name Description
account_position.account Account Name - the account identifier as defined in the XCore configuration. This value corresponds to the Account.name parameter.
account_position.seq Current Position Sequence Number - the unique sequential identifier of position operations generated by XCore.
account_position.prev Previous Position Sequence Number - the unique sequential identifier of the preceding position operation for reference purpose.
account_position.time Position Timestamp - the timestamp when the account position operation occurred. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
account_position.symbol Position Symbol - the symbol name of the position as known by the XCore.
account_position.base Position Base Amount (Base) - the current total volume exposure in the symbol's base currency at the time of the position operation.

Note: Each row shows the updated total exposure for this specific Account-Symbol combination, not a partial change. Base exposures are tracked separately per symbol without consolidation across the account.
#account_position.base_delta Position Base Delta Amount - the change in the position's base currency exposure caused by the current position operation, calculated as the difference between the current Position Base Amount and the previous one. Expressed in the symbol's base currency.

Note:
- if order.side = Sell then #account_position.base_delta = -deal.size
- if order.side = Buy then #account_position.base_delta = deal.size.
For short positions (Sell), Position Base Delta Amount is negative.
For long positions (Buy), Position Base Delta Amount is positive.
account_position.quote Position Quote Amount (Quote) - the current total volume exposure in the symbol's quote currency at the time of the position operation.

Note: Each row shows the updated total exposure for this specific Account-Symbol combination, not a partial change. Quote exposures are tracked separately per symbol without consolidation across the account.
#account_position.quote_delta Position Quote Delta Amount - the change in the position's quote currency exposure caused by the current position operation, calculated as the difference between the current Position Quote Amount and the previous one. Expressed in the symbol's quote currency.

Note:
- if order.side = Sell then account_position.quote = deal.size * order.factor * deal.price
- if order.side = Buy then account_position.quote = - (deal.size * order.factor * deal.price).
For short positions (Sell), Position Quote Delta Amount is positive.
For long positions (Buy), Position Quote Delta Amount is negative.
account_position.closed_pl Position Closed PnL - the net profit or loss generated by a full or partial position close, calculated according to the FIFO principle and expressed in the symbol's quote currency.

Note: The value accumulates for each Account-Symbol combination after each partial or full close until it is booked to the wallet as a PL_SETTLEMENT transaction. After booking, account_position.closed_pl is reset to 0 and starts accumulating again until the next PL_SETTLEMENT transaction.
account_position.overflow Position Quote Overflow - the current total overflow exposure in the symbol's quote currency, representing the portion of trade volume routed to the Liquidity Provider when the account's exposure limit is exceeded. Applies to accounts of type RISK and B-Book trades.

Note: Each row shows the updated total overflow amount, not a partial change.
#account_position.overflow_delta Position Quote Overflow Delta - the change in the position's quote overflow caused by the current position operation, calculated as the difference between the current Position Quote Overflow and the previous one. Expressed in the symbol's quote currency.
account_position.comment Position Comment - remarks describing the position operation, using standardized tags and free text.
Report Type: Account Position EOD
report type: account position eod
Field Name Description
account_position.account Account Name - the account identifier as defined in the XCore configuration. This value corresponds to the Account.name parameter.
account_position.symbol Position Symbol - the symbol name of the position as known by the XCore.
account_position.base Position Base Amount (Base) - the latest recorded total volume exposure in the symbol's base currency up to the end of the selected report date range.

Note: Base exposures are tracked separately per symbol without consolidation across the account.
account_position.quote Position Quote Amount (Quote) - the latest recorded total volume exposure in the symbol's quote currency up to the end of the selected report date range.

Note: Quote exposures are tracked separately per symbol without consolidation across the account.
account_position.time Position Timestamp - the timestamp of the last position update up to the end of the selected report date range. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
#filter.eod_symbol_price EOD Symbol Price - the last recorded price of the symbol up to the end of the selected report date range.

Note:
The price is taken from the filter table, which stores prices that passed the configured thresholds.
The price does not include markups from the Markup Profile Settings (Bid/Ask markups, Min/Max Spread).
The price includes the Bid or Ask markup from the Provider Stream Settings only.
The symbol contract size (symbol.contract_size) is not applied.

Note:
- if account_position.base > 0 then #filter.eod_symbol_price = filter.bid_close
- if account_position.base < 0 then #filter.eod_symbol_price = filter.ask_close.
#filter.eod_symbol_bid_price EOD Symbol Bid Price - the last recorded Bid price of the symbol up to the end of the selected report date range.

Note:
The price is taken from the filter table, which stores prices that passed the configured thresholds.
The price does not include markups from the Markup Profile Settings (Bid/Ask markups, Min/Max Spread).
The price includes the Bid markup from the Provider Stream Settings only.
The symbol contract size (symbol.contract_size) is not applied.

Note:
#filter.eod_symbol_bid_price = filter.bid_close of the last record with filter.bid_close > 0, regardless of filter.ask_close.
Empty if there is no such record.
#filter.eod_symbol_ask_price EOD Symbol Ask Price - the last recorded Ask price of the symbol up to the end of the selected report date range.

Note:
The price is taken from the filter table, which stores prices that passed the configured thresholds.
The price does not include markups from the Markup Profile Settings (Bid/Ask markups, Min/Max Spread).
The price includes the Ask markup from the Provider Stream Settings only.
The symbol contract size (symbol.contract_size) is not applied.

Note:
#filter.eod_symbol_ask_price = filter.ask_close of the last record with filter.ask_close > 0, regardless of filter.bid_close.
Empty if there is no such record.
#filter.eod_symbol_mid_price EOD Symbol Mid Price - the last recorded mid price of the symbol up to the end of the selected report date range.

Note:
The price is taken from the filter table, which stores prices that passed the configured thresholds.
The price does not include markups from the Markup Profile Settings (Bid/Ask markups, Min/Max Spread).
The price is calculated using Bid and Ask prices including the Provider Stream Settings markups only.
The symbol contract size (symbol.contract_size) is not applied.

Note:
#filter.eod_symbol_mid_price = (filter.bid_close + filter.ask_close) / 2.
Bid and Ask can come from different records. Empty if either side has no price.
#filter.eod_symbol_price_time EOD Symbol Price Timestamp - the timestamp of the filter.bid_close (if account_position.base > 0) or filter.ask_close (if account_position.base < 0) value used for #filter.eod_symbol_price. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
#account_position.symbol_quote_ccy Position Symbol Quote Currency - the quote currency of the traded symbol (e.g., USD for EURUSD).

Note: value is taken from symbol configuration field symbol.quote and represents the currency in which the symbol is quoted.
#account_group_setting.default_ccy Default Account Currency - the current default currency of the account. The value is defined in the Account Group Setting with the key DEFAULT_CCY.

Note: If this field is empty, the account has most likely been deleted and its Default Account Currency is no longer available.
#filter.quote_to_acc_ccy_conv Quote-to-Account Currency Conversion Rate - the last recorded conversion rate from the symbol Quote Currency to the Account Currency up to the end of the selected report date range.

Note:
The price is taken from the filter table, which stores prices that passed the configured thresholds.
The price does not include markups from the Markup Profile Settings (Bid/Ask markups, Min/Max Spread).
The price takes into account the Bid and Ask markups from the Provider Stream Settings only.
The symbol contract size (symbol.contract_size) is not applied.

Note:
#filter.quote_to_acc_ccy_conv = (filter.ask_close + filter.bid_close)/2
#filter.base_to_acc_ccy_conv Base-to-Account Currency Conversion Rate - the last recorded conversion rate from the symbol Base Currency to the Account Currency up to the end of the selected report date range.

Note:
#filter.base_to_acc_ccy_conv = symbol.contract_size * #filter.eod_symbol_price * #filter.quote_to_acc_ccy_conv
#account_position.avg_open_price_quote_ccy Average Open Price in Quote Currency - the average open price of the position, expressed in the Position Symbol Quote Currency, calculated based on the current position exposure.

Note:
#account_position.avg_open_price_quote_ccy = - account_position.quote / (account_position.base * symbol.contract_size).
#account_position.floating_pl_quote_ccy Floating PnL in Quote Currency - the latest unrealized profit or loss of the position, calculated in the Position Symbol Quote Currency up to the end of the selected report date range.

Note: Floating PnL is tracked separately per symbol without consolidation across the account.

Note:
#account_position.floating_pl_quote_ccy = account_position.base * symbol.contract_size * #filter.eod_symbol_price + account_position.quote.

Note: The calculation depends on account_position.quote, which includes realized PnL (closed_pl) until it is booked to the wallet as a PL_SETTLEMENT transaction. Once the PL_SETTLEMENT adjusts the quote amount, the formula returns an accurate Floating PnL without distortion.
#account_position.floating_pl_acc_ccy Floating PnL in Account Currency - the latest unrealized profit or loss of the position, calculated in the Default Account Currency up to the end of the selected report date range.

Note: Floating PnL is tracked separately per symbol without consolidation across the account.

Note:
#account_position.floating_pl_acc_ccy = (account_position.base * symbol.contract_size * #filter.eod_symbol_price + account_position.quote) * #filter.quote_to_acc_ccy_conv.

Note: The calculation depends on account_position.quote, which includes realized PnL (closed_pl) until it is booked to the wallet as a PL_SETTLEMENT transaction. Once the PL_SETTLEMENT adjusts the quote amount, the formula returns an accurate Floating PnL without distortion.
#account_position.used_margin_quote_ccy Used Margin in Quote Currency - the used margin of the position, calculated in the Position Symbol Quote Currency up to the end of the selected report date range.

Note:
- Used Margin is tracked separately per symbol without consolidation across the account.
- The calculation depends on the position netting model configured for the Account (Netting or Non-Netting).

- For Non-Netting symbols:
used_margin_quote_ccy = ABS(base_exposure_quote_ccy) / profile_sym_leverage
- profile_sym_leverage is defined in AccountProfileSymLeverageSetting.leverage for the given Symbol.

- For Netting symbols:
used_margin_quote_ccy = ABS(base_exposure_quote_ccy) / base_ccy_leverage + ABS(quote_exposure_quote_ccy) / quote_ccy_leverage
- base_ccy_leverage and quote_ccy_leverage are defined in AccountProfileCcyLeverageSetting.leverage for the Base and Quote Currencies of the Symbol.

Calculation details:
- Base exposure in Account Currency:
base_exposure_quote_ccy = account_position.base * symbol.contract_size * conversion_rate_base_to_quote_ccy
- Quote exposure in Account Currency:
quote_exposure_quote_ccy = account_position.quote
- Conversion rates from Base Currency to the Quote Currency (conversion_rate_base_to_quote_ccy) is the last recorded mid conversion rates from the symbol Base Currency to the Quote Currency up to the end of the selected report date range:
mid_rate = (filter.ask_close + filter.bid_close) / 2.
#account_position.used_margin_acc_ccy Used Margin in Account Currency - the used margin of the position, calculated in the Default Account Currency up to the end of the selected report date range.

Note:
- Used Margin is tracked separately per symbol without consolidation across the account.
- The calculation depends on the position netting model configured for the Account (Netting or Non-Netting).

- For Non-Netting symbols:
used_margin_in_acc_ccy = ABS(base_exposure_acc_ccy) / profile_sym_leverage
- profile_sym_leverage is defined in AccountProfileSymLeverageSetting.leverage for the given Symbol.

- For Netting symbols:
used_margin_in_acc_ccy = ABS(base_exposure_acc_ccy) / base_ccy_leverage + ABS(quote_exposure_acc_ccy) / quote_ccy_leverage
- base_ccy_leverage and quote_ccy_leverage are defined in AccountProfileCcyLeverageSetting.leverage for the Base and Quote Currencies of the Symbol.

Calculation details:
- Base exposure in Account Currency:
base_exposure_acc_ccy = account_position.base * symbol.contract_size * conversion_rate_base_to_default_ccy
- Quote exposure in Account Currency:
quote_exposure_acc_ccy = account_position.quote * conversion_rate_quote_to_default_ccy
- Conversion rates from Base and Quote Currencies to the Default Account Currency (conversion_rate_base_to_default_ccy and conversion_rate_quote_to_default_ccy) are the last recorded mid conversion rates from the symbol Base and Quote Currencies to the Default Account Currency up to the end of the selected report date range:
mid_rate = (filter.ask_close + filter.bid_close) / 2.
#report_date Report Date - the timestamp marking the end of the selected date range for generating the report. This value defines the cut-off point up to which data is included in the report. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
#filter.missing_conv_rate Conversion Rate Warning - indicates whether all required conversion rates were available and correctly applied for calculations in this report row.

Note: available values are:
- "Calculation Error" - one or more required conversion rates were missing or invalid, so one or more calculated values in this row are missing or inaccurate. This occurs when conversion rate calculations cannot be completed due to missing prices in the filter table.
- No value (Empty) - all required conversion rates were available, and all calculations in this report row were completed successfully.

Note: If #filter.missing_conv_rate = "Calculation Error" and #account_group_setting.default_ccy is empty, the account has most likely been deleted. In this case, the Default Account Currency is no longer available, and calculations that depend on it cannot be performed.
#filter.has_conv_error Conversion Error Flag - a checkbox indicator of conversion rate issues in the report row, based on #filter.missing_conv_rate.

Note: available values are:
- Checked - corresponds to "Calculation Error" in #filter.missing_conv_rate;
- Empty - corresponds to no value in #filter.missing_conv_rate (no conversion issues).

Unlike #filter.missing_conv_rate, this field displays the result as a visual checkbox instead of a text value.

Note: If the checkbox is checked and #account_group_setting.default_ccy is empty, the account has most likely been deleted.
Report Type: Account Wallet EOD
report type: account wallet eod
Field Name Description
account_wallet.account Account Name - the account identifier as defined in the XCore configuration. This value corresponds to the Account.name parameter.
#account_group_setting.default_ccy Default Account Currency - the current default currency of the account. The value is defined in the Account Group Setting with the key DEFAULT_CCY.

Note: If this field is empty, the account has most likely been deleted and its Default Account Currency is no longer available.
account_wallet.wallet Account Wallet - the wallet source through which XCore accepted manual or external actions that resulted in balance changes for the account. This value corresponds to the AccountProfileWalletSettings.name parameter.
account_wallet.ccy Current Account Currency - the currency in which this balance change was recorded.
#account_wallet.beginning_balance Beginning Balance - the opening balance for the specific combination of Account, Wallet, and Currency as of the start of the selected report date range, expressed in the Current Account Currency. This value represents the last recorded Account Balance strictly before the report start date.

Note:
- Balances are tracked separately per wallet and currency without consolidation across the account.
- #account_wallet.beginning_balance is taken as the latest account_wallet.balance where
account_wallet.time < report start date.
- If no prior balance exists for the Account-Wallet-Currency combination, account_wallet.beginning_balance = 0.
- For the same value converted into the account's Default Account Currency, see #account_wallet.beginning_balance_acc_ccy.
#account_wallet.ending_balance Ending Balance - the closing balance for the specific combination of Account, Wallet, and Currency up to the end of the selected report date range, expressed in the Current Account Currency. This value represents the last recorded Account Balance within the report period.

Note:
- Balances are tracked separately per wallet and currency without consolidation across the account.
- #account_wallet.ending_balance is taken as the latest account_wallet.balance where
report start date ≤ account_wallet.time < report end date.
- If no balance change was recorded within the period for the Account-Wallet-Currency combination, #account_wallet.ending_balance = #account_wallet.beginning_balance.
- For the same value converted into the account's Default Account Currency, see #account_wallet.ending_balance_acc_ccy.
#account_wallet.delta_balance Delta Balance - the total change in the account balance for the specific combination of Account, Wallet, and Currency over the selected report period, expressed in the Current Account Currency.

Note:
#account_wallet.delta_balance = #account_wallet.ending_balance - #account_wallet.beginning_balance.

For the same value converted into the account's Default Account Currency, see #account_wallet.delta_balance_acc_ccy.
#account_wallet.delta_api Delta API - the total change in the account balance from Manual (API) operations for the specific combination of Account, Wallet, and Currency over the selected report period, expressed in the Current Account Currency.

Note:
#account_wallet.delta_api includes only operations where account_wallet.type = 0 and is calculated as the sum of all such balance changes from the start to the end of the report period.
#account_wallet.delta_swap Delta Swap - the total change in the account balance from Swap charges for the specific combination of Account, Wallet, and Currency over the selected report period, expressed in the Current Account Currency.

Note:
#account_wallet.delta_swap includes only operations where account_wallet.type = 1 and is calculated as the sum of all such balance changes from the start to the end of the report period.
#account_wallet.delta_pl Delta PL - the total change in the account balance from Closed PnL for the specific combination of Account, Wallet, and Currency over the selected report period, expressed in the Current Account Currency.

Note:
#account_wallet.delta_pl includes only operations where account_wallet.type = 2 and is calculated as the sum of all such balance changes from the start to the end of the report period.
#account_wallet.delta_dividend Delta Dividend - the total change in the account balance from Dividends for the specific combination of Account, Wallet, and Currency over the selected report period, expressed in the Current Account Currency.

Note:
#account_wallet.delta_dividend includes only operations where account_wallet.type = 3 and is calculated as the sum of all such balance changes from the start to the end of the report period.
#account_wallet.delta_tax Delta Tax - the total change in the account balance from Taxes for the specific combination of Account, Wallet, and Currency over the selected report period, expressed in the Current Account Currency.

Note:
#account_wallet.delta_tax includes only operations where account_wallet.type = 4 and is calculated as the sum of all such balance changes from the start to the end of the report period.
#account_wallet.delta_commission Delta Commission - the total change in the account balance from Commissions for the specific combination of Account, Wallet, and Currency over the selected report period, expressed in the Current Account Currency.

Note:
#account_wallet.delta_commission includes only operations where account_wallet.type = 5 and is calculated as the sum of all such balance changes from the start to the end of the report period.
#account_wallet.beginning_balance_acc_ccy Beginning Balance in Account Currency - the opening balance for the specific combination of Account, Wallet, and Currency as of the start of the selected report date range, converted into the account's Default Account Currency. This value represents the last recorded Account Balance strictly before the report start date, converted at the exchange rate observed at that time.

Note:
- Balances are tracked separately per wallet and currency without consolidation across the account.
- If no prior balance exists for the Account-Wallet-Currency combination, #account_wallet.beginning_balance_acc_ccy = 0.
#account_wallet.ending_balance_acc_ccy Ending Balance in Account Currency - the closing balance for the specific combination of Account, Wallet, and Currency up to the end of the selected report date range, converted into the account's Default Account Currency. This value represents the last recorded Account Balance within the report period, converted at the exchange rate observed at the end of the period.

Note:
- Balances are tracked separately per wallet and currency without consolidation across the account.
- Unlike #account_wallet.ending_balance, this value can differ from #account_wallet.beginning_balance_acc_ccy even when no balance change was recorded within the period, because the beginning and ending balances are converted using the exchange rate observed at the start and at the end of the period respectively.
#account_wallet.delta_balance_acc_ccy Delta Balance in Account Currency - the total change in the account balance for the specific combination of Account, Wallet, and Currency over the selected report period, expressed in the account's Default Account Currency.

Note:
#account_wallet.delta_balance_acc_ccy = #account_wallet.ending_balance_acc_ccy - #account_wallet.beginning_balance_acc_ccy.
#account_wallet.last_updated Last Updated - the timestamp of the most recent update to account_wallet.balance for the specific combination of Account, Wallet, and Currency up to the end of the selected report date range. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
#report_date Report Date - the timestamp marking the end of the selected date range for generating the report. This value defines the cut-off point up to which data is included in the report. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
#filter.missing_conv_rate Conversion Rate Warning - indicates whether all required conversion rates were available and correctly applied for the account-currency balances in this report row.

Note: available values are:
- "Conversion Error" - one or more required conversion rates were missing or invalid, so one or more of the account-currency balances in this row are missing or inaccurate. This occurs when conversion rate calculations cannot be completed due to missing prices in the filter table;
- No value (Empty) - all required conversion rates were available, and all calculations in this report row were completed successfully.

Note: If #filter.missing_conv_rate = "Conversion Error" and #account_group_setting.default_ccy is empty, the account has most likely been deleted. In this case, the Default Account Currency is no longer available, and calculations that depend on it cannot be performed.
Report Type: Account EOD
report type: account eod
Field Name Description
account_wallet.account Account Name - the account identifier as defined in the XCore configuration. This value corresponds to the Account.name parameter.
#account_group_setting.default_ccy Default Account Currency - the current default currency of the account. The value is defined in the Account Group Setting with the key DEFAULT_CCY.

Note: If this field is empty, the account has most likely been deleted and its Default Account Currency is no longer available.
#account_wallet.beginning_balance Beginning Balance in Account Currency - the opening balance for each Account as of the start of the selected report date range, expressed in the Default Account Currency. This value represents the last recorded total balance across the Account strictly before the report start date.

Note:
- Balances from all Wallets and Currencies are consolidated per Account and converted to the Default Account Currency.
- #account_wallet.beginning_balance is taken as the sum of the latest account_wallet.balance for each Wallet-Currency combination where account_wallet.time < report start date.
#account_wallet.ending_balance Ending Balance in Account Currency - the closing balance for each Account up to the end of the selected report date range, expressed in the Default Account Currency. This value represents the last recorded total balance across the Account within the report period.

Note:
- Balances from all Wallets and Currencies are consolidated per Account and converted to the Default Account Currency.
- #account_wallet.ending_balance is taken as the sum of the latest account_wallet.balance for each Wallet-Currency combination where report start date ≤ account_wallet.time < report end date.
- If no balance change was recorded within the period for the Wallet-Currency combination of the Account, #account_wallet.ending_balance = #account_wallet.beginning_balance.
#account_wallet.delta_balance Delta Balance in Account Currency - the total change in the Account balance over the selected report period, expressed in the Default Account Currency. This value represents the net balance movement across the Account for the period.

Note:
- Balance changes from all Wallets and Currencies are consolidated per Account and converted to the Default Account Currency.
- #account_wallet.delta_balance = #account_wallet.ending_balance - #account_wallet.beginning_balance.
#account_wallet.delta_api Delta API in Account Currency - the total balance change resulting from Manual (API) operations across the Account over the selected report period, expressed in the Default Account Currency.

Note:
- Balance changes from all Wallets and Currencies are consolidated per Account and converted to the Default Account Currency.
- #account_wallet.delta_api includes only operations where account_wallet.type = 0.
- The value represents the sum of all such balance changes recorded within the report period at the Account level.
#account_wallet.delta_swap Delta Swap in Account Currency - the total balance change resulting from Swap charges across the Account over the selected report period, expressed in the Default Account Currency.

Note:
- Balance changes from all Wallets and Currencies are consolidated per Account and converted to the Default Account Currency.
- #account_wallet.delta_swap includes only operations where account_wallet.type = 1.
- The value represents the sum of all such balance changes recorded within the report period at the Account level.
#account_wallet.delta_pl Delta PL in Account Currency - the total balance change resulting from Closed PnL across the Account over the selected report period, expressed in the Default Account Currency.

Note:
- Balance changes from all Wallets and Currencies are consolidated per Account and converted to the Default Account Currency.
- #account_wallet.delta_pl includes only operations where account_wallet.type = 2.
- The value represents the sum of all such balance changes recorded within the report period at the Account level.
#account_wallet.delta_dividend Delta Dividend in Account Currency - the total balance change resulting from Dividends across the Account over the selected report period, expressed in the Default Account Currency.

Note:
- Balance changes from all Wallets and Currencies are consolidated per Account and converted to the Default Account Currency.
- #account_wallet.delta_dividend includes only operations where account_wallet.type = 3.
- The value represents the sum of all such balance changes recorded within the report period at the Account level.
#account_wallet.delta_tax Delta Tax in Account Currency - the total balance change resulting from Taxes across the Account over the selected report period, expressed in the Default Account Currency.

Note:
- Balance changes from all Wallets and Currencies are consolidated per Account and converted to the Default Account Currency.
- #account_wallet.delta_tax includes only operations where account_wallet.type = 4.
- The value represents the sum of all such balance changes recorded within the report period at the Account level.
#account_wallet.delta_commission Delta Commission in Account Currency - the total balance change resulting from Commissions across the Account over the selected report period, expressed in the Default Account Currency.

Note:
- Balance changes from all Wallets and Currencies are consolidated per Account and converted to the Default Account Currency.
- #account_wallet.delta_commission includes only operations where account_wallet.type = 5.
- The value represents the sum of all such balance changes recorded within the report period at the Account level.
#account_position.exposure_acc_ccy Exposure in Account Currency - the total exposure of the Account, expressed in the Default Account Currency, calculated up to the end of the selected report date range.

Note:
- Exposures are consolidated across all positions of the Account and converted to the Default Account Currency.
- The calculation depends on the position netting model configured for the Account (Netting or Non-Netting).
- For Non-Netting symbols, exposure is calculated as the sum of absolute position exposures:
Exposure = Σ ABS(base_exposure_acc_ccy)
- For Netting symbols, exposure is calculated by aggregating long and short exposures separately and taking the larger value (by absolute amount).
Exposure = max(SUM_LONG_EXPOSURE, ABS(SUM_SHORT_EXPOSURE))

Calculation details:
- Base exposure in Account Currency:
base_exposure_acc_ccy = account_position.base * symbol.contract_size * conversion_rate_base_to_default_ccy.
- Quote exposure in Account Currency:
quote_exposure_acc_ccy = account_position.quote * conversion_rate_quote_to_default_ccy.
- Conversion rates from Base and Quote Currencies to the Default Account Currency (conversion_rate_base_to_default_ccy and conversion_rate_quote_to_default_ccy) are the last recorded mid conversion rates from the symbol Base and Quote Currencies to the Default Account Currency up to the end of the selected report date range:
mid_rate = (filter.ask_close + filter.bid_close) / 2
- Long Exposure:
SUM_LONG_EXPOSURE = Σ base_exposure_acc_ccy where account_position.base > 0 + Σ quote_exposure_acc_ccy where account_position.quote > 0.
- Short Exposure:
SUM_SHORT_EXPOSURE = Σ base_exposure_acc_ccy where account_position.base < 0 + Σ quote_exposure_acc_ccy where account_position.quote < 0.
#account_position.floating_pl_acc_ccy Floating Profit/Loss in Account Currency - the total unrealized profit or loss of all open positions of the Account, expressed in the Default Account Currency, calculated up to the end of the selected report date range.

Note:
- Floating Profit/Loss is calculated per Account using the latest available position state strictly before the report end date.
- Floating Profit/Loss is consolidated across all symbols of the Account and converted to the Default Account Currency.

Calculation logic:
- Floating Profit/Loss = Σ pnl_in_acc_ccy.
- For each position:
pnl_in_acc_ccy = (account_position.base * symbol.contract_size * conversion_rate_from_base_to_quote + account_position.quote) * conversion_rate_from_quote_to_default_ccy.

Conversion rates (as of report end date):
- For Long positions (account_position.base > 0): conversion_rate_from_base_to_quote = filter.bid_close.
- For Short positions (account_position.base < 0): conversion_rate_from_base_to_quote = filter.ask_close.
- conversion_rate_from_quote_to_default_ccy = (filter.ask_close + filter.bid_close) / 2.

Note: The calculation depends on account_position.quote, which includes realized PnL (closed_pl) until it is booked to the wallet as a PL_SETTLEMENT transaction. Once the PL_SETTLEMENT adjusts the quote amount, the formula returns an accurate Floating PnL without distortion.
#account_position.equity_acc_ccy Equity in Account Currency - the total account equity, expressed in the Default Account Currency, calculated up to the end of the selected report date range.

Note:
- Equity is calculated per Account and consolidates all Wallets, Currencies and Symbols into the Default Account Currency.
- #account_position.equity_acc_ccy = #account_wallet.ending_balance + #account_position.floating_pl_acc_ccy.
#account_position.used_margin_acc_ccy Used Margin in Account Currency - the total used margin of the Account, expressed in the Default Account Currency, calculated up to the end of the selected report date range.

Note:
- Used Margin is consolidated across all positions of the Account and converted to the Default Account Currency.
- The calculation depends on the position netting model configured for the Account (Netting or Non-Netting).

- For Non-Netting symbols, Used Margin is calculated as the sum of absolute position margins:
Used Margin = Σ ABS(used_margin_in_acc_ccy)
- For each position:
used_margin_in_acc_ccy = base_exposure_acc_ccy / profile_sym_leverage
- profile_sym_leverage is defined in AccountProfileSymLeverageSetting.leverage for the given Symbol.

- For Netting symbols, Used Margin is calculated by aggregating used margin for long and short positions separately and taking the larger value (by absolute amount):
Used Margin = max(SUM_LONG_MARGIN, ABS(SUM_SHORT_MARGIN))
- For each position:
Base and Quote used margin in Account Currency:
used_margin_in_acc_ccy_by_base = base_exposure_acc_ccy / base_ccy_leverage
used_margin_in_acc_ccy_by_quote = quote_exposure_acc_ccy / quote_ccy_leverage
- base_ccy_leverage and quote_ccy_leverage are defined in AccountProfileCcyLeverageSetting.leverage for the Base and Quote Currencies of the Symbol.
- Long positions:
SUM_LONG_MARGIN = Σ used_margin_in_acc_ccy_by_base where account_position.base > 0 + Σ used_margin_in_acc_ccy_by_quote where account_position.quote > 0.
- Short positions:
SUM_SHORT_MARGIN = Σ used_margin_in_acc_ccy_by_base where account_position.base < 0 + Σ used_margin_in_acc_ccy_by_quote where account_position.quote < 0.
#account_position.free_margin_acc_ccy Free Margin in Account Currency - the total free margin of the Account, expressed in the Default Account Currency, calculated up to the end of the selected report date range.

Note:
- Free Margin is calculated per Account and consolidates all Wallets, Currencies, and Symbols into the Default Account Currency.
- #account_position.free_margin_acc_ccy = #account_position.equity_acc_ccy - #account_position.used_margin_acc_ccy.
#account_wallet.last_updated Wallet Last Updated - the timestamp of the most recent update to any account_wallet.balance across all Wallets and Currencies of the Account, up to the end of the selected report date range. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
#account_position.last_updated Position Last Updated - the timestamp of the most recent update to any position of the Account, across all symbols, up to the end of the selected report date range. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
#report_date Report Date - the timestamp marking the end of the selected date range for generating the report. This value defines the cut-off point up to which data is included in the report. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
#filter.missing_conv_rate Conversion Rate Warning - indicates whether all required conversion rates were available and correctly applied for calculations in this report row.

Note: available values are:
- "Conversion Error" - one or more required conversion rates were missing or invalid, so one or more calculated values in this row are missing or inaccurate. This occurs when conversion rate calculations cannot be completed due to missing prices in the filter table.
- No value (Empty) - all required conversion rates were available, and all calculations in this report row were completed successfully.

Note: If #filter.missing_conv_rate = "Conversion Error" and #account_group_setting.default_ccy is empty, the account has most likely been deleted. In this case, the Default Account Currency is no longer available, and calculations that depend on it cannot be performed.
#filter.has_conv_error Conversion Error Flag - a checkbox indicator of conversion rate issues in the report row, based on #filter.missing_conv_rate.

Note: available values are:
- Checked - corresponds to "Conversion Error" in #filter.missing_conv_rate;
- Empty - corresponds to no value in #filter.missing_conv_rate (no conversion issues).

Unlike #filter.missing_conv_rate, this field displays the result as a visual checkbox instead of a text value.

Note: If the checkbox is checked and #account_group_setting.default_ccy is empty, the account has most likely been deleted.
Report Type: Trade Decay V5 | Trade Decay V5 Toxic | Trade Decay V5 Profitable
report type: trade decay v5 | trade decay v5 toxic | trade decay v5 profitable
Field Name Description
trade_decay_v5.order Order ID (order.order) - the unique XCore Order ID.
trade_decay_v5.connector Order Connector (order.connector) - the connector name from the XCore configuration.
trade_decay_v5.trade_source Trade Source - the trading platform from which the trade originated.

Note: Available values are:
- FIX
- MT4
- MT5
trade_decay_v5.account Order Connector Account (order.account) - the name of the connector account within the XCore connector responsible for executing the order.
trade_decay_v5.clordid Order Client Order ID (order.clordid) - the unique client Order ID.
trade_decay_v5.subid2 Order SubID 2 (order.subid2) - the SubID 2 of the order. When orders originate from an MT4 and MT5 connector, this will be the Group Name.
trade_decay_v5.subid3 Order SubID 3 (order.subid3) - the SubID 3 of the order. When orders originate from an MT4 and MT5 connector, this will be the Account Login number.
trade_decay_v5.subid4 Order SubID 4 (order.subid4) - the SubID 4 of the order. When orders originate from an MT4 connector, this will be the MT4 Order Ticket Number. When orders originate from an MT5 connector, this will be the posID.
trade_decay_v5.connector_subid The combined identifier of the trade's execution channel, showing both the connector name and the specific SubID 3 used for the order, formatted as "Connector/SubID 3".

Note: Formed by concatenating trade_decay_v5.connector (the connector name) and trade_decay_v5.subid3 (the order SubID 3).
trade_decay_v5.connector_account_subid The combined identifier of the trade's execution channel, showing the connector name, connector account, and the specific SubID 3 used for the order, formatted as "Connector/Account/SubID 3".

Note: Formed by concatenating trade_decay_v5.connector (the connector name), trade_decay_v5.account (the connector account within the connector), and trade_decay_v5.subid3 (the order SubID 3).
trade_decay_v5.side Order Side (order.side) - the side of the Order indicates whether the order is a "buy" or "sell".
trade_decay_v5.symbol Order Symbol (order.symbol) - the connector stream symbol name as known by the XCore.
trade_decay_v5.leg Leg ID (leg.leg) - the unique Leg ID generated by XCore when an order is split into multiple legs to be sent to one or more Liquidity Providers for execution.

Note: If an XCore Order ID 12345 is split into two legs, the system generates two leg IDs (0 and 1) for this order:
- 12345-0
- 12345-1.
trade_decay_v5.b_book Leg Book Type (#leg.ab_book) - the book type for the trade leg, derived from the Leg B-Book Execution flag (leg.b_book).

Note: available values are:
A - leg.b_book = 0 (A-book).
B - any other leg.b_book value (B-book, cross-hedge or Synthetic A-book).

For trades partially executed in both books, the report will show two separate entries: one with A for the A-Book part and one with B for the B-Book part.
trade_decay_v5.provider Leg Provider (leg.provider) - for A-Book execution, the Liquidity Provider to which the Leg was sent for execution. For B-Book execution, the Provider whose price quote was used to execute the trade.
trade_decay_v5.time Leg Open Timestamp (leg.open_milli) - the timestamp when the leg was created in the XCore. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
trade_decay_v5.busdate Business Date - the FX/CFD business date assigned to the trade based on the Leg Open Timestamp (trade_decay_v5.time).

Note:
The business day changes at 17:00 America/New_York (DST-aware). Trades opened at or after 17:00 NY time belong to the next business date.

Format: DD/MM/YYYY.
trade_decay_v5.price Leg Requested Price (leg.price) - the requested price of leg sent to the Liquidity Provider for execution.
trade_decay_v5.deal Deal ID (deal.deal) - the unique Deal ID generated by XCore when a leg sent to a Liquidity Provider is further split by the Liquidity Provider into one or several deals.

Note: If a leg 12345-0 is split into two deals, the system generates two deal IDs (0 and 1) for this leg:
- 12345-0-0
- 12345-0-1.
#trade_decay_v5.deal_latency Deal Latency - the time in milliseconds from the moment the leg was opened (starting point of the Trade Decay timeline) to the moment the deal was executed by the Liquidity Provider.

Note:
#trade_decay_v5.deal_latency = deal.milli - leg.open_milli.
trade_decay_v5.fillsize Deal Execution Size (deal.size) - the size of the deal filled and confirmed by the Liquidity Provider, in lots.
trade_decay_v5.fillprice Deal Execution Price (deal.price) - the price at which the deal was executed, excluding all markups configured in XCore. For A-Book, this is the price confirmed by the Liquidity Provider. For B-Book, this is the liquidity pool top-of-book price on the traded side.
trade_decay_v5.conv_usd Deal Base Conversion to USD (deal.conv_usd) - the USD conversion rate at the moment of trade execution, converting the deal size in lots to USD, calculated as the price of the symbol's base currency against USD, multiplied by the symbol's contract_size defined in the Symbol configuration.
trade_decay_v5.interval Decay Interval - the elapsed time (T+) from trade_decay_v5.time when the leg was opened. Measured in milliseconds.

Note: In this report, an interval is a specific point in time at which the Decay Value is measured (for example, T+10ms), not a time range.
trade_decay_v5.bid Decay Bid - the top-of-book (TOB) Bid price from the liquidity pool at the specified time interval. It includes only the LP markup (Provider Stream Settings), if set.
trade_decay_v5.ask Decay Ask - the top-of-book (TOB) Ask price from the liquidity pool at the specified time interval after the leg opens. It includes only the LP markup (Provider Stream Settings), if set.
#trade_decay_v5.value Computed Decay Value - the decay value calculated as the difference between the execution price and the mid market price (the average of Bid and Ask) at the specified interval, adjusted by the order side and converted to USD for the full deal size.

Note:
- Calculated from the broker's perspective: positive values indicate broker profit, negative values indicate broker loss.
- if trade_decay_v5.side = BUY then price_diff = trade_decay_v5.fillprice - ((trade_decay_v5.bid + trade_decay_v5.ask) / 2)
- if trade_decay_v5.side = SELL then price_diff = ((trade_decay_v5.bid + trade_decay_v5.ask) / 2) - trade_decay_v5.fillprice
- #trade_decay_v5.value = (price_diff * trade_decay_v5.fillsize / trade_decay_v5.fillprice) * trade_decay_v5.conv_usd.
- The mid includes the LP markup (Provider Stream Settings), but the fill price does not.

If Bid or Ask is unavailable or invalid at the specified interval (trade_decay_v5.bid <= 0 or trade_decay_v5.ask <= 0), the mid market price cannot be calculated and the Decay Value for that interval is reported as 0.

Trade Decay V5 Toxic and Trade Decay V5 Profitable offer the fields above except trade_decay_v5.trade_source, trade_decay_v5.busdate, trade_decay_v5.deal and #trade_decay_v5.deal_latency.

Report Type: Trade Flow by Login
report type: trade flow by login
Field Name Description
trade_decay_v5.connector Order Connector (order.connector) - the connector name from the XCore configuration.
trade_decay_v5.account Order Connector Account (order.account) - the name of the connector account within the XCore connector responsible for executing the order.
trade_decay_v5.subid2 Order SubID 2 (order.subid2) - the SubID 2 of the order. When orders originate from an MT4 and MT5 connector, this will be the Group Name.
trade_decay_v5.subid3 Order SubID 3 (order.subid3) - the SubID 3 of the order. When orders originate from an MT4 and MT5 connector, this will be the Account Login number.
trade_decay_v5.side Order Side (order.side) - the side of the Order indicates whether the order is a "buy" or "sell".
trade_decay_v5.order_type Order Type (order.type) - the XCore order type.

Note: available values are:
- market
- limit
- stop
trade_decay_v5.leg_type Leg Type (leg.type) - the Leg type.

Note: available values are:
- market
- limit.
trade_decay_v5.provider Leg Provider (leg.provider) - for A-Book execution, the Liquidity Provider to which the Leg was sent for execution. For B-Book execution, the Provider whose price quote was used to execute the trade.
trade_decay_v5.connector_account_subid The combined identifier of the trade's execution channel, showing the connector name, connector account, and the specific SubID 3 used for the order, formatted as "Connector/Account/SubID 3".

Note: Formed by concatenating trade_decay_v5.connector (the connector name), trade_decay_v5.account (the connector account within the connector), and trade_decay_v5.subid3 (the order SubID 3).
trade_decay_v5.symbol Order Symbol (order.symbol) - the connector stream symbol name as known by the XCore.
trade_decay_v5.b_book Leg Book Type (#leg.ab_book) - the book type for the trade leg, derived from the Leg B-Book Execution flag (leg.b_book).

Note: available values are:
A - leg.b_book = 0 (A-book).
B - any other leg.b_book value (B-book, cross-hedge or Synthetic A-book).

For trades partially executed in both books, the report will show two separate entries: one with A for the A-Book part and one with B for the B-Book part.
trade_decay_v5.busdate Business Date - the FX/CFD business date assigned to the trade based on the Leg Open Timestamp (trade_decay_v5.time).

Note:
The business day changes at 17:00 America/New_York (DST-aware). Trades opened at or after 17:00 NY time belong to the next business date.

Format: DD/MM/YYYY.
trade_flow_by_login.Volume USD Volume USD - the USD-denominated volume of the deal at the moment of trade execution.

Note:
trade_flow_by_login.Volume USD = trade_decay_v5.fillsize * trade_decay_v5.conv_usd.

Use the Sum aggregation type to obtain the total traded volume for the selected grouping.
Use this field together with the decay metrics to assess the significance of the observed trading pattern. Similar decay values on a larger total traded volume indicate a more meaningful and actionable trading pattern than the same decay values on a small volume.
#trade_flow_by_login.n_fills Fills - the number of fills (deals) included in the report.

Note:
For each row: #trade_flow_by_login.n_fills = 1.

Use the Sum aggregation type to obtain the total number of fills for the selected grouping. This field is intended to show the sample size behind the reported decay values.
trade_flow_by_login.0ms Decay value (#trade_decay_v5.value) at T+0ms - the markout at the leg open (trade_decay_v5.time), before any price movement occurs. For the calculation and markup details, see #trade_decay_v5.value.
trade_flow_by_login.5ms Decay value (#trade_decay_v5.value) at T+5ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 5ms.
trade_flow_by_login.10ms Decay value (#trade_decay_v5.value) at T+10ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 10ms.
trade_flow_by_login.15ms Decay value (#trade_decay_v5.value) at T+15ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 15ms.
trade_flow_by_login.20ms Decay value (#trade_decay_v5.value) at T+20ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 20ms.
trade_flow_by_login.25ms Decay value (#trade_decay_v5.value) at T+25ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 25ms.
trade_flow_by_login.30ms Decay value (#trade_decay_v5.value) at T+30ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 30ms.
trade_flow_by_login.40ms Decay value (#trade_decay_v5.value) at T+40ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 40ms.
trade_flow_by_login.50ms Decay value (#trade_decay_v5.value) at T+50ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 50ms.
trade_flow_by_login.60ms Decay value (#trade_decay_v5.value) at T+60ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 60ms.
trade_flow_by_login.70ms Decay value (#trade_decay_v5.value) at T+70ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 70ms.
trade_flow_by_login.80ms Decay value (#trade_decay_v5.value) at T+80ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 80ms.
trade_flow_by_login.100ms Decay value (#trade_decay_v5.value) at T+100ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 100ms.
trade_flow_by_login.120ms Decay value (#trade_decay_v5.value) at T+120ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 120ms.
trade_flow_by_login.150ms Decay value (#trade_decay_v5.value) at T+150ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 150ms.
trade_flow_by_login.200ms Decay value (#trade_decay_v5.value) at T+200ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 200ms.
trade_flow_by_login.300ms Decay value (#trade_decay_v5.value) at T+300ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 300ms.
trade_flow_by_login.500ms Decay value (#trade_decay_v5.value) at T+500ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 500ms.
trade_flow_by_login.1s Decay value (#trade_decay_v5.value) at T+1s from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 1000ms.
trade_flow_by_login.2s Decay value (#trade_decay_v5.value) at T+2s from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 2000ms.
trade_flow_by_login.5s Decay value (#trade_decay_v5.value) at T+5s from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 5000ms.
trade_flow_by_login.10s Decay value (#trade_decay_v5.value) at T+10s from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 10000ms.
trade_flow_by_login.20s Decay value (#trade_decay_v5.value) at T+20s from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 20000ms.
trade_flow_by_login.30s Decay value (#trade_decay_v5.value) at T+30s from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 30000ms.
trade_flow_by_login.60s Decay value (#trade_decay_v5.value) at T+60s from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 60000ms.
trade_flow_by_login.90s Decay value (#trade_decay_v5.value) at T+90s from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 90000ms.
trade_flow_by_login.120s Decay value (#trade_decay_v5.value) at T+120s from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 120000ms.
trade_flow_by_login.180s Decay value (#trade_decay_v5.value) at T+180s from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 180000ms.
trade_flow_by_login.300s Decay value (#trade_decay_v5.value) at T+300s from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 300000ms.
trade_flow_by_login.600s Decay value (#trade_decay_v5.value) at T+600s from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 600000ms.
trade_flow_by_login.900s Decay value (#trade_decay_v5.value) at T+900s from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 900000ms.
#trade_flow_by_login.short_quality Short-Term Quality Score - the broker's average USD profit or loss across six short-term decay intervals (0ms, 500ms, 1s, 30s, 60s, 120s), calculated for the selected report grouping.

Note:
#trade_flow_by_login.short_quality = AVERAGE(VWAPMM decay values at the six intervals) * trade_flow_by_login.Volume USD / 1,000,000.

Negative values indicate the broker lost money on average across these intervals; positive values indicate broker profit.
This field is calculated only from interval fields that use the VWAPMM aggregation type. The template must also include trade_flow_by_login.Volume USD with the Sum aggregation type. Otherwise, the result is blank. Calculated after all report grouping and aggregation is complete, not per deal.
#trade_flow_by_login.long_quality Long-Term Quality Score - the broker's average USD profit or loss across six longer-term decay intervals (0ms, 30s, 60s, 300s, 600s, 900s), calculated for the selected report grouping.

Note:
#trade_flow_by_login.long_quality = AVERAGE(VWAPMM decay values at the six intervals) * trade_flow_by_login.Volume USD / 1,000,000.

Negative values indicate the broker lost money on average across these intervals; positive values indicate broker profit.
This field is calculated only from interval fields that use the VWAPMM aggregation type. The template must also include trade_flow_by_login.Volume USD with the Sum aggregation type. Otherwise, the result is blank. Calculated after all report grouping and aggregation is complete, not per deal.
Report Type: Toxic Client Watchlist
report type: toxic client watchlist
Field Name Description
trade_decay_v5.connector Order Connector (order.connector) - the connector name from the XCore configuration.
trade_decay_v5.account Order Connector Account (order.account) - the name of the connector account within the XCore connector responsible for executing the order.
trade_decay_v5.subid2 Order SubID 2 (order.subid2) - the SubID 2 of the order. When orders originate from an MT4 and MT5 connector, this will be the Group Name.
trade_decay_v5.subid3 Order SubID 3 (order.subid3) - the SubID 3 of the order. When orders originate from an MT4 and MT5 connector, this will be the Account Login number.
trade_decay_v5.side Order Side (order.side) - the side of the Order indicates whether the order is a "buy" or "sell".
trade_decay_v5.order_type Order Type (order.type) - the XCore order type.

Note: available values are:
- market
- limit
- stop
trade_decay_v5.leg_type Leg Type (leg.type) - the Leg type.

Note: available values are:
- market
- limit.
trade_decay_v5.provider Leg Provider (leg.provider) - for A-Book execution, the Liquidity Provider to which the Leg was sent for execution. For B-Book execution, the Provider whose price quote was used to execute the trade.
#toxic_watchlist.book Leg Book Type (#leg.ab_book) - the book type for the trade leg, derived from the Leg B-Book Execution flag (leg.b_book).

Note: available values are:
A - leg.b_book = 0 (A-book).
B - any other leg.b_book value (B-book, cross-hedge or Synthetic A-book).

For trades partially executed in both books, the report will show two separate entries: one with A for the A-Book part and one with B for the B-Book part.
trade_decay_v5.busdate Business Date - the FX/CFD business date assigned to the trade based on the Leg Open Timestamp (trade_decay_v5.time).

Note:
The business day changes at 17:00 America/New_York (DST-aware). Trades opened at or after 17:00 NY time belong to the next business date.

Format: DD/MM/YYYY.
trade_flow_by_login.Volume USD Volume USD - the USD-denominated volume of the deal at the moment of trade execution.

Note:
trade_flow_by_login.Volume USD = trade_decay_v5.fillsize * trade_decay_v5.conv_usd.

Use the Sum aggregation type to obtain the total traded volume for the selected grouping.
Use this field together with the decay metrics to assess the significance of the observed trading pattern. Similar decay values on a larger total traded volume indicate a more meaningful and actionable trading pattern than the same decay values on a small volume.
#trade_flow_by_login.n_fills Fills - the number of fills (deals) included in the report.

Note:
For each row: #trade_flow_by_login.n_fills = 1.

Use the Sum aggregation type to obtain the total number of fills for the selected grouping. This field is intended to show the sample size behind the reported decay values.
trade_flow_by_login.0ms Decay value (#trade_decay_v5.value) at T+0ms - the markout at the leg open (trade_decay_v5.time), before any price movement occurs. For the calculation and markup details, see #trade_decay_v5.value.
trade_flow_by_login.5ms Decay value (#trade_decay_v5.value) at T+5ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 5ms.
trade_flow_by_login.10ms Decay value (#trade_decay_v5.value) at T+10ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 10ms.
trade_flow_by_login.15ms Decay value (#trade_decay_v5.value) at T+15ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 15ms.
trade_flow_by_login.20ms Decay value (#trade_decay_v5.value) at T+20ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 20ms.
trade_flow_by_login.25ms Decay value (#trade_decay_v5.value) at T+25ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 25ms.
trade_flow_by_login.30ms Decay value (#trade_decay_v5.value) at T+30ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 30ms.
trade_flow_by_login.40ms Decay value (#trade_decay_v5.value) at T+40ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 40ms.
trade_flow_by_login.50ms Decay value (#trade_decay_v5.value) at T+50ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 50ms.
trade_flow_by_login.60ms Decay value (#trade_decay_v5.value) at T+60ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 60ms.
trade_flow_by_login.70ms Decay value (#trade_decay_v5.value) at T+70ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 70ms.
trade_flow_by_login.80ms Decay value (#trade_decay_v5.value) at T+80ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 80ms.
trade_flow_by_login.100ms Decay value (#trade_decay_v5.value) at T+100ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 100ms.
trade_flow_by_login.120ms Decay value (#trade_decay_v5.value) at T+120ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 120ms.
trade_flow_by_login.150ms Decay value (#trade_decay_v5.value) at T+150ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 150ms.
trade_flow_by_login.200ms Decay value (#trade_decay_v5.value) at T+200ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 200ms.
trade_flow_by_login.300ms Decay value (#trade_decay_v5.value) at T+300ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 300ms.
trade_flow_by_login.500ms Decay value (#trade_decay_v5.value) at T+500ms from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 500ms.
trade_flow_by_login.1s Decay value (#trade_decay_v5.value) at T+1s from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 1000ms.
trade_flow_by_login.2s Decay value (#trade_decay_v5.value) at T+2s from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 2000ms.
trade_flow_by_login.5s Decay value (#trade_decay_v5.value) at T+5s from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 5000ms.
trade_flow_by_login.10s Decay value (#trade_decay_v5.value) at T+10s from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 10000ms.
trade_flow_by_login.20s Decay value (#trade_decay_v5.value) at T+20s from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 20000ms.
trade_flow_by_login.30s Decay value (#trade_decay_v5.value) at T+30s from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 30000ms.
trade_flow_by_login.60s Decay value (#trade_decay_v5.value) at T+60s from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 60000ms.
trade_flow_by_login.90s Decay value (#trade_decay_v5.value) at T+90s from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 90000ms.
trade_flow_by_login.120s Decay value (#trade_decay_v5.value) at T+120s from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 120000ms.
trade_flow_by_login.180s Decay value (#trade_decay_v5.value) at T+180s from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 180000ms.
trade_flow_by_login.300s Decay value (#trade_decay_v5.value) at T+300s from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 300000ms.
trade_flow_by_login.600s Decay value (#trade_decay_v5.value) at T+600s from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 600000ms.
trade_flow_by_login.900s Decay value (#trade_decay_v5.value) at T+900s from the leg open (trade_decay_v5.time).

Note: Uses trade_decay_v5.ask and trade_decay_v5.bid at decay interval = 900000ms.
#toxic_watchlist.rank Watchlist Rank - the position of the group in the watchlist, ranked by Watchlist Worst Value in ascending order.

Note:
- Rank 1 has the most negative Watchlist Worst Value.
- Only groups that satisfy the Negative Interval Ranges filter are included in the ranking.
#toxic_watchlist.worst Watchlist Worst Value - the most negative Decay value among all time intervals included in the configured Negative Interval Ranges filter. Only intervals included in the configured ranges are considered.

Note: When interval values use Sum, Worst is expressed as the total USD profit/loss. When interval values use VWAPMM, Worst is expressed as potential USD profit/loss per million USD traded.
#toxic_watchlist.worst_at Watchlist Worst Interval - the time interval where the Watchlist Worst Value occurs (for example, 10ms, 50ms, or 200ms).

Note: If the same Worst Value occurs in multiple intervals, the earliest interval is returned.
#toxic_watchlist.neg_buckets Watchlist Negative Buckets - the number of time intervals with values below zero across the intervals included in the report output.

Note: Counts only the intervals added to the report template, regardless of the Negative Interval Ranges filter. Only values strictly below 0 are counted; the threshold defined in the Negative Interval Ranges filter is not used.
#toxic_watchlist.toxic_beyond Watchlist Toxic Beyond - indicates whether decay values remain negative beyond the last interval defined in the Negative Interval Ranges filter. The evaluation is always based on comparison with 0 and does not depend on the threshold defined in the filter.

Note: available values are:
- Yes - all intervals after the last configured range have values below zero. If there are no intervals beyond the last configured range, the result is Yes.
- No - at least one interval after the last configured range is zero, positive, or missing data.
#trade_flow_by_login.short_quality Short-Term Quality Score - the broker's average USD profit or loss across six short-term decay intervals (0ms, 500ms, 1s, 30s, 60s, 120s), calculated for the selected report grouping.

Note:
#trade_flow_by_login.short_quality = AVERAGE(VWAPMM decay values at the six intervals) * trade_flow_by_login.Volume USD / 1,000,000.

Negative values indicate the broker lost money on average across these intervals; positive values indicate broker profit.
This field is calculated only from interval fields that use the VWAPMM aggregation type. The template must also include trade_flow_by_login.Volume USD with the Sum aggregation type. Otherwise, the result is blank. Calculated after all report grouping and aggregation is complete, not per deal.
#trade_flow_by_login.long_quality Long-Term Quality Score - the broker's average USD profit or loss across six longer-term decay intervals (0ms, 30s, 60s, 300s, 600s, 900s), calculated for the selected report grouping.

Note:
#trade_flow_by_login.long_quality = AVERAGE(VWAPMM decay values at the six intervals) * trade_flow_by_login.Volume USD / 1,000,000.

Negative values indicate the broker lost money on average across these intervals; positive values indicate broker profit.
This field is calculated only from interval fields that use the VWAPMM aggregation type. The template must also include trade_flow_by_login.Volume USD with the Sum aggregation type. Otherwise, the result is blank. Calculated after all report grouping and aggregation is complete, not per deal.
Report Type: Book Report
report type: book report
Field Name Description
#book.order Book Order - the unique XCore Order ID.
#book.leg Book Leg - the unique Leg ID.
#book.pool_id Book Liquidity Pool - the name of the Liquidity Pool pricing the Quote.
#book.markup_profile Book Markup Profile - the name of the Markup Profile associated with the Quote.
#book.book_layer Book Layer - the number of layer in the advertised liquidity book; 0 - TOB, 1 - Layer 1, etc.
#book.bid_quote_provider Bid Quote Provider - the name of the Liquidity Provider pricing the Bid Quote.
#book.bid_quote_price_raw Bid Quote Price Raw - the raw bid quote price received from the Liquidity Provider.
#book.bid_quote_price_lp_markup Bid Quote Price LP Markup - the raw bid quote price received from the Liquidity Provider including any pre-aggregation markups configured in the Provider Stream Settings.
#book.bid_quote_price_markup Bid Quote Price Markup - the raw bid quote price received from the Liquidity Provider including any pre-aggregation markups configured in the Provider Stream Settings as well as any markups configured under the Markup Profile Settings and the Connector Profile Trade Lock Settings.
#book.bid_quote_liquidity_a_book Bid Quote Liquidity A-Book - the available A-book liquidity of the bid quote.
#book.bid_quote_liquidity_b_book Bid Quote Liquidity B-Book - the available B-book liquidity of the bid quote.
#book.bid_quote_xcore_timestamp Bid Quote XCore Timestamp - the timestamp when the bid quote was received in the XCore. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
#book.bid_quote_date Bid Quote Date - the date when the bid quote was received in the XCore.
Format: DD/MM/YYYY.
#book.bid_quote_time Bid Quote Time - the time when the bid quote was received in the XCore.
Format: HH:MM:SS.
#book.ask_quote_provider Ask Quote Provider - the name of the Liquidity Provider pricing the Ask Quote.
#book.ask_quote_price_raw Ask Quote Price Raw - the raw ask quote price received from the Liquidity Provider.
#book.ask_quote_price_lp_markup Ask Quote Price LP Markup - the raw ask quote price received from the Liquidity Provider including any pre-aggregation markups configured in the Provider Stream Settings.
#book.ask_quote_price_markup Ask Quote Price Markup - the raw ask quote price received from the Liquidity Provider including any pre-aggregation markups configured in the Provider Stream Settings as well as any markups configured under the Markup Profile Settings and the Connector Profile Trade Lock Settings.
#book.ask_quote_liquidity_a_book Ask Quote Liquidity A-Book - the available A-book liquidity of the ask quote.
#book.ask_quote_liquidity_b_book Ask Quote Liquidity B-Book - the available B-book liquidity of the ask quote.
#book.ask_quote_xcore_timestamp Ask Quote XCore Timestamp - the timestamp when the ask quote was received in the XCore. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
#book.ask_quote_date Ask Quote Date - the date when the ask quote was received in the XCore.
Format: DD/MM/YYYY.
#book.ask_quote_time Ask Quote Time - the time when the ask quote was received in the XCore.
Format: HH:MM:SS.
#book.spread_raw Spread Raw - the raw spread advertised by the Liquidity Provider

Note:
#book.spread_raw = #book.ask_quote_price_raw - #book.bid_quote_price_raw
#book.spread Spread Markup - the spread including the configured markups

Note:
#book.spread = #book.ask_quote_price_markup - #book.bid_quote_price_markup
Report Type: Book ClickHouse
report type: book clickhouse
Field Name Description
#book_ch.order Book Order (#book.order) - the unique XCore Order ID.
#book_ch.leg Book Leg (#book.leg) - the unique Leg ID.
#book_ch.book_layer Book Layer (#book.book_layer) - the number of layer in the advertised liquidity book; 0 - TOB, 1 - Layer 1, etc.
#book_ch.bid_quote_provider Bid Quote Provider (#book.bid_quote_provider) - the name of the Liquidity Provider pricing the Bid Quote.
#book_ch.bid_quote_price_raw Bid Quote Price Raw (#book.bid_quote_price_raw) - the raw bid quote price received from the Liquidity Provider.
#book_ch.bid_quote_price_lp_markup Bid Quote Price LP Markup (#book.bid_quote_price_lp_markup) - the raw bid quote price received from the Liquidity Provider including any pre-aggregation markups configured in the Provider Stream Settings.
#book_ch.bid_quote_price_markup Bid Quote Price Markup (#book.bid_quote_price_markup) - the raw bid quote price received from the Liquidity Provider including any pre-aggregation markups configured in the Provider Stream Settings as well as any markups configured under the Markup Profile Settings and the Connector Profile Trade Lock Settings.
#book_ch.bid_liquidity_a_book Bid Quote Liquidity A-Book (#book.bid_quote_liquidity_a_book) - the available A-book liquidity of the bid quote.
#book_ch.bid_liquidity_b_book Bid Quote Liquidity B-Book (#book.bid_quote_liquidity_b_book) - the available B-book liquidity of the bid quote.
#book_ch.bid_xcore_timestamp Bid Quote XCore Timestamp (#book.bid_quote_xcore_timestamp) - the timestamp when the bid quote was received in the XCore. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
#book_ch.bid_date Bid Quote Date (#book.bid_quote_date) - the date when the bid quote was received in the XCore.
Format: DD/MM/YYYY.
#book_ch.bid_time Bid Quote Time (#book.bid_quote_time) - the time when the bid quote was received in the XCore.
Format: HH:MM:SS.
#book_ch.ask_quote_provider Ask Quote Provider (#book.ask_quote_provider) - the name of the Liquidity Provider pricing the Ask Quote.
#book_ch.ask_quote_price_raw Ask Quote Price Raw (#book.ask_quote_price_raw) - the raw ask quote price received from the Liquidity Provider.
#book_ch.ask_quote_price_lp_markup Ask Quote Price LP Markup (#book.ask_quote_price_lp_markup) - the raw ask quote price received from the Liquidity Provider including any pre-aggregation markups configured in the Provider Stream Settings.
#book_ch.ask_quote_price_markup Ask Quote Price Markup (#book.ask_quote_price_markup) - the raw ask quote price received from the Liquidity Provider including any pre-aggregation markups configured in the Provider Stream Settings as well as any markups configured under the Markup Profile Settings and the Connector Profile Trade Lock Settings.
#book_ch.ask_liquidity_a_book Ask Quote Liquidity A-Book (#book.ask_quote_liquidity_a_book) - the available A-book liquidity of the ask quote.
#book_ch.ask_liquidity_b_book Ask Quote Liquidity B-Book (#book.ask_quote_liquidity_b_book) - the available B-book liquidity of the ask quote.
#book_ch.ask_xcore_timestamp Ask Quote XCore Timestamp (#book.ask_quote_xcore_timestamp) - the timestamp when the ask quote was received in the XCore. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
#book_ch.ask_date Ask Quote Date (#book.ask_quote_date) - the date when the ask quote was received in the XCore.
Format: DD/MM/YYYY.
#book_ch.ask_time Ask Quote Time (#book.ask_quote_time) - the time when the ask quote was received in the XCore.
Format: HH:MM:SS.
#book_ch.spread_raw Spread Raw (#book.spread_raw) - the raw spread advertised by the Liquidity Provider

Note:
#book.spread_raw = #book.ask_quote_price_raw - #book.bid_quote_price_raw
#book_ch.spread_markup Spread Markup (#book.spread) - the spread including the configured markups

Note:
#book.spread = #book.ask_quote_price_markup - #book.bid_quote_price_markup
Report Type: TOB by Maker (ClickHouse)
report type: tob by maker (clickhouse)
Field Name Description
#maker_book.time Time - the timestamp of the top-of-book snapshot. Timestamp is in UTC.
Format: HH:MM:SS.

Note: rows are bucketed into time slots, and the slot width depends on the selected date range: up to 6 seconds - 1 ms; up to 1 minute - 10 ms; up to 10 minutes - 100 ms; up to 1 hour - 1 second; up to 1 day - 30 seconds. Wider ranges keep widening in whole-minute steps (for example, 1 week - about 2 minutes; 30 days - about 8 minutes). Each row is the last real quote change in its slot, not an average, so a wider date range can hide short-lived price moves between slots.
maker_book.maker Maker - the name of the Liquidity Provider providing this quote.
maker_book.symbol Maker Book Symbol - the provider stream symbol name as known by XCore.
maker_book.bid_price Bid Price - the top-of-book bid price this Maker was quoting.
maker_book.ask_price Ask Price - the top-of-book ask price this Maker was quoting.
maker_book.bid_size Bid Size - the size available at this Maker's bid price.
maker_book.ask_size Ask Size - the size available at this Maker's ask price.
#maker_book.spread Spread - the gap between this Maker's Ask Price and Bid Price.

Note:
#maker_book.spread = maker_book.ask_price - maker_book.bid_price.
Report Type: Fill Ratio
report type: fill ratio
Field Name Description
order.order Order ID - the unique XCore Order ID.
order.connector Order Connector - the connector name from the XCore configuration.
order.account Order Connector Account - the name of the connector account within the XCore connector responsible for executing the order.
order.subid3 Order SubID 3 - the SubID 3 of the order. When orders originate from an MT4 and MT5 connector, this will be the Account Login number.
order.side Order Side - the side of the Order indicates whether the order is a "buy" or "sell".
order.type Order Type - the XCore order type.

Note: available values are:
- market
- limit
- stop
order.symbol Order Symbol - the connector stream symbol name as known by the XCore.
leg.b_book Leg B-Book Execution - the flag that shows whether a trade leg was executed through the B-Book or A-Book.

Note: available values are:
0 - Leg was executed through A-Book.
1 - Leg was executed through B-Book.
2 - Cross-hedge leg.
3 - Leg was executed as Synthetic A-Book.

For trades partially executed in both books, the report will show two separate entries: one with 0 for the A-Book part and one with 1 for the B-Book part.
leg.provider Leg Provider - for A-Book execution, the Liquidity Provider to which the Leg was sent for execution. For B-Book execution, the Provider whose price quote was used to execute the trade.
leg.type Leg Type - the Leg type.

Note: available values are:
- market
- limit
- pq (prequoted), depending on the order type, the DealerTrade mode and the provider.
leg.instrument Leg Provider Instrument - the instrument name at the Liquidity Provider to which the trade was sent for execution.
leg.size Leg Requested Size - the requested size of leg sent to the Liquidity Provider for execution, in lots.
leg.price Leg Requested Price - the requested price of leg sent to the Liquidity Provider for execution.
leg.fillsize Leg Fill Size - the fill size of the leg, in lots.

Note: A Leg sent to a Liquidity Provider can be further split by the Liquidity Provider into one or several deals. Therefore, the Leg Fill Size is the sum of the deals confirmed by the Liquidity Provider.
leg.fillprice Leg Fill Price - the leg fill price, excluding all markups configured in XCore. For A-Book, this is the price confirmed by the Liquidity Provider. For B-Book, this is the liquidity pool top-of-book price on the traded side.

Note: the fill price is the volume-weighted average fill price of the filled deals (deal.price).
#leg.is_pending Leg Pending Flag - indicates that the leg is in Pending status.

Note: available values are:
1 - the leg has not been filled and is still open (leg.fillsize = 0 and leg.close_milli = 0);
null - otherwise.
#leg.is_filled Leg Filled Flag - indicates that the leg is in Filled status.

Note: available values are:
1 - the leg is fully filled and closed (leg.fillsize = leg.size and leg.close_milli > 0);
null - otherwise.
#leg.is_partial Leg Partial Flag - indicates that the leg is in Partial status.

Note: available values are:
1 - the leg is partially filled and closed (leg.fillsize > 0 and leg.fillsize < leg.size and leg.close_milli > 0);
null - otherwise.
#leg.is_rejected Leg Rejected Flag - indicates that the leg is in Rejected status.

Note: available values are:
1 - the leg was not filled and is closed (leg.fillsize = 0 and leg.close_milli > 0);
null - otherwise.
#leg.is_filled_partial Leg Filled/Partial Flag - indicates that the leg has any execution (Filled or Partial).

Note: available values are:
1 - the leg has been at least partially filled and closed (leg.fillsize > 0 and leg.close_milli > 0);
null - otherwise.
#leg.is_slippage Leg Slippage Flag - indicates that the leg was executed with slippage in the unfavorable direction relative to the order side.

Note: available values are:
1 - the leg has been filled with slippage (for BUY: leg.fillprice > leg.price; for SELL: leg.fillprice < leg.price) and is closed (leg.fillsize > 0 and leg.close_milli > 0);
null - otherwise.
#leg.is_expected Leg Expected Price Flag - indicates that the leg was executed at the expected price.

Note: available values are:
1 - the leg has been filled at the exact requested price (leg.fillprice = leg.price) and is closed (leg.fillsize > 0 and leg.close_milli > 0);
null - otherwise.
#leg.is_improvement Leg Price Improvement Flag - indicates that the leg was executed at a better price than requested relative to the order side.

Note: available values are:
1 - the leg has been filled with price improvement (for BUY: leg.fillprice < leg.price; for SELL: leg.fillprice > leg.price) and is closed (leg.fillsize > 0 and leg.close_milli > 0);
null - otherwise.
#leg.delta_fill Leg Fill Execution Time - the time in milliseconds from leg submission to full or partial fill.

Note:
If the leg has been filled (leg.fillsize > 0 and leg.close_milli > 0):
#leg.delta_fill = leg.close_milli - leg.open_milli;
null - otherwise.
#leg.delta_reject Leg Reject Execution Time - the time in milliseconds from leg submission to rejection.

Note:
If the leg was rejected (leg.fillsize = 0 and leg.close_milli > 0):
#leg.delta_reject = leg.close_milli - leg.open_milli;
null - otherwise.
#leg.slippage_to_improvement_ratio Leg Slippage to Improvement Ratio - the percentage ratio between the number of slippage events and improvement events across legs.

Note:
Aggregation-only field. Must be used with the "Aggregation Ratio" column type; otherwise, it returns NULL for each individual row.
If the number of improvement events equals 0, the result is NULL.
#leg.count Leg Count - the number of legs included in the report.

Note:
For each row: #leg.count = 1.

Use the Sum aggregation type to obtain the total number of legs for the selected grouping.
#leg.fillrate_size Leg Fill Rate by Size - the fill rate of the leg based on filled size. With the Ratio aggregation, shows the percentage of requested size that was filled across the group.

Note:
#leg.fillrate_size (Ratio) = 100 * Σ(leg.fillsize) / Σ(leg.size).
With any Column Type other than Ratio, this field behaves as Leg Fill Size (#leg.fillsize).
#deal.volume_usd Leg Volume USD - the USD-denominated volume of all deals attached to this leg, at the moment of trade execution.

Note: available values are:
#deal.volume_usd = Σ(deal.size * deal.conv_usd) for all deals linked to the leg - when the leg has at least one deal;
null - otherwise.
#leg.reject_message Leg Reject Reason - the reason why the leg was rejected by the Liquidity Provider.

Note: available values are:
deal.message - the message from the leg's last zero-size deal, when present (excluding the 'n/a' placeholder);
null - otherwise.
Report Type: Profit B-Book
report type: profit b-book
Field Name Description
order.symbol Order Symbol - the connector stream symbol name as known by the XCore.
#profit_bbook.net_base Broker Net Base Position - the broker's net position in the symbol Base Currency, aggregated across all B-Book deals for the selected period and calculated from the broker's perspective.

Note:
- for each deal:
- if order.side = BUY then delta_base = - deal.size
- if order.side = SELL then delta_base = deal.size

- #profit_bbook.net_base = Σ delta_base for all deals in the selected period.

Values are expressed in lots of the symbol Base Currency and do not include symbol.contract_size multiplication.
This calculation includes trade execution data only and does not include position changes applied outside of trading activity, such as manual adjustments through Position Admin.
#profit_bbook.net_quote Broker Net Quote Position - the broker's net position in the symbol Quote Currency, aggregated across all B-Book deals for the selected period and calculated from the broker's perspective.

Note:
- for each deal:
- if order.side = BUY then delta_quote = deal.size * order.factor * deal.price
- if order.side = SELL then delta_quote = - (deal.size * order.factor * deal.price)

- #profit_bbook.net_quote = Σ delta_quote for all deals in the selected period.

This calculation includes trade execution data only and does not include position changes applied outside of trading activity, such as manual adjustments through Position Admin or PL_SETTLEMENT transactions.
#filter.symbol_price Symbol Market Price - the last recorded price of the symbol up to the end of the selected report date range.

Note:
The price is taken from the filter table, which stores prices that passed the configured thresholds.
The price does not include markups from the Markup Profile Settings (Bid/Ask markups, Min/Max Spread).
The price includes the Bid or Ask markup from the Provider Stream Settings only.
The symbol contract size (symbol.contract_size) is not applied.

Note:
- if #profit_bbook.net_base >= 0 then #filter.symbol_price = filter.bid_close
- if #profit_bbook.net_base < 0 then #filter.symbol_price = filter.ask_close.
#filter.symbol_price_time Symbol Market Price Timestamp - the timestamp of the filter.bid_close (if #profit_bbook.net_base >= 0) or filter.ask_close (if #profit_bbook.net_base < 0) value used for #filter.symbol_price. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
#filter.usd_price USD Conversion Price - the last recorded conversion price from the symbol Base Currency to USD up to the end of the selected report date range.

Note:
The price is taken from the filter table, which stores prices that passed the configured thresholds.
The price does not include markups from the Markup Profile Settings (Bid/Ask markups, Min/Max Spread).
The price includes the Bid or Ask markup from the Provider Stream Settings only.
The symbol contract size (symbol.contract_size) is not applied.

Note:
- if #profit_bbook.net_base >= 0 then #filter.usd_price = filter.bid_close
- if #profit_bbook.net_base < 0 then #filter.usd_price = filter.ask_close.
#filter.usd_price_time USD Conversion Price Timestamp - the timestamp of the filter.bid_close (if #profit_bbook.net_base >= 0) or filter.ask_close (if #profit_bbook.net_base < 0) value used for #filter.usd_price. Timestamp is in UTC.
Format: DD/MM/YYYY HH:MM:SS.
#profit_bbook.profit_in_quote Broker Profit in Quote Currency - the broker's total mark-to-market profit or loss expressed in the symbol Quote Currency, calculated from the broker's perspective for all B-Book deals over the selected period.

Note:
#profit_bbook.profit_in_quote = #profit_bbook.net_quote + (#profit_bbook.net_base * #filter.symbol_price * symbol.contract_size).
This is a mark-to-market PnL metric, showing the broker's total profit if the entire net position were closed at the current market price.

Note: This calculation includes trade execution data only and does not include position changes applied outside of trading activity, such as manual adjustments through Position Admin.
#profit_bbook.profit_in_base Broker Profit in Base Currency - the broker's total mark-to-market profit or loss expressed in the symbol Base Currency, calculated from the broker's perspective for all B-Book deals over the selected period.

Note:
#profit_bbook.profit_in_base = #profit_bbook.net_base + (#profit_bbook.net_quote / (#filter.symbol_price * symbol.contract_size)).
This represents the same PnL as #profit_bbook.profit_in_quote but expressed in the symbol Base Currency.

Values are expressed in lots of the symbol Base Currency and do not include symbol.contract_size multiplication.
This calculation includes trade execution data only and does not include position changes applied outside of trading activity, such as manual adjustments through Position Admin.
#profit_bbook.profit_in_usd Broker Profit in USD - the broker's total mark-to-market profit or loss expressed in USD, calculated from the broker's perspective for all B-Book deals over the selected period.

Note:
#profit_bbook.profit_in_usd = #profit_bbook.profit_in_base * symbol.contract_size * #filter.usd_price.
This represents the same PnL as #profit_bbook.profit_in_quote but expressed in USD.

Note: This calculation includes trade execution data only and does not include position changes applied outside of trading activity, such as manual adjustments through Position Admin.
Report Type: Position P&L
report type: position p&l
Field Name Description
#position_pnl.account Account (account_position.account) - the account identifier as defined in the XCore configuration. This value corresponds to the Account.name parameter.
#position_pnl.symbol Symbol (account_position.symbol) - the symbol name of the position as known by the XCore.

Note: when the report uses grouping, grouping by this field (Column Type = Grouping field) is required for #position_pnl.symbol_quote_ccy, #position_pnl.base and all _quote_ccy fields to be filled.
#position_pnl.busdate Business Date - the business day this row's figures were computed for, based on account_position activity within that day's boundaries.

Note:
The business day changes at 17:00 America/New_York (DST-aware).

Format: DD/MM/YYYY.
#position_pnl.symbol_quote_ccy Symbol Quote Currency - the quote currency of the traded symbol (e.g., USD for EURUSD).

Note: value is taken from symbol configuration field symbol.quote and represents the currency in which the symbol is quoted.
#position_pnl.base Base (account_position.base) - the position size at the closing boundary of the business day, expressed in the symbol's Base Currency.
#position_pnl.realized_pnl_quote_ccy Realized PnL (Quote Currency) - the realized profit or loss closed during the business day, expressed in the symbol's Quote Currency.

Note:
#position_pnl.realized_pnl_quote_ccy = SUM of the change in account_position.closed_pl across the day's rows, excluding resets caused by a PL_SETTLEMENT transaction.
#position_pnl.unrealized_pnl_quote_ccy Unrealized PnL (Quote Currency) - the unrealized profit or loss of the position at the end of the business day, expressed in the symbol's Quote Currency.

Note:
#position_pnl.unrealized_pnl_quote_ccy = account_position.base * symbol.contract_size * mid_price + (account_position.quote - account_position.closed_pl).
All values are taken at the end of the business day.

Note: mid_price is the last recorded mid price of the symbol up to the end of the business day:
mid_price = (filter.ask_close + filter.bid_close) / 2.

Note: account_position.closed_pl is subtracted from account_position.quote, so the result reflects only the open position, whether or not realized PnL has already been booked by a PL_SETTLEMENT transaction.
#position_pnl.unrealized_pnl_change_quote_ccy Unrealized PnL Change (Quote Currency) - the change in the unrealized profit or loss of the position over the business day, expressed in the symbol's Quote Currency.

Note:
#position_pnl.unrealized_pnl_change_quote_ccy = #position_pnl.unrealized_pnl_quote_ccy - unrealized_pnl_quote_ccy_at_day_start.
unrealized_pnl_quote_ccy_at_day_start is calculated with the same formula as #position_pnl.unrealized_pnl_quote_ccy, using the values at the start of the business day.
#position_pnl.total_pnl_quote_ccy Total PnL (Quote Currency) - the total daily profit or loss, including realized PnL and the change in unrealized PnL, expressed in the symbol's Quote Currency.

Note:
#position_pnl.total_pnl_quote_ccy = #position_pnl.realized_pnl_quote_ccy + #position_pnl.unrealized_pnl_change_quote_ccy.
#position_pnl.pos_pnl_quote_ccy Position PnL (Quote Currency) - the revaluation of the position already held at the start of the business day, expressed in the symbol's Quote Currency.

Note:
#position_pnl.pos_pnl_quote_ccy = account_position.base_at_day_start * symbol.contract_size * (mid_price_at_day_end - mid_price_at_day_start).

Note: mid_price_at_day_start and mid_price_at_day_end are the last recorded mid prices of the symbol up to the start and up to the end of the business day:
mid_price = (filter.ask_close + filter.bid_close) / 2.
#position_pnl.trading_pnl_quote_ccy Trading PnL (Quote Currency) - the part of the day's Total PnL attributable to that day's trading activity, excluding the overnight carry, expressed in the symbol's Quote Currency.

Note:
#position_pnl.trading_pnl_quote_ccy = #position_pnl.total_pnl_quote_ccy - #position_pnl.pos_pnl_quote_ccy.
#position_pnl.currency Currency - the currency of #position_pnl.realized_pnl, #position_pnl.unrealized_pnl, #position_pnl.unrealized_pnl_change, #position_pnl.total_pnl, #position_pnl.pos_pnl, #position_pnl.trading_pnl and #position_pnl.volume in this row.

Note: available values are:
- the account's Default Account Currency, defined in the Account Group Setting with the key DEFAULT_CCY - when #position_pnl.symbol_quote_ccy can be converted to it at both the start and the end of the business day;
- #position_pnl.symbol_quote_ccy - when a conversion rate is missing at either boundary; the fields above then equal the corresponding _quote_ccy fields;
- "N/A" - when the report is grouped and the grouped rows are in different currencies.
#position_pnl.realized_pnl Realized PnL - the realized profit or loss closed during the business day, expressed in the account's Default Account Currency.

Note:
#position_pnl.realized_pnl = #position_pnl.realized_pnl_quote_ccy * conversion_rate_from_quote_to_default_ccy_at_day_end.

Note: conversion_rate_from_quote_to_default_ccy_at_day_end is the last recorded mid conversion rate from the symbol Quote Currency to the Default Account Currency up to the end of the business day:
mid_rate = (filter.ask_close + filter.bid_close) / 2.
#position_pnl.unrealized_pnl Unrealized PnL - the unrealized profit or loss of the position at the end of the business day, expressed in the account's Default Account Currency.

Note:
#position_pnl.unrealized_pnl = #position_pnl.unrealized_pnl_quote_ccy * conversion_rate_from_quote_to_default_ccy_at_day_end.

Note: conversion_rate_from_quote_to_default_ccy_at_day_end is the last recorded mid conversion rate from the symbol Quote Currency to the Default Account Currency up to the end of the business day:
mid_rate = (filter.ask_close + filter.bid_close) / 2.
#position_pnl.unrealized_pnl_change Unrealized PnL Change - the change in the unrealized profit or loss of the position over the business day, expressed in the account's Default Account Currency.

Note:
#position_pnl.unrealized_pnl_change = #position_pnl.unrealized_pnl - unrealized_pnl_quote_ccy_at_day_start * conversion_rate_from_quote_to_default_ccy_at_day_start.
unrealized_pnl_quote_ccy_at_day_start - see #position_pnl.unrealized_pnl_change_quote_ccy.

Note: conversion_rate_from_quote_to_default_ccy_at_day_start and conversion_rate_from_quote_to_default_ccy_at_day_end are the last recorded mid conversion rates from the symbol Quote Currency to the Default Account Currency up to the start and up to the end of the business day:
mid_rate = (filter.ask_close + filter.bid_close) / 2.
#position_pnl.total_pnl Total PnL - the total daily profit or loss, including realized PnL and the change in unrealized PnL, expressed in the account's Default Account Currency.

Note:
#position_pnl.total_pnl = #position_pnl.realized_pnl + #position_pnl.unrealized_pnl_change.
#position_pnl.pos_pnl Position PnL (Overnight Carry) - the revaluation of the position already held at the start of the business day, expressed in the account's Default Account Currency.

Note:
#position_pnl.pos_pnl = #position_pnl.pos_pnl_quote_ccy * conversion_rate_from_quote_to_default_ccy_at_day_start.

Note: conversion_rate_from_quote_to_default_ccy_at_day_start is the last recorded mid conversion rate from the symbol Quote Currency to the Default Account Currency up to the start of the business day:
mid_rate = (filter.ask_close + filter.bid_close) / 2.
The change in the conversion rate during the day is included in #position_pnl.trading_pnl.
#position_pnl.trading_pnl Trading PnL - the part of the day's Total PnL attributable to that day's trading activity, excluding the overnight carry.

Note:
#position_pnl.trading_pnl = #position_pnl.total_pnl - #position_pnl.pos_pnl.
#position_pnl.volume Volume - the traded volume of the position over the business day, expressed in the account's Default Account Currency.

Note:
#position_pnl.volume = SUM of the absolute change in account_position.quote across the day's rows * conversion_rate_from_quote_to_default_ccy_at_day_end.
Only position changes caused by executed trades are included in this sum.

Note: if this sum is 0 for the day and mid_price_at_day_end is available:
#position_pnl.volume = SUM of the absolute change in account_position.base across all the day's rows * symbol.contract_size * mid_price_at_day_end * conversion_rate_from_quote_to_default_ccy_at_day_end.

Note: mid_price_at_day_end and conversion_rate_from_quote_to_default_ccy_at_day_end are the last recorded mid price of the symbol and the last recorded mid conversion rate from the symbol Quote Currency to the Default Account Currency up to the end of the business day:
mid_rate = (filter.ask_close + filter.bid_close) / 2.
#position_pnl.dpm PnL per Million (DPM) - the Total PnL per 1,000,000 of traded volume, both expressed in the account's Default Account Currency, making results comparable across different trading volumes.

Note:
#position_pnl.dpm = #position_pnl.total_pnl / #position_pnl.volume * 1,000,000.
Returns 0 when #position_pnl.volume is 0.
#filter.missing_conv_rate Conversion Rate Warning - indicates whether all required prices and conversion rates were available and correctly applied for calculations in this report row.

Note: available values are:
- "Conversion Error" - one or more required prices or conversion rates were missing or invalid, so one or more calculated values in this row are missing or inaccurate. This occurs when conversion rate calculations cannot be completed due to missing prices in the filter table.
- No value (Empty) - all required conversion rates were available, and all calculations in this report row were completed successfully.
#filter.has_conv_error Conversion Error Flag - a checkbox indicator of conversion rate issues in the report row, based on #filter.missing_conv_rate.

Note: available values are:
- Checked - corresponds to "Conversion Error" in #filter.missing_conv_rate;
- Empty - corresponds to no value in #filter.missing_conv_rate (no conversion issues).

Unlike #filter.missing_conv_rate, this field displays the result as a visual checkbox instead of a text value.

Grouping and Aggregation

Grouping and Aggregation are configured for each field on the Field Settings tab using the Column Type (column_type) option.

14 column types

Rule: Grouping combines multiple rows into one. For each unique value (or unique combination of values when multiple fields are used for grouping), the report returns exactly one row. Every other field in that row should either be a Grouping field or use one of the aggregation types below. Otherwise, only one value from the combined rows will be displayed and the remaining values will be ignored.

Date Grouping. For a date/time field set to Grouping field, Date Grouping picks how finely to group it: by Minute, Hour, or Day. Left unset, it groups by Day.

Column Type Purpose Formula / Behavior
N/A Keeps the original value from each row. No grouping or aggregation is applied. Displays the original field value.

Note: If other fields use Grouping, an N/A field shows only one value from the grouped rows. Use N/A only when all grouped rows are expected to have the same value.
Grouping field Combines rows with the same value into a single report row. One output row for each unique value (or unique combination of values when multiple grouping fields are used).
Aggregation MIN Returns the smallest value from the grouped rows. MIN(values)
Aggregation MAX Returns the largest value from the grouped rows. MAX(values)
Aggregation AVG Returns the arithmetic average of the grouped values. AVG(values)
Aggregation SUM Returns the total of all grouped values. SUM(values)
Aggregation COUNT Returns the number of grouped rows. COUNT(rows)
Aggregation VWA Volume-Weighted Average. Shows the average value weighted by deal size, so larger deals have a greater impact on the result than smaller ones. SUM(value * deal.size * order.factor) / SUM(deal.size * order.factor)
Aggregation VWAPMM Value per Million USD. Normalizes a value (for example, markup or slippage) to USD 1,000,000 traded, making results comparable across different trading volumes. 1,000,000 * SUM(value in USD) / SUM(traded volume in USD)
Aggregation Ratio Returns a percentage based on the grouped rows (for example, the percentage of trades that satisfy a condition). 100 * COUNT(matching rows)/ COUNT(all rows).
Aggregation Median Returns the typical middle value of the grouped values - half are higher, half are lower. Unlike AVG, a single extreme outlier does not pull this value up or down. Middle value of the sorted values
Aggregation PERCENTILE5 Returns a value near the low end of the grouped values, with only 5% of values falling below it. Useful for reading the low end of a spread of results without one extreme spike distorting the picture. 5th percentile of the sorted values
Aggregation PERCENTILE95 Returns a value near the high end of the grouped values, with only 5% of values falling above it. Useful for reading the high end of a spread of results without one extreme spike distorting the picture. 95th percentile of the sorted values
Aggregation Top 3 Counts how often each value occurs in the group, then returns the 3 most common ones together in one cell, most frequent first. Top 3 most frequent values, joined into one cell