Risk, data & privacy
Plain statements about what Tape Lab is, where its numbers come from, and what happens to anything you type into it. Nothing here is a substitute for reading it once.
1. What Tape Lab is
A browser application that replays historical and generated market data bar by bar, lets you place simulated orders against it, and scores how you did. It runs entirely on your own machine, in your own browser tab.
- No broker connection. There is no brokerage integration anywhere in this software. It cannot place a real order, and it never asks for an account, a key, or a password.
- No live market data. Every price you see is either a recording that has already happened or data generated in your browser. No feed is subscribed to, and no live quote is fetched.
- Simulated fills. Orders are matched against a documented candle-based model with an explicit intrabar-ambiguity rule. A simulated fill is not a fill. Real fills differ — in price, in size, and in whether they happen at all.
Slippage, commissions, partial fills, requotes, outages, exchange halts and the psychological weight of real money are all approximated or absent. Results that look achievable here are not evidence that they are achievable in a live account.
2. Where the data comes from
Tape Lab ships several datasets. They are not the same kind of thing, and they are labelled differently throughout the app.
2.1 Terminal sessions (NQ / ES)
The sessions bundled with the terminal are a seeded random walk generated in your browser. They are not recorded market history and are not licensed from any data vendor. They are labelled demo data everywhere they appear. Importing your own 5-minute OHLCV CSV replaces them; a CSV you supply remains subject to the terms of whoever gave it to you.
These datasets contain OHLCV bars only — no Time & Sales, no bid/ask, and no Level-2 depth. Nothing in Tape Lab claims otherwise.
2.2 Flow Lab replays
Flow Lab is a separate case: it replays genuine recorded venue data, alongside one synthetic option for practice. Each source is labelled in the app.
| Source | What it is | Kind |
|---|---|---|
| Synthetic Practice Scenario | Generated practice patterns (Spring, Upthrust, Absorption, …) with a known answer. | Synthetic |
| Binance Spot BTCUSDT | Public REST snapshot plus WebSocket diff-depth and trade streams, recorded from Binance's public endpoints. | Recorded |
| Binance Historical aggTrades | Trade prints only, from Binance's public historical data archive. No Level-2 depth. | Recorded |
These recordings are bundled with the application so the order-flow experience works without a data subscription. Being bundled, they are downloaded to your browser as part of the page itself — so they arrive on your machine whether or not you open Flow Lab. They are included for individual educational use, and they are not licensed to you for redistribution, for resale, for rebuilding a historical database, or for any commercial market-data purpose. Binance's own terms govern that data and take precedence over anything stated here.
A CME Globex capture recorded through a Databento subscription is not included in the application. It exists only as a small test fixture in the repository's source, so that the vendor adapter can be verified locally. It is never served to a visitor and forms no part of what you download by using this site.
If you are a rights holder and want a recording removed, open an issue on the repository and it will be removed.
3. Privacy
There is no server, no account, and no analytics. Tape Lab is a static site. It has no backend, no login, no cookies, and no tracking scripts, advertising pixels or third-party analytics of any kind.
Everything you create stays in your browser:
- IndexedDB — imported CSV datasets and their session indexes.
- localStorage — your settings (contract, timezone, indicator periods and colours, opening range, starting balance and risk limits); the trade journal for the session you were on, meaning every simulated trade and the notes you wrote on it, restored when you load that session again; and one flag recording that you dismissed the first-run note.
None of it is transmitted anywhere. Clearing site data in your browser erases all of it, and there is no copy on our side to restore — so export anything you want to keep.
What a reload does not bring back: the replay position, your working orders, and the rule violations and blind-mode predictions that also feed the replay score. The performance figures are recomputed from the restored trades. Starting a session over clears that session's journal, as it always has.
Two exceptions worth stating plainly. The page loads web fonts from Google Fonts, which means Google sees the request your browser makes for them. And the static host serving this site (Vercel) keeps ordinary web-server request logs, as every web host does. Neither is under this project's control, and neither is used by this project to identify anyone.
4. Terms of use
You may use Tape Lab for your own education. You get it as-is, with no warranty of any kind and no guarantee that it is correct, complete, uninterrupted or fit for any purpose.
To the fullest extent permitted by law, the author accepts no liability for any loss — including trading losses — arising from your use of this software or from reliance on anything it displays.
This is a personal educational project, not a regulated financial service. It is not registered with, authorised by, or supervised by any financial regulator anywhere.
5. Licence
Copyright © 2026 Pavan Arya. All rights reserved. The source code in this repository is published publicly for transparency and reference. It is not released under an open-source licence, and no right to copy, modify, redistribute or reuse it is granted by its public availability. See the LICENSE file in the repository root.
The application bundle contains third-party code under its own licences — MIT and Apache-2.0 — and requests three typefaces under the SIL Open Font License. Those notices are reproduced in the THIRD-PARTY-NOTICES.md file in the repository root.
6. Contact
Questions, corrections and removal requests: open an issue on the GitHub repository.