{
  "version": "2026-10-17.1",
  "checked": "2026-10-17",
  "scope": "Eight selected paper/demo/replay workflows, not a universal ranking or authenticated broker test.",
  "tools": [
    {
      "id": "alpaca",
      "name": "Alpaca",
      "mode": "Live-market simulation",
      "access": "Paper-only account available; email signup; data tier limits apply.",
      "paperAPI": true,
      "data": "Paper-only entitlement uses IEX data; quote source and fill reference are distinct.",
      "summary": "An API-oriented paper environment for testing order submission and account workflows without sending orders to a live exchange.",
      "limits": "Paper fills omit several real-market effects, including market impact, latency slippage and queue priority. Quantity is not constrained by displayed NBBO size. Do not infer paper-only access establishes live brokerage eligibility.",
      "verificationTask": "Use separate paper credentials and endpoint. Test cancellation, an unmarketable limit and a missing quote; record data entitlement and compare the returned fill ledger.",
      "sources": [
        "alpaca"
      ]
    },
    {
      "id": "tradingview",
      "name": "TradingView",
      "mode": "Live-market simulation",
      "access": "Paper Trading available to users globally; chart and exchange data entitlements are separate.",
      "paperAPI": null,
      "data": "Chart symbols and exchange feeds depend on the selected data entitlement.",
      "summary": "A chart-based paper account for practicing orders and reviewing positions alongside the platform interface.",
      "limits": "The paper account is different from Bar Replay and Strategy Tester. Symbol availability does not establish every exchange feed is real time or that simulated queue priority matches live trading.",
      "verificationTask": "Confirm the Paper Trading connection, symbol feed status, quantity units and commission settings. Export or record the same simple example before comparing it with another simulator.",
      "sources": [
        "tv"
      ]
    },
    {
      "id": "interactive-brokers",
      "name": "Interactive Brokers",
      "mode": "Broker demo",
      "access": "Paper account linked to client setup and permissions; market-data subscriptions and account settings matter.",
      "paperAPI": true,
      "data": "Permissions, subscriptions and base currency reflect the associated regular-account configuration.",
      "summary": "A broker-linked paper environment accessible through supported IBKR platforms and APIs.",
      "limits": "Top-of-book simulation has no deep-book execution. Some order types, mutual funds and combo behavior differ from production; platform access does not imply all instruments or data are entitled.",
      "verificationTask": "Check paper rather than live login, permissions and subscribed feed. Review complex-order and partial-fill limitations before testing an automated workflow.",
      "sources": [
        "ibkr"
      ]
    },
    {
      "id": "thinkorswim",
      "name": "thinkorswim paperMoney",
      "mode": "Broker demo",
      "access": "Schwab clients have ongoing access; nonclient Guest Pass is limited to 30 days and cannot be extended.",
      "paperAPI": null,
      "data": "Provider describes simulated real-time market data; selected guest/client setup still needs confirmation.",
      "summary": "A simulated trading environment inside thinkorswim for practicing its order-entry and analysis tools.",
      "limits": "A30-day Guest Pass is not permanent free access. Guest credentials and saved settings expire and do not migrate into a new Schwab client login. Live account eligibility and permissions remain separate.",
      "verificationTask": "Choose guest versus client access, record the expiration date and preserve a copy of your exercise. Check the current instrument and data configuration inside paperMoney.",
      "sources": [
        "schwab"
      ]
    },
    {
      "id": "webull",
      "name": "Webull paperTrade",
      "mode": "Live-market simulation",
      "access": "New versus legacy paper environment and client/platform availability must be checked.",
      "paperAPI": null,
      "data": "Current new system is documented for mobile and desktop; web retains the legacy workflow.",
      "summary": "A multi-asset practice environment with distinct new and legacy implementations.",
      "limits": "The current help page distinguishes order types and option strategy support by system generation. Do not apply the new mobile/desktop feature list to legacy web, or a live Trading API feature to a paper API.",
      "verificationTask": "Record new or legacy mode and platform version. Test an order modification and the intended option strategy in that exact environment; do not assume live and paper lifecycle equivalence.",
      "sources": [
        "webull"
      ]
    },
    {
      "id": "ninjatrader",
      "name": "NinjaTrader8",
      "mode": "Historical replay",
      "access": "Desktop simulation; market-data connection, replay files and licence/account terms are separate.",
      "paperAPI": null,
      "data": "Playback uses downloaded/recorded replay data or historical tick data depending on configuration.",
      "summary": "A desktop simulated-order workflow that can operate with historical playback rather than only current market prices.",
      "limits": "Sim101 and playback account behavior differ. Historical replay is not proof of a free live exchange data entitlement. Downloaded history depth and simulation settings affect repeatability.",
      "verificationTask": "Record playback versus Sim101 mode, data type, speed, commission template and starting balance. Run a single order twice on the same recording to inspect fill assumptions.",
      "sources": [
        "ninja",
        "ninja-play"
      ]
    },
    {
      "id": "metatrader5",
      "name": "MetaTrader5 demo",
      "mode": "Broker demo",
      "access": "Demo setup uses a selected broker/server; symbols, expiry and specifications are broker-dependent.",
      "paperAPI": null,
      "data": "Broker demo quotes and contract specifications; not a universal exchange data package.",
      "summary": "A broker-server demo account for learning terminal order entry and testing an account workflow.",
      "limits": "A demo account is different from the Strategy Tester. Account type, contract multiplier, margin and history vary by broker; no shared expiry or data-quality promise applies to all servers.",
      "verificationTask": "Check demo rather than real account, server, symbol contract size, spread, commission and expiry. Retain a terminal statement for one closed trade.",
      "sources": [
        "mt5"
      ]
    },
    {
      "id": "forex-tester-online",
      "name": "ForexTester Online",
      "mode": "Historical replay",
      "access": "Selected browser replay product; current package, trial and historical-data limits require checkout verification.",
      "paperAPI": null,
      "data": "Historical replay supplied under the selected package; depth and symbol scope vary.",
      "summary": "A historical practice workflow for stepping through supplied past-market data and reviewing discretionary decisions.",
      "limits": "Online and desktop are different products. We do not assert a current exact subscription price or perpetual free tier, and replay results cannot establish live fills or strategy profitability.",
      "verificationTask": "Verify product edition and available dates, then replay a predefined interval with fixed rules and costs. Record whether you had already inspected the future data.",
      "sources": [
        "ft"
      ]
    }
  ],
  "sources": {
    "alpaca": {
      "title": "Alpaca paper environment and fill limitations",
      "url": "https://docs.alpaca.markets/us/docs/paper-trading",
      "checked": "2026-10-17",
      "snapshot": "source-snapshots/alpaca.html"
    },
    "tv": {
      "title": "TradingView paper account functionality",
      "url": "https://www.tradingview.com/support/solutions/43000516466-paper-trading-main-functionality/",
      "checked": "2026-10-17",
      "snapshot": "source-snapshots/tv.html"
    },
    "ibkr": {
      "title": "IBKR paper account, API and simulator limitations",
      "url": "https://www.interactivebrokers.com/campus/glossary-terms/paper-trading-account/",
      "checked": "2026-10-17",
      "snapshot": "source-snapshots/ibkr.html"
    },
    "schwab": {
      "title": "Schwab paperMoney and guest-pass access",
      "url": "https://www.schwab.com/trading/thinkorswim/guestpass",
      "checked": "2026-10-17",
      "snapshot": "source-snapshots/schwab.html"
    },
    "webull": {
      "title": "Webull new and legacy paper systems",
      "url": "https://www.webull.com/help/faq/11069-Paper-Trading",
      "checked": "2026-10-17",
      "snapshot": "source-snapshots/webull.html"
    },
    "ninja": {
      "title": "NinjaTrader8 simulator",
      "url": "https://static.ninjatrader.com/support/helpGuides/nt8/simulation.htm",
      "checked": "2026-10-17",
      "snapshot": "source-snapshots/ninja.html"
    },
    "ninja-play": {
      "title": "NinjaTrader8 playback",
      "url": "https://static.ninjatrader.com/support/helpGuides/nt8/playback.htm",
      "checked": "2026-10-17",
      "snapshot": "source-snapshots/ninja-play.html"
    },
    "mt5": {
      "title": "MetaTrader5 demo accounts",
      "url": "https://www.metatrader5.com/en/terminal/help/startworking/acc_open",
      "checked": "2026-10-17",
      "snapshot": "source-snapshots/mt5.html"
    },
    "ft": {
      "title": "ForexTester Online replay workflow",
      "url": "https://forextester.com/",
      "checked": "2026-10-17",
      "snapshot": "source-snapshots/ft.browser-note.txt",
      "access": "web-retrieved; direct urllib blocked"
    }
  }
}