Docs and this page
Docs / LAB
LAB guide
Describe an idea in plain words, read an honest verdict on every finished session, and keep the rules you trust drawing on your chart.
LAB credits: developing an idea is free, a backtest or an optimize pass is one credit, the desk is free once an idea is tested. LIVE includes 5 credits a month. The LAB product page · Markdown copy
Why it matters
Patterns on the tape are easy to see and hard to trust. LAB answers one question: does this rule beat its own core condition, after a cost, out of sample?
What LAB scores is directional: a rule names the way its trade profits, and the backtest measures whether that move arrives. That does not contradict the rest of the terminal, which asserts no direction: LAB is where a directional idea goes to be measured instead of believed, and that is usually where it stops.
The path has four steps: an idea in plain words, a backtest against an honest baseline, a quant optimize pass, and the desk, where a rule you keep draws on the chart and alerts with the same formula the backtest scored.
Every column a rule names is a measurement already in the archive: the session clock, the price and its distances, the levels of each book, the flow, volatility, the calendar and the minutes the tape marked.
Where to find it
Press LAB in the terminal's top bar; the LAB desk opens beside the chart. The reference pages are /lab/vocabulary and /docs/developers/lab.
| You want | Go to |
|---|---|
| Test an idea | LAB, type it in the box at the bottom of the desk |
| Start a new idea | LAB, + NEW IDEA |
| See every column a rule can use | LAB, VOCABULARY, or /lab/vocabulary |
| Try ideas others posted | LAB, the IDEA FEED, DEVELOP |
| A tested rule on the chart | ADD TO DESK after optimizing, then the idea's switch on the desk |
| An alert when a rule triggers | the idea's settings (the gear), ALERT: sound or push |
| Credits | LAB, GET CREDITS, or Account, Credits and tokens |


Read it in 30 seconds
- Gates passed (2/4) is the verdict: all four must pass for a rule to be called promising and still owe a stricter test.
- Beats its own core compares the full rule with its core condition alone, never with doing nothing.
- The era table shows all, 2026 and hold40 (the last 40 sessions): a rule that only works in one era did not pass.
- Outside the day error bar is a t across sessions, not across trades: nine triggers in one afternoon count as one day.
- After an optimize pass, read the overfitting line before any number in the variant table.
- On the desk, a blinking colour dot means the idea is drawing on the chart now; a grey dot means it is off.
How to use it
Describe an idea
The LAB desk and the backtest#
Why: a verdict on every finished session, against the idea's own core condition, out of sample. Where: LAB in the top bar; + NEW IDEA starts one, the box at the bottom sends it. Plan: Developing is free; a backtest is one LAB credit.
- Press LAB in the top bar. The desk lists your ideas.
- Press + NEW IDEA and type the idea the way you would say it, for example a stretch off VWAP while the book is short gamma, with a 30-minute horizon.
- Read what LAB understood: the rule in words, with its thresholds, horizon and cost. If it cannot compile yet, it asks one concrete question instead of guessing.
- Press BACKTEST (one credit).
- Read the gates passed, then the era table under them.

What it measures: The rule runs over every archived session on a minute grid. For each trigger it measures the move over the horizon, after the cost, and compares the full rule with its core condition alone. The verdict is split out of sample: this year, and the last 40 sessions.
| Control | What it does |
|---|---|
| Clears the cost | Net per trade is positive after the cost, in 2026 and hold40 |
| Beats its own core | The full rule does better than its core condition alone |
| Outside the day error bar | The day-clustered t is at least 2.0 |
| Beats the luck of its grid | The deflated Sharpe against the variants tried is at least 95% |
| era table | n triggers, net per trade and t for all sessions, 2026 and hold40 |
How to read it:
- 2/4 gates passed, promising, not proven means the rule has not cleared the bar; four of four means it owes a stricter test.
- A thin sample is named: 48 trades over 8 sessions is eight observations, not 48.
- A good number in one era and a poor one in another is a rule that did not hold.
Limits: SPX only, inside one session, at a 5, 15 or 30 minute horizon. A tested idea can draw and alert on the chart with the same thresholds; that is a convenience, not a forecast.
Related: The LAB desk and the backtest, the full page · LAB: Quant optimize · LAB: The LAB vocabulary · LAB: Credits and tokens · REPLAY
The LAB vocabulary#
Why: know exactly which measurements a rule can name, and which book each one reads. Where: LAB, VOCABULARY, or the full reference at /lab/vocabulary. Plan: Free to read.
- Open VOCABULARY on the LAB desk, or /lab/vocabulary.
- Find the group your idea belongs to, then the column, its unit and range.
- Use the column's name in your words, or in a rule sent through the API.

