portfolIQ
Documentation

Methodology & disclaimers

Published methodology for VWAP consensus, AI analysis, and on-chain metrics.

Methodology & disclaimers

portfolIQ publishes its data methodology in git-versioned documents. Every production run is preceded by a methodology tag — this is required for MAR (Market Abuse Regulation) compliance on derived price data.

VWAP consensus methodology

Document: methodology/vwap-consensus-v1.2.md Git tag: methodology-vwap-v1.2

Summary of the formula:

  1. Exchange basket: Binance, Kraken, Coinbase Exchange, Bybit, KuCoin, Gate.io (public endpoints, no auth key required).
  2. Outlier exclusion: exchanges with a price deviation > 3/5/7% from the median (by tier) are excluded from the VWAP calculation.
  3. Volume cap (dominant exclusion): no single exchange may represent more than 50% of the total volume weight. An exchange whose raw weight exceeds the cap is excluded, then weights are renormalised.
  4. Minimum exchanges: if fewer than 3 exchanges remain after exclusions, no VWAP is published for that asset in that window.

The max_source_weight_pct field in the response payload provides auditable proof that the 50% cap was applied.

Stablecoin quote-inversion (v1.2)

Some stablecoins (e.g. USDT) are quote currencies on most venues, so they rarely appear as a base pair. To publish a measured price (never an assumed $1 peg), portfolIQ derives their price from inverse pairs:

  • Direct flux: USDT/USD where it exists (Kraken, Coinbase).
  • Inverse flux: USDC/USDT and DAI/USDTprice(USDT/USD) = (1 / close(USDC/USDT)) × consensus(USDC/USD), where the anchor USDC/USD is itself a directly fiat-quoted consensus.

Anti-circularity is guaranteed by configuration: a stablecoin is either a direct fiat pivot (USDC) or derived (USDT), never both. Each intermediate consensus must satisfy the ≥3-exchange rule. The outlier-deviation skip is disabled for stablecoins (a real depeg must surface, not be filtered). Derived prices carry an explicit price_derivation field (direct / inverse_pair) and confidence_flags (derived_inverse_pair, derived_2nd_degree, depeg_suspected); a price sourced 100% from 2nd-degree inversion is capped at medium confidence.

OHLC consensus, daily (ohlcv-consensus-v1.0)

Daily OHLC candles served by /v1/assets/{id}/ohlcv are a multi-exchange consensus over the same filtered basket as the VWAP (post outlier-exclusion, post dominant-exclusion, ≥3 exchanges):

  • open = volume-weighted average of opens · close = volume-weighted average of closes
  • high = max of highs · low = min of lows — over the filtered basket only (never the raw feed)

No per-exchange price or name is exposed; exchanges_count is published for MAR verifiability. Candles for the current (not-yet-closed) day fall back to close-only (ohlc_source='vwap_close_only', O/H/L null).

On-chain metrics — BTC

Document: methodology/onchain-realized-metrics-v1.0.md Git tag: methodology-onchain-btc-v1.0

BTC on-chain metrics are derived from bigquery-public-data.crypto_bitcoin (Google BigQuery public dataset, MIT licence). Metrics computed:

  • Realized Cap — sum of UTXOs valued at price at time of last movement
  • MVRV — Market Value to Realized Value ratio
  • SOPR — Spent Output Profit Ratio
  • NUPL — Net Unrealized Profit/Loss
  • HODL waves — UTXO age distribution

maximum_bytes_billed is enforced on every BigQuery query to prevent runaway costs.

Active addresses for BTC: approximated from utxoSetChange (proxy — documented limitation).

On-chain metrics — ETH

ETH metrics are sourced from ethereum.publicnode.com (public RPC, no API key required):

  • eth_tx_count_24h — proxy computed from block transaction count × estimated blocks/day
  • eth_avg_gas_price_gwei — base fee from the latest block
  • eth_gas_utilization_pctgas_used / gas_limit of the latest block (%)

These are approximations documented as such. No Etherscan API is used (confirmed NO-GO, COMITE-001/006/008).

AI analyses

  • Prompts are versioned in prompts/registry.yml (git-controlled).
  • Every analysis payload includes prompt_version and model fields.
  • 13 prescriptive patterns banned (see The AI layer).
  • Analyses are append-only — never overwritten.

Global disclaimer

Not financial advice. Not a fatwa. Methodology disclosed.

Data provided by portfolIQ is factual and descriptive. It does not constitute financial advice, investment recommendations, or any form of guidance on buying, selling, or holding any financial instrument.

portfolIQ is not a registered investment advisor. portfolIQ is not subject to MiFID II investment advice regulations. All data is provided for informational and research purposes only.

"Not financial advice. Not a fatwa. Methodology disclosed. Data provided for informational purposes only. portfolIQ is not a registered investment advisor."