spotmarketroom.online / FIELD NOTES
Singapore-time aggregate records · Practical reference

Base Volume and Quote Turnover: Audit the Same Trading Window

A two-record unit/window audit, implied average price, exact estimate gap, UTC/SGT bounds and local reproducible CSV.

Publisher: CRYPTO TRADING SIGNALSSource review: 2026-10-20Free to use · No sign-up

Audit two normalized spot aggregates

  1. Defaults are hypothetical records, not current quotes or evidence of activity on any venue.
  2. Declare the base and quote units and confirm the spot-field mapping. This worksheet does not map derivative volume fields.
  3. Enter nonnegative plain decimals, at most 12 fractional digits and no more than 1,000,000,000,000,000. Optional last price must be positive.
  4. Use exact UTC start/end instants, the source boundary convention and complete/partial/unknown coverage. Do not declare a still-open interval complete.
  5. The implied average is rounded half up to at most eight decimal places; products and estimate gaps are exact decimal strings.
  6. Only input arithmetic runs locally. No venue, account or price feed is queried.

This tool uses the inputs you provide. It does not fetch live market or account data.

Two totals can describe the same trades

A volume number is incomplete without a unit and a time window. Twelve units of a base asset and 360,000 units of its quote asset can describe the same set of trades. They answer different questions: how much base quantity changed hands, and how much quote value those trades represented.

This resource keeps both quantities visible. It compares two supplied spot aggregates only after checking their declared units and boundaries, then separates reported turnover from a last-price approximation. The result is a small evidence record you can keep with an export. It is not a ranking of venues, a liquidity forecast or a trade recommendation.

Define base volume and quote turnover before calculating

For this worksheet, base volume B is the sum of traded base quantities. Quote turnover Q is the sum of each trade price multiplied by its base quantity. Price therefore has units of quote per base. If all entered quantities and prices belong to the same trade set, Q divided by B is the quantity-weighted average price for that set.

Binance Spot documentation illustrates the distinction: its rolling-window response describes quoteVolume as the sum of price times volume and weightedAvgPrice as QuoteVolume divided by Volume. Its candle response also separates volume, quote-asset volume and trade count. Those are documented field definitions, not live data retrieved by this page.

Sources: Binance Spot REST API — Market data definitions.

A familiar field name does not establish its unit

First establish the product and field mapping from the actual source specification. Bybit’s kline documentation, for example, assigns different volume and turnover units to linear and inverse contracts. Its default product category is linear when category is omitted. That is why this worksheet requires explicitly normalized spot base and quote inputs rather than guessing from the word volume.

Use a meaningful label for each saved aggregate, and keep the original file or response elsewhere. The BTC and USDT labels in the worked example are hypothetical unit labels; USDT is not silently converted to USD or SGD. Changing a quote currency changes the meaning of the total. The tool stops cross-record comparison when the labels differ, even if the two numbers happen to match.

Sources: Bybit V5 — Get Kline.

Last price times volume is an estimate with a different construction

Multiplying all base volume by one final price treats every unit as though it traded at that price. Reported turnover instead accumulates each trade at its own price. The two expressions need not agree. Their difference can be positive or negative, and a zero difference alone cannot prove that every trade occurred at the last price.

Keep the reported quantity Q intact and call B multiplied by last price an estimate. This worksheet displays estimate minus reported turnover as a separate signed number. It never overwrites Q with that estimate. If last price is unavailable, both estimate fields remain unknown while the reported-aggregate calculation can still be useful.

Worked example: two hypothetical records

Both examples use the same declared BTC/USDT spot units and the same completed synthetic interval. Record A contains 12 base units and 360,000 quote units; its implied average is 30,000 quote units per base. Record B contains 8 base units and 244,000 quote units; its implied average is 30,500. No real venue or trade is represented.

Give both records an illustrative last price of 31,000. Record A then produces an estimate of 372,000, exceeding reported turnover by 12,000. Record B produces 248,000, exceeding reported turnover by 4,000. Comparing those construction gaps does not identify misreporting: trade-level evidence would be needed to investigate a source discrepancy.

MeasureDEMO ADEMO B
Base volume B12 BTC8 BTC
Reported quote turnover Q360000 USDT244000 USDT
Implied average Q/B30000 USDT/BTC30500 USDT/BTC
Entered last price31000 USDT/BTC31000 USDT/BTC
Estimate B × last price372000 USDT248000 USDT
Estimate − reported Q+12000 USDT+4000 USDT

Compare actual windows, not a label such as one day

Two aggregates with the same duration can cover different trades. A calendar day, a completed candle and a rolling window are not interchangeable names. Read the actual start and end instants and preserve whether the closing endpoint is included. This tool requires matching boundary conventions as well as matching timestamps.

Binance documents a specific rolling-window endpoint whose start is aligned to a minute while its end is the current time; the actual interval can exceed the requested length by up to 59,999 milliseconds. That rule belongs to that endpoint. The practical lesson is to preserve actual bounds instead of treating every one-day request as a calendar day.

Sources: Binance Spot REST API — Market data definitions.

