{
  "reviewedAt": "2026-10-04",
  "method": "Primary-source documentation, vendor claims, release notes and clearly identified firsthand reports. Refresh settings, rendering throughput, feed latency, historical loading and order execution are different measures. No comparable cross-platform end-to-end benchmark was found; actual speed remains unscored.",
  "platforms": [
    {
      "id": "liquivue",
      "headline": "GPU rendering",
      "kind": "Architecture",
      "summary": "Liquivue documents WebGPU hardware acceleration for its browser chart and says the demo uses the same engine. Its help page recommends current Chrome or Edge and enabled graphics acceleration.",
      "caveat": "No numeric FPS, event-to-screen latency or controlled comparison was found in the reviewed sources. A recorded demo cannot establish live-feed latency. Historical loading and the NinjaTrader bridge introduce separate dependencies.",
      "references": [
        {
          "title": "Liquivue chart engine and browser requirements",
          "url": "https://liquivue.com/"
        },
        {
          "title": "Liquivue graphics, loading and bridge help",
          "url": "https://liquivue.com/help"
        }
      ]
    },
    {
      "id": "bookmap",
      "headline": "40 FPS default",
      "kind": "Refresh setting",
      "summary": "Bookmap documents a default chart refresh of 40 FPS, or 25 ms, with adjustable refresh and GPU acceleration. Under heavy load, automatic event aggregation helps avoid processing delays.",
      "caveat": "40 FPS is a configured refresh rate, not measured feed latency. Aggregation can reduce the accuracy of microstructure-dependent indicators such as Stops & Icebergs; performance depends on hardware and workload.",
      "references": [
        {
          "title": "Bookmap chart refresh documentation",
          "url": "https://bookmap.com/knowledgebase/docs/KB-SettingUpAndOperating-HeatmapSupportingFeatures",
          "date": "Updated 10 Aug 2026"
        },
        {
          "title": "Bookmap aggregation and heavy-load tradeoffs",
          "url": "https://bookmap.com/knowledgebase/docs/Addons-Stops-And-Icebergs-On-Chart-Indicator"
        }
      ]
    },
    {
      "id": "atas",
      "headline": "600+ FPS claimed",
      "kind": "Vendor claim",
      "summary": "ATAS advertises 600+ FPS for its GPU-rendered Heatmap on high-end GPUs. Its comparison article attributes the figures to internal testing. Settings include GPU selection and an automatic or manual FPS cap.",
      "caveat": "This is a Heatmap rendering claim, not an independently reproduced comparison or exchange-to-screen latency result. Hardware, edition and workspace matter; the figure does not describe every ATAS module.",
      "references": [
        {
          "title": "ATAS Heatmap performance claim",
          "url": "https://help.atas.net/en/support/solutions/articles/72000660059-heatmap"
        },
        {
          "title": "ATAS internal-test attribution and limitations",
          "url": "https://atas.net/blog/best-heatmap-trading-software-2026/"
        },
        {
          "title": "ATAS rendering settings",
          "url": "https://help.atas.net/en/support/solutions/articles/72000602625-common-settings"
        }
      ]
    },
    {
      "id": "sierra-chart",
      "headline": "Per-chart tuning",
      "kind": "Refresh controls",
      "summary": "Sierra Chart exposes per-chart and DOM update intervals. Its timer guide discusses 10–20 ms settings for a small number of priority charts, with slower updates for other windows.",
      "caveat": "These are tuning options, not achieved latency. The separate lag guide warns that globally aggressive intervals can saturate a CPU and increase delay; workload, timer mode, feed and network conditions matter.",
      "references": [
        {
          "title": "Sierra Chart update intervals and timer tuning",
          "url": "https://www.sierrachart.com/index.php?page=doc/GeneralSettings.html"
        },
        {
          "title": "Sierra Chart prices and data falling behind",
          "url": "https://www.sierrachart.com/index.php?page=doc/helpdetails4.html"
        }
      ]
    },
    {
      "id": "jigsaw",
      "headline": "Event-driven DOM",
      "kind": "Vendor description",
      "summary": "Jigsaw describes updates to changed DOM cells as events arrive, with throttling for overloads. Its platform manual also exposes a depth throttle; a value of 50 dispatches pending depth updates 20 times per second, plus inside-market changes.",
      "caveat": "The blog and manual describe different update layers and do not establish a single measured latency. Hardware, load and throttle settings affect results; the vendor’s qualitative speed comparisons are not controlled benchmarks.",
      "references": [
        {
          "title": "Jigsaw event-driven display explanation",
          "url": "https://www.jigsawtrading.com/blog/jigsaw-daytradr-refresh-rate-faster-than-the-human-eye/",
          "date": "28 May 2024"
        },
        {
          "title": "Jigsaw performance and depth-throttle options",
          "url": "https://daytradr.jigsawtrading.com/platform-options.html"
        },
        {
          "title": "Jigsaw Depth & Sales display parameters",
          "url": "https://daytradr.jigsawtrading.com/dsparam.html"
        }
      ]
    },
    {
      "id": "quantower",
      "headline": "50 ms DOM setting",
      "kind": "Recommended setting",
      "summary": "Quantower recommends a 50 ms DOM processing interval. Its settings documentation describes value 1 as processing all Level 2 changes immediately. Data-delay warnings help identify lagging server timestamps.",
      "caveat": "The interval is a control, not a measured end-to-end latency or execution result. Provider timestamps, network quality, panel count and volume-analysis workload can affect delays.",
      "references": [
        {
          "title": "Quantower DOM Trader view settings",
          "url": "https://help.quantower.com/quantower/trading-panels/dom-trader/dom-trader-settings/view-settings"
        },
        {
          "title": "Quantower data latency troubleshooting",
          "url": "https://help.quantower.com/quantower/faq/general-errors"
        }
      ]
    },
    {
      "id": "ninjatrader",
      "headline": "50 ms price marker",
      "kind": "Version-specific",
      "summary": "NinjaTrader 8.1.7.0 changed the last-price marker update from 250 ms to 50 ms. Its general rendering API documentation still describes a 250 ms ChartControl timer.",
      "caveat": "The release notes explicitly say the marker change does not change overall chart performance. Neither timer measures feed processing or order execution; Volumetric studies can add workload.",
      "references": [
        {
          "title": "NinjaTrader 8.1.7 release notes",
          "url": "https://static.ninjatrader.com/support/helpGuides/nt8/8_1_7.htm",
          "date": "13 May 2026"
        },
        {
          "title": "NinjaTrader chart rendering schedule",
          "url": "https://static.ninjatrader.com/support/helpGuides/nt8/forcerefresh.htm"
        },
        {
          "title": "NinjaTrader support on Volumetric CPU demand",
          "url": "https://forum.ninjatrader.com/forum/ninjatrader-8/platform-technical-support-aa/1139681-cpu",
          "date": "3 Feb 2021"
        }
      ]
    },
    {
      "id": "motivewave",
      "headline": "100 ms DOM default",
      "kind": "Refresh setting",
      "summary": "MotiveWave’s DOM documentation gives a default bid/ask quantity update threshold of 100 ms, configurable by the user.",
      "caveat": "This is a display threshold, not a feed or execution-latency benchmark. Historical loading, studies, open workspaces and tick-history settings can affect responsiveness.",
      "report": "A July 2025 V7-beta user reported lower CPU load after reducing live tick history. This is one configuration-specific report, not evidence that current versions generally lag.",
      "references": [
        {
          "title": "MotiveWave DOM update threshold",
          "url": "https://docs.motivewave.com/user-guide/depth-of-market"
        },
        {
          "title": "Firsthand V7-beta performance report",
          "url": "https://forum.motivewave.com/threads/suggestions-to-address-slow-glitchy-v7-motivewave-performance.2854/",
          "date": "22 Jul 2025"
        },
        {
          "title": "Vendor explanation of historical chart loading",
          "url": "https://forum.motivewave.com/threads/how-to-load-charts-faster.354/",
          "date": "14 Jul 2020"
        }
      ]
    },
    {
      "id": "exocharts",
      "headline": "~60 FPS Desktop",
      "kind": "Vendor claim",
      "summary": "Exocharts’ FAQ claims approximately 60 FPS for Desktop with large chart workloads. It separately describes much lower cluster capacity for Web. The Desktop requirements document GPU rendering and memory-sensitive history storage.",
      "caveat": "The FAQ does not specify benchmark hardware or a reproducible workload. Desktop figures must not be applied to Web. A 2026 release-note claim about a 100 ms connection data gap describes continuity, not exchange-to-screen latency.",
      "references": [
        {
          "title": "Exocharts Desktop and Web performance FAQ",
          "url": "https://exocharts.com/faq.html"
        },
        {
          "title": "Exocharts Desktop release notes",
          "url": "https://help.exocharts.com/hc/en-us/articles/5760224909201-Desktop-release-notes",
          "date": "3.7.0: 4 Jun 2026"
        },
        {
          "title": "Exocharts GPU and history requirements",
          "url": "https://help.exocharts.com/hc/en-us/articles/4406161693841-Desktop-system-requirements"
        }
      ]
    },
    {
      "id": "gocharting",
      "headline": "Adjustable updates",
      "kind": "Refresh controls",
      "summary": "GoCharting documents configurable data-update intervals and warns that requesting updates faster than a computer can process them may cause lag.",
      "caveat": "No numeric rendering or end-to-end latency benchmark was found. Its published script execution limits are resource ceilings, not speed measurements.",
      "report": "A dated user data-lag complaint and a 2026 vendor reply discuss browser, network, instrument and feed-entitlement factors. They do not establish a current product-wide lag rate.",
      "references": [
        {
          "title": "GoCharting chart settings and update intervals",
          "url": "https://gocharting.com/docs/general-settings/gc-chart-settings"
        },
        {
          "title": "GoCharting script resource limits",
          "url": "https://docs.gocharting.com/docs/scripting/writing-scripts/limitations"
        },
        {
          "title": "Firsthand reviews and GoCharting replies",
          "url": "https://au.trustpilot.com/review/www.gocharting.com",
          "date": "Complaint: 11 Apr 2024; reply: 21 May 2026"
        }
      ]
    },
    {
      "id": "investor-rt",
      "headline": "Timing diagnostics",
      "kind": "Workload controls",
      "summary": "Investor/RT exposes per-indicator calculation timing and adjustable chart or quote-page update settings. Linnsoft’s efficiency guide explains how to find studies that consume excessive processing time.",
      "caveat": "Calculation-time examples and selectable refresh intervals are not platform-wide latency measurements. No current controlled comparison was found.",
      "report": "A 2019 high-volume lag thread and 2023 follow-up describe particular workspaces and indicator loads. Their age and differing setups prevent a present-day speed ranking.",
      "references": [
        {
          "title": "Linnsoft efficiency and calculation diagnostics",
          "url": "https://www.linnsoft.com/articles/tips-efficient-investorrt"
        },
        {
          "title": "Historical lag report and vendor troubleshooting",
          "url": "https://www.linnsoft.com/topic/severe-lagging-during-high-volume-trade-activity",
          "date": "2019; follow-up 2023"
        }
      ]
    },
    {
      "id": "tensorcharts",
      "headline": "0.8 s chart updates",
      "kind": "Premium plan cadence",
      "summary": "The live pricing page lists Premium chart updates at 0.8 seconds and trade updates at 0.1 seconds. Free lists 10 seconds and 0.7 seconds; Team lists 0.8 seconds and 0.7 seconds, respectively.",
      "caveat": "These are published plan update intervals, not rendering FPS or measured total data latency. The cost comparison uses Premium; Free and Team have different trade-update cadences.",
      "references": [
        {
          "title": "TensorCharts live pricing and update rates",
          "url": "https://tensorcharts.com/pricing",
          "date": "Live plan selectors checked 4 Oct 2026"
        }
      ]
    }
  ]
}