LAB understands 120 columns in ten groups, each named for what it is and, where the value depends on a book, for its book: _vol the volume book, _meas the measured book, _oi open interest. Old names (renamed 2026-10-03) are refused with the new one in the error.
A rule is one or two legs. A leg has a direction, up or down, the way the trade profits, and a list of conditions that must all hold at the same minute. The engine measures the move over the next 5, 15 or 30 minutes of the same session, after a cost, against the core condition alone, out of sample.
| Group | What it holds |
|---|---|
| time | min, minutes_to_close: where in the session the rule is read. The last horizon minutes have no outcome. |
| price | spot, its running mean and ±2 SD band (not a VWAP), the stretch in SDs (spot_mean_z), the last 1 / 15 / 30 minutes of tape (ret1, ret15, ret30), intra-minute realised vol. |
| levels | the flip, the call wall and the put wall as signed distances in all three books, how much of the book stands on each wall, and whether the books agree on a wall. |
| book | net gamma per book, its 1-minute flow and its percentile against the same minute of the prior 20 sessions; measured delta, vega, charm and vanna and their flows; the largest single-strike change and the total change of the book; concentration. |
| gross | the unsigned book (|γ| × OI per strike): its total, the heaviest strike each side and its distance, the near and top-3 shares, signed ÷ unsigned, and the two-sided measured book within 30 points with its 15 / 30-minute changes. |
| expiry | today's 0DTE against the book that survives it, per book, and the width the session was archived with. |
| vol | 0DTE ATM IV and its 1 and 30-minute changes, the straddle and how much of the expected move is used, FirmTape's forecast of the range left, realised ÷ implied range at 15 / 30 / 60 minutes, realised ÷ implied vol, skew and its ratio form. |
| tape | contracts printed per minute across the whole 0DTE chain, and its rank against the same minute of the prior 20 sessions. |
| calendar | day flags for FOMC, CPI, payrolls, PCE, ISM, a mega-cap print and opex, whether a release came before the open, minutes to the next / since the last in-session event, and which expiry the session is. |
| pulse | the minutes the tape itself marked as market-moving: minutes since the last, its size, whether a headline or the book alone moved it, and the count so far. |
Limits: The vocabulary is the same dictionary the compiler is given, so what is not in it cannot be tested yet.
Developer reference: /docs/developers/lab/vocabulary
Related: LAB: The LAB desk and the backtest · LAB: LAB from a script · Data dictionary
The idea feed#
Why: a running supply of rule-shaped ideas to test, when you do not have one of your own. Where: LAB, the IDEA FEED beside the desk. Plan: Free to read; testing spends credits.
- Read the feed: each card has the idea, when it was found and whether it compiles clean.
- Press DEVELOP to drop it into the desk exactly as if you had typed it.
- Backtest it like any idea of your own.

How to read it:
- Every card is marked untested: the feed is deliberately not judged, and the test is yours to run.
Limits: The ideas are collected from public posts by a scanner and are not checked before they appear.
Related: LAB: The LAB desk and the backtest
Backtest and optimize
Quant optimize#
Why: learn whether a better threshold exists, or whether the best one is only lucky. Where: after a backtest, OPTIMIZE on the LAB desk. Plan: One LAB credit a pass.
- Backtest the rule first.
- Press OPTIMIZE (one credit). Every threshold of every filter is swept.
- Read the chart: the running total of the rule as written against its variants.
- Read the variant table by era, then the lines under it: the five best days' share, the deflated Sharpe, the overfitting check.