Name the Singapore calendar interval explicitly

The synthetic half-open interval starts at 2026-10-19 16:00 UTC and ends at 2026-10-20 16:00 UTC. In Singapore’s +08:00 representation it runs from 20 October at 00:00 to 21 October at 00:00. Under the stated start-inclusive, end-exclusive convention, that is the 20 October Singapore calendar day.

A UTC midnight-to-midnight record instead runs from 08:00 to the next 08:00 in Singapore. Relabelling its date does not turn it into the same local-day aggregate. This worksheet displays both representations but does not resample trades, rebuild candles or infer an exchange session. The local context helps preserve the intended reporting day without changing the underlying record.

Hypothetical intervalUTC boundsSingapore bounds
20 October SGT day, half-open19 Oct 16:00 → 20 Oct 16:0020 Oct 00:00 → 21 Oct 00:00
20 October UTC day, half-open20 Oct 00:00 → 21 Oct 00:0020 Oct 08:00 → 21 Oct 08:00
ComparisonDifferent instantsKeep separate

Sources: Singapore BCA — Site Management Data Standards v1.1, page65.

Zero activity, missing data and partial coverage differ

An explicit pair of zero base volume and zero quote turnover means zero reported activity in this model. The implied average is undefined, not zero. One zero aggregate beside a positive other aggregate is inconsistent with the positive-price spot interpretation and is rejected. A blank numeric field is not converted to zero.

An unknown boundary convention, unknown window type or partial/unknown coverage keeps the records separate. Even two records marked complete are only aligned according to your supplied metadata; that label does not authenticate a source. Do not mark an interval complete merely because its planned ending time has passed. Completion is evidence about the dataset, not the clock.

Keep enough detail to reproduce the result

The local CSV includes both operands, optional last price, UTC and Singapore bounds, units, coverage and comparison reasons. Decimal inputs use integer coefficients; multiplication and subtraction preserve their exact result. Only the implied-average division is rounded, half up to at most eight decimal places. The rounding convention is included in the export.

User-entered labels beginning like spreadsheet formulas are prefixed with an apostrophe in the CSV. Numeric result strings remain numeric-looking text. Keep the original source data with this report and review definitions when a provider changes its schema. The optional Telegram offer is separate; the complete audit is available here without joining it.

Worked examples

Example 1

All values and timestamps are synthetic.

Inspect example inputs and expected results
{
  "records": [
    {
      "label": "DEMO A",
      "base_unit": "BTC",
      "quote_unit": "USDT",
      "normalized_spot_units": true,
      "base_volume": "12",
      "quote_turnover": "360000",
      "last_price": "31000",
      "start_utc": "2026-10-19T16:00:00Z",
      "end_utc": "2026-10-20T16:00:00Z",
      "window_kind": "fixed_interval",
      "boundary": "start_inclusive_end_exclusive",
      "coverage": "complete"
    },
    {
      "label": "DEMO B",
      "base_unit": "BTC",
      "quote_unit": "USDT",
      "normalized_spot_units": true,
      "base_volume": "8",
      "quote_turnover": "244000",
      "last_price": "31000",
      "start_utc": "2026-10-19T16:00:00Z",
      "end_utc": "2026-10-20T16:00:00Z",
      "window_kind": "fixed_interval",
      "boundary": "start_inclusive_end_exclusive",
      "coverage": "complete"
    }
  ]
}

Expected result

{
  "status": "ok",
  "comparison_status": "metadata_aligned",
  "a_implied_average": "30000",
  "b_implied_average": "30500",
  "a_last_price_estimate": "372000",
  "a_estimate_minus_reported": "12000",
  "b_estimate_minus_reported": "4000",
  "a_start_sgt": "2026-10-20T00:00:00.000+08:00"
}

Example 2

No implicit stablecoin or fiat conversion.

Inspect example inputs and expected results
{}

Expected result

{
  "comparison_status": "not_comparable",
  "reason": "quote_unit_mismatch"
}

Questions about the method

Is this an order-book VWAP or fill simulator?

No. It divides reported historical quote turnover by reported base volume. It does not inspect available orders or estimate a future fill.

Can I add two venue totals to get total market volume?

This tool does not produce a combined market total. Matching metadata does not verify coverage, reporting quality or duplicate economic activity.

Does an SGT display prove the source used a Singapore trading day?

No. It converts the entered instant for inspection. You must preserve the source window and boundary convention.

Primary sources and scope

  1. Binance Spot REST API — Market data definitionsChecked 2026-10-20. Distinct volume, quoteVolume and weightedAvgPrice definitions; actual rolling-window bounds.
  2. Bybit V5 — Get KlineChecked 2026-10-20. Linear and inverse contract fields have different units; omitted category defaults to linear. Used as a mapping caution, not a spot-unit assertion.
  3. Singapore BCA — Site Management Data Standards v1.1, page65Checked 2026-10-20. Official timestamp example identifies +08:00 as Singapore Standard Time; no financial-market rule inferred.

Examples explain a method. They do not predict prices or establish where a trading service is available. Check the named source before relying on future schedules.