Heatmap Strategy Lab / Training gym
Watch the search run
XG Capital Strategies runs a search for structure in markets that predicts something, and it does not stop when it finds any. It proposes candidates, tests them, and throws almost all of them away. This page is that search as recorded by the laboratory's own instrumentation, with the transport controls handed to you.
Before you watch it
A perpetual search that mostly fails.
Heatmap Strategy Lab is the internal environment where that search runs. It is not a demonstration assembled for this page and it is not a simulation. Its 8 approved research programs propose candidate market structures, test them against a standard fixed before the test, and record what happened either way. At the last reading, 4 were running, 3 paused and 1 stopped. The primitives they recombine come out of a decade of XG Capital Strategies market research. The search is perpetual by design: a search that halts on its first success has stopped searching.
Almost everything fails, and that is the exhibit rather than a caveat attached to it. Across the published record the laboratory has run 942,601 evaluations, holds 374 behaviours in its archive, and keeps 8,855 aggregate rejections on a register it does not delete: about 24 rejections standing behind every occupant. The failures are kept because a survivor that was never at risk of being rejected tells you nothing about anything.
The exhibit below is that record placed on a time axis. Scrub it, step it, replay it, stop it wherever something changes. Open any program to read its counters at that moment, the ledger of why its candidates stopped, and the process events the record places nearest your cursor.
- Evaluations recorded
- 942,601
- Archive occupants
- 374
- Aggregate rejections
- 8,855
- Rejections per occupant
- 23.7
one test of one candidate, across 8 programs
behaviours the search has not been able to rule out
typed failures kept on a register that is not deleted
the ratio the laboratory is actually built around
Verified website-safe snapshot hsl_20260826T221952Z_30f6d81ac86e · exported Aug 26, 2026, 22:19 UTC · research throughput, not trading performance
Five words the exhibit uses
What the counters are counting.
- Evaluation
- One test of one candidate against the program's evidence standard. A single candidate is normally evaluated many times, so evaluations count work done, not ideas had.
- Generation
- One round of the search. Each generation proposes and recombines candidates, tests them, and keeps or discards what it produced.
- Archive occupant
- A behaviour the search has kept because nothing else in the archive does the same thing and nothing has yet ruled it out. It is a placeholder in a map of behaviours, not a strategy and not a result.
- Enrolled, waiting, surviving
- Candidates that have entered observation, candidates held because the evidence is not yet decisive, and candidates still alive in the population at that reading.
- Rejection
- A candidate stopped by a named check, recorded by reason. The register keeps the reason and the count; it never keeps the candidate.
Public artifact / Recorded search
The record, on an axis.
Every number below is read from the snapshot at the position of your cursor. Nothing is simulated, extrapolated, or smoothed; where a program did not report, the instrument holds its last actual reading and says so. The exhibit does not move unless you ask it to.
Unfamiliar words below? The glossary explains gym, Referee, generation, niche and the rest in plain language.
Turn your phone sideways for this one. The record reads across a time axis, so it has more to show with the extra width. It works either way.
XGCS / HSL TRAINING GYM
- INSTRUMENT
- CONTINUOUS SEARCH, RECORDED
- ARTIFACT
- hsl_20260826T221952Z_30f6d81ac86e
- SOURCE
- Verified website-safe HSL snapshot / history, events, archive, null registry
- AS OF
- Aug 26, 2026, 22:19 UTC
Recorded Aug 17, 2026 – Aug 26, 2026 / 835 frames
A search for structure that predicts, and does not stop.
These are internal XG Capital Strategies experiments, and these are their real readings. Each program proposes candidate structures, tests them against its own evidence standard, and discards nearly all of them. It does not halt when something survives; it keeps going, because the point is to keep finding out what is not there.
Move the cursor and the record moves with it: generations advance, evaluation counters climb, populations swell and thin, the archive fills a cell at a time. Open a program to see why its candidates stopped.
Cursor
Aug 26, 2026, 22:14 UTC
Frame 835 of 835 · latest reading in the record
Aug 17, 2026Aug 26, 2026
- Evaluations run since the window opened
- 471,609
- Evaluations in the previous hour
- –
- Archive occupants
- 374
- Programs running at this frame
- 4
one test of one candidate, not one candidate
averaged 2,047 per hour across the window
behaviours the search has not been able to rule out
3 paused, 1 stopped, of 8 in the record
Over this window the 8 programs ran 471,609 evaluations and the archive gained 152 occupants, roughly one new occupant per 3,103 evaluations. Across the whole record the null registry holds 8,855 aggregate rejections against 374 occupants. Failing is not the exception here; it is almost the entire output, and it is kept.
8 programs, read at the cursor
Select a program to open its readings, its rejection ledger, and the events the record places nearest the cursor. Values without JavaScript, or before a program's first reading, show the latest figure in the record.
-
At the cursor
- Generation
- 26,369
- Evaluations
- 638,524
- Enrolled for observation
- 0
- Waiting on more evidence
- 0
- Still surviving
- 0
- Archive occupants
- 0 of 216 cells
Across the window: +351,963 evaluations, +14,542 generations, 0 archive occupants claimed.
Why candidates stopped
No rejection records are published against this program. The null registry is aggregated per program at export, and a program can run a great many evaluations without any of them reaching a stage that writes a typed rejection. Absence here is an absence of published records, not evidence that nothing failed.
Recorded near the cursor
231 published events for this program fall inside the window, the earliest at Aug 26, 2026, 20:04 UTC. The record keeps only the most recent events per program, so frames before that point carry none.
- Move the cursor to read this program's events.
-
At the cursor
- Generation
- 1,551
- Evaluations
- 126,146
- Enrolled for observation
- 114
- Waiting on more evidence
- 106
- Still surviving
- 7
- Archive occupants
- 150 of 648 cells
Across the window: +46,001 evaluations, +482 generations, +24 archive occupants claimed.
Why candidates stopped
2,915 aggregate rejection records stand against this program in the null registry.
- Did not clear the evidence threshold 2,426 83.2%
The candidate's apparent edge was not distinguishable from chance under the program's own test.
- Repeated an existing behaviour 262 9.0%
It worked, but it did the same thing as something the archive already held, so it added nothing.
- Did not survive placebo challenge 92 3.2%
The same result appeared when the candidate was re-run against deliberately meaningless inputs.
- Did not remain viable after costs 34 1.2%
Whatever it found was smaller than the cost of acting on it.
- Other controlled failure class 101 3.5%
A typed failure recorded outside the four classes above.
Recorded near the cursor
229 published events for this program fall inside the window, the earliest at Aug 26, 2026, 15:53 UTC. The record keeps only the most recent events per program, so frames before that point carry none.
- Move the cursor to read this program's events.
-
At the cursor
These counts are real. What they imply is not. A look-ahead was found in this program's exit rule on 2026-08-27. The counts below are real: these experiments ran and these candidates were retained. But the decisions that retained them were made on scores that are now known to be wrong, so retention here means the process kept it, not that it earned keeping. The program is stopped and is being rebuilt from scratch on corrected code.
- Generation
- 1,488
- Evaluations
- 108,854
- Enrolled for observation
- 12
- Waiting on more evidence
- 0
- Still surviving
- 10
- Archive occupants
- 138 of 648 cells
Across the window: +66,630 evaluations, +737 generations, +98 archive occupants claimed.
Why candidates stopped
2,547 aggregate rejection records stand against this program in the null registry.
- Did not clear the evidence threshold 2,488 97.7%
The candidate's apparent edge was not distinguishable from chance under the program's own test.
- Repeated an existing behaviour 51 2.0%
It worked, but it did the same thing as something the archive already held, so it added nothing.
- Did not remain viable after costs 8 0.31%
Whatever it found was smaller than the cost of acting on it.
Recorded near the cursor
240 published events for this program fall inside the window, the earliest at Aug 26, 2026, 03:42 UTC. The record keeps only the most recent events per program, so frames before that point carry none.
- Move the cursor to read this program's events.
-
At the cursor
These counts are real. What they imply is not. A look-ahead was found in this program's exit rule on 2026-08-27. The counts below are real: these experiments ran and these candidates were retained. But the decisions that retained them were made on scores that are now known to be wrong, so retention here means the process kept it, not that it earned keeping. The program is stopped and is being rebuilt from scratch on corrected code.
- Generation
- 108
- Evaluations
- 11,941
- Enrolled for observation
- 953
- Waiting on more evidence
- 72
- Still surviving
- 905
- Archive occupants
- 86 of 648 cells
Across the window: +6,874 evaluations, +64 generations, +30 archive occupants claimed.
Why candidates stopped
218 aggregate rejection records stand against this program in the null registry.
- Did not clear the evidence threshold 97 44.5%
The candidate's apparent edge was not distinguishable from chance under the program's own test.
- Repeated an existing behaviour 4 1.8%
It worked, but it did the same thing as something the archive already held, so it added nothing.
- Did not survive placebo challenge 117 53.7%
The same result appeared when the candidate was re-run against deliberately meaningless inputs.
Recorded near the cursor
240 published events for this program fall inside the window, the earliest at Aug 21, 2026, 17:23 UTC. The record keeps only the most recent events per program, so frames before that point carry none.
- Move the cursor to read this program's events.
-
At the cursor
- Generation
- 2
- Evaluations
- 148
- Enrolled for observation
- 1
- Waiting on more evidence
- 2
- Still surviving
- 0
- Archive occupants
- 0 of 648 cells
Across the window: +141 evaluations, 0 generations, 0 archive occupants claimed.
Why candidates stopped
No rejection records are published against this program. The null registry is aggregated per program at export, and a program can run a great many evaluations without any of them reaching a stage that writes a typed rejection. Absence here is an absence of published records, not evidence that nothing failed.
Recorded near the cursor
The published event record carries no events for this program inside this window. 940 of the laboratory's 1,444 published events fall inside it; the rest predate it. The event record is a bounded sample, not a complete log.
-
At the cursor
- Generation
- 226
- Evaluations
- 31,350
- Enrolled for observation
- 0
- Waiting on more evidence
- 0
- Still surviving
- 0
- Archive occupants
- 0 of 648 cells
Across the window: 0 evaluations, 0 generations, 0 archive occupants claimed.
Why candidates stopped
No rejection records are published against this program. The null registry is aggregated per program at export, and a program can run a great many evaluations without any of them reaching a stage that writes a typed rejection. Absence here is an absence of published records, not evidence that nothing failed.
Recorded near the cursor
The published event record carries no events for this program inside this window. 940 of the laboratory's 1,444 published events fall inside it; the rest predate it. The event record is a bounded sample, not a complete log.
-
At the cursor
- Generation
- 2,302
- Evaluations
- 25,469
- Enrolled for observation
- 0
- Waiting on more evidence
- 0
- Still surviving
- 0
- Archive occupants
- 0 of 648 cells
Across the window: 0 evaluations, 0 generations, 0 archive occupants claimed.
Why candidates stopped
3,175 aggregate rejection records stand against this program in the null registry.
- Did not clear the evidence threshold 3,175 100.0%
The candidate's apparent edge was not distinguishable from chance under the program's own test.
Recorded near the cursor
The published event record carries no events for this program inside this window. 940 of the laboratory's 1,444 published events fall inside it; the rest predate it. The event record is a bounded sample, not a complete log.
-
At the cursor
These counts are real. What they imply is not. A look-ahead was found in this program's exit rule on 2026-08-27. The counts below are real: these experiments ran and these candidates were retained. But the decisions that retained them were made on scores that are now known to be wrong, so retention here means the process kept it, not that it earned keeping. The program is stopped and is being rebuilt from scratch on corrected code.
- Generation
- 148
- Evaluations
- 0
- Enrolled for observation
- 0
- Waiting on more evidence
- 0
- Still surviving
- 0
- Archive occupants
- 0 of 648 cells
Across the window: 0 evaluations, 0 generations, 0 archive occupants claimed.
Why candidates stopped
No rejection records are published against this program. The null registry is aggregated per program at export, and a program can run a great many evaluations without any of them reaching a stage that writes a typed rejection. Absence here is an absence of published records, not evidence that nothing failed.
Recorded near the cursor
The published event record carries no events for this program inside this window. 940 of the laboratory's 1,444 published events fall inside it; the rest predate it. The event record is a bounded sample, not a complete log.
What the record says was happening
The published process events nearest the cursor, newest first, across every program. 940 of 1,444 published events fall inside this window. A process event is a transition in the search: a candidate proposed, a generation advanced, a cell claimed. It is not a trade, an order, a forecast, or a result. The record keeps only the most recent events per program, so its coverage of this window begins at Aug 21, 2026, 17:23 UTC and earlier frames legitimately carry none.
- Move the cursor to read the event record.
WHAT THIS INSTRUMENT CANNOT SHOW / It cannot show what any candidate is: no formula, genome, feature, model weight, candidate identity, position, order, or market observation appears here or in the file this page reads. It cannot show that anything found is profitable. An archive occupant is a behaviour the search has not yet ruled out, not a strategy and not a return. It cannot show live computation: this is a sanitised export taken at Aug 26, 2026, 22:19 UTC, and the search has continued past it without this page following. And it cannot show the whole search: the event record is bounded, the archive holds current occupants only with no prior occupants, and rejections are counted in aggregate by reason, never one by one.
ON PROGRAM STATE / This exhibit reads state from the history record, which carries running, paused, and stopped. The snapshot's summary file carries only running and stopped, and can differ where a program's summary row was last updated long before the export, and it reports 5 running where the last frame of the history record shows 4. The field census on the laboratories page reads the summary; this one reads the time series.
Recorded research activity is not live trading telemetry.
Archive occupancy and research throughput do not establish predictive performance.
No positions, orders, forecasts, returns, formulas, genomes, or model weights are published.
Snapshot hsl_20260826T221952Z_30f6d81ac86e, schema 1.0.0, exported Aug 26, 2026, 22:19 UTC.
After you have watched it
Throughput is not evidence of profit.
A machine that runs 2,047 evaluations an hour has demonstrated that it runs, not that it is right. Nothing on this page establishes that any behaviour in the archive is profitable, durable, or worth acting on; the archive is a map of what has not yet been ruled out. The instruments that carry evidence about outcomes are elsewhere in the record, with the trial counts and decay figures that qualify them.
- The field census
Who the 8 programs are, what they have run, and a bounded sample of the sanitized event record.
- Failure memory
The whole null register in one proportion: every aggregate rejection, grouped by the check that stopped it.
- The archive, and the withdrawn forward track
The shape of the search space, and the retraction of the one performance figure this site ever published, after a look-ahead was found in the program behind it. No forward return figure is published anywhere on this site today.
XG Capital Strategies is a private applied research laboratory. Nothing here is investment advice, an offer, or a solicitation. See the disclaimer.