What it measures: Each variant's net per trade in all sessions, 2026 and hold40; the deflated Sharpe of the best row against the number of variants; the probability that the best row lands below the median out of sample, over thousands of splits.
How to read it:
- Green means positive out of sample, above the core baseline and outside the day-clustered error bar; anything that clears still owes a stricter test.
- The five best days are 131% of the total means that without them the rule loses.
- Picking the best row is no better than picking at random is the overfitting check saying the grid holds no real ordering.
Limits: Variants that never bind give identical rows; that says the filter decided nothing.
Related: LAB: The LAB desk and the backtest · LIVE: The archive run
Put it on the chart
The desk on the chart#
Why: see where your tested rule triggers, on the live session, on any finished day and in playback, with the formula the backtest scored. Where: ADD TO DESK after a backtest or an optimize pass; the desk lists your ideas, each with its switch, its draw style and its colour. Plan: Free once an idea is tested; the live session needs LIVE, finished days are free.
- Take an idea through BACKTEST (and OPTIMIZE if you like), then press ADD TO DESK.
- Flip the idea's switch on the desk. A blinking colour dot means it is drawing; grey means it is off.
- Pick how it draws: ZONES, MARKS, TRADES or RAILS, and its colour from six.
- Play a finished session, or follow the live one: the drawing moves with the chart.
- Press the star to pin an idea to the top of the list.

What it measures: The rule's conditions read at each minute of the day on screen, with the thresholds the backtest used. For a rule whose core is a stretch off VWAP, the threshold is a rail (VWAP plus a number of standard deviations of the session's prices) and its crossings are computed on any day, live included.
| Control | What it does |
|---|---|
| ZONES | The strips of time where the rule's core condition held |
| MARKS | A triangle at each entry on the day on screen |
| TRADES | The marks plus a dotted tail over the rule's own horizon: a simulated trade, nothing is placed |
| RAILS | Dashed threshold lines for each leg's core condition |
| switch | Draws the idea on the chart or stops it |
| star | Pins the idea to the top of the desk |
How to read it:
- A mark is where the rule's conditions were met, measured on that minute. It is not a call to act.
- A simulated trade shows the rule's horizon from its entry; its result is the backtest's kind of measurement, not a forecast.
- Most rules on most desks did not clear the honest bar; drawing one does not change its verdict.
Limits: A rule whose core is not a stretch off VWAP has no price line to cross: rails and zones stay empty, and its marks and trades come from the backtest's recent triggers, so they show only on those days. SPX only.
Related: LAB: Desk alerts · LAB: The LAB desk and the backtest · REPLAY: The playback bar
Desk alerts#
Why: the chart watches your rule for you, live or in playback, and tells you the moment it triggers. Where: the idea's settings on the desk (the gear), ALERT: OFF, SOUND or PUSH. Plan: Free on a desk idea; on the live session with LIVE.
- Open a desk idea and press the gear for its settings.
- Under ALERT pick SOUND (then a tone and a volume) or PUSH.
- For PUSH, allow notifications when the browser asks; a test notification confirms it.
- Keep the terminal open: the alert fires when the rule triggers as time passes on the chart.

What it measures: The same crossing the desk draws: the price moving through the rule's rail at a minute it had not crossed before. It fires on time that passes (a live tick, a playing playback, a one-step arrow) and stays silent on a far jump of the scrubber or a step backwards.
| Control | What it does |
|---|---|
| OFF | No alert |
| SOUND | A tone in the open terminal: pop, bass, bright or phone, with a volume |
| PUSH | A browser notification naming the idea and the price where it triggered; falls back to the sound when notifications are blocked |
How to read it:
- An alert is the rule's measured trigger, the same one its backtest counted. It says nothing the backtest did not.
Limits: Desk alerts sound or notify in the browser where the terminal is open; they are separate from the alert lines and level alerts, which go to Telegram, push and your webhook (Alerts and delivery). They need a rule with a rail (a core that is a stretch off VWAP). SPX only.
Related: LAB: The desk on the chart · LIVE: Alert lines · LIVE: Level alerts on a watchlist
Credits and tokens
Credits and tokens#
Why: machine time priced honestly: conversation is free, each job has a fixed cost. Where: LAB, GET CREDITS, or Account, Credits and tokens. Plan: LAB packs or the LAB monthly plan; LIVE includes 5 credits a month. Pricing.
- Read your balance: the plan's monthly credits and the purchased ones, shown apart.
- Press GET CREDITS for the packs, or start the monthly plan.
- Under Account, Credits and tokens, + Create token makes a LAB token for scripts and assistants; it is shown once.

| Job | Credits |
|---|---|
| Developing an idea in the chat | 0 |
| A backtest | 1 |
| An optimize pass | 1 |
| An OPTIONS archive run | 10 |
How to read it:
- Monthly credits are spent first and expire with the month; purchased credits never expire.
Limits: A failed job refunds its credit automatically. A LAB token spends the same credits as the terminal.
Related: LAB: LAB from a script · REPLAY: MCP server · LIVE: The archive run
LAB from a script#
Why: automate research: compile, backtest, optimize and read the verdict without the terminal. Where: Account, Credits and tokens, + Create token; the reference is /docs/developers/lab. Plan: The same LAB credits as the terminal.
- Create a LAB token on the account page.
- Send it as the Authorization header from your script.
- Describe, backtest and optimize exactly as on the desk, and read the same verdict as JSON.

Limits: Every call spends credits like the desk does.
Developer reference: /docs/developers/lab
Related: LAB: Credits and tokens · LAB: The LAB vocabulary · REPLAY: MCP server
Read the evidence
Published research#
Why: see what has been measured on this data, with its sample and method, before trusting a reading or testing an idea. Where: /research, grouped as do the levels hold, what the book is made of, rules tested and published work replicated. Plan: Free.
- Open /research and pick a group.
- Read the dated header: the book, the sample and the status of the measurement.
- Read the table and the definitions under it, so the numbers cannot be read as something else.

How to read it:
- Every post states its sample, its method and its caveats, so it can be rebuilt from the public session files.
- Null results are published too: a level that holds as often as a random line at the same distance is reported as that.
Limits: Posts are re-measured as the archive grows and say so. None of it is investment advice.
Related: LAB: The LAB desk and the backtest · REPLAY: The session archive and session pages
Add to LAB
| Add-on | What it adds |
|---|---|
| LAB credit packs | TASTE, RESEARCH and DEEP DIVE: credits that never expire, without a subscription |
| OPTIONS archive run | A structure tested over the archive on real quotes, paid in LAB credits |
Use it with other tools
| Tool | How it pairs |
|---|---|
| REPLAY | Replay the sessions behind any number LAB reports, free. |
| LIVE: The archive run | Test a structure on real quotes with the same credits. |
| LIVE: Alert lines | Desk alerts are LAB's own; alert lines and level alerts watch a price or a level instead. |
| LIVE: The ASK drawer | ASK can explain a reading before you write a rule on it. |
| REPLAY: MCP server | Run LAB from an AI assistant with a Lab token. |
Good to know
- Developing an idea costs nothing; credits are spent only on a backtest or an optimize pass, and a failed job refunds its credit.
- Purchased credits never expire and are spent after your monthly allowance.
- LAB tests SPX only, inside one session, at 5, 15 or 30 minutes.
- Adding an idea to the desk and drawing it cost nothing: the credits were spent getting it tested.
- A desk alert fires as time passes on the chart (the live tape, a playing playback, a one-step arrow), never on a far jump of the scrubber.
- A seeded idea on every new desk walks the whole conveyor, and its verdict is that it does not clear the honest bar, because that is what most ideas honestly do.
If something looks wrong
| You see | Do this |
|---|---|
| The chat asks a question instead of compiling | Your words did not map to one rule yet; answer the question with the threshold or the column it names. |
| Every variant in the optimize table has the same numbers | The filter changed did not bind on any session; the rule is its core plus a condition that never decided anything. |
| A send opens the credits card | Your balance is zero; developing stays free, a backtest needs one credit. |
| A desk idea draws nothing on the day on screen | A rule whose core is not a stretch off VWAP has no rail; its marks come from the backtest's recent triggers and show only on those days. |
| A push alert never appears | Allow notifications for firmtape.com in the browser; until then the alert falls back to the sound. |
| A column name is refused | Columns were renamed on 2026-10-03 with the book as a suffix; the error names the new spelling. |
Glossary
| Term | Meaning |
|---|---|
| core condition | The one condition an idea stands on; the baseline every filter must beat. |
| hold40 | The last 40 sessions, held out of the build as a recent out-of-sample check. |
| deflated Sharpe | A Sharpe ratio discounted for the number of variants tried. |
| day-clustered t | A t statistic measured across sessions rather than across triggers. |
| desk | The list of tested ideas you keep; each can draw on the chart and alert. |
| simulated trade | A desk drawing of the rule's entry and its horizon; nothing is traded. |
| credit | The unit LAB jobs spend: one for a backtest or an optimize pass, ten for an OPTIONS archive run. |
Every reading here is a measurement of dealer positioning, never a forecast or a trade call.