trading-strategy is a fully working order flow analysis tool. It is built for people who read the tape: traders and analysts who watch prints, bid/ask imbalances, absorption events and cumulative delta for hours at a time and need a working instrument that turns raw order flow data into analysis they can act on.
The product intent, taken directly from the authoritative requirement thread, is twofold and both parts are current commitments:
"Fully working" is interpreted as a source-bounded, end-to-end usable lifecycle: the analyst can bring order flow data into the tool, run an analysis over it, and obtain observable analysis output — with material failure and recovery handled truthfully at each step. It is not interpreted as a licence to add adjacent trading capabilities (order routing, brokerage connectivity, portfolio management, strategy backtesting, alerting, or account administration) that the source never accepted.
The audience is the Order Flow Analyst — the single accepted active human persona for this generation.
The system is a first-party web application with three pages, delivered as a custom UI:
All three pages are application-owned and carry an access requirement of none; no identity establishment, sign-in, or account management is part of this generation. The analyst moves freely between the three surfaces, and the work is stateless with respect to user accounts — the durable state that matters is the loaded order flow dataset and the analysis result derived from it.
The system is a serious computing instrument, not a dashboard template. Its visual and interaction language is a dark, ruled, data-instrument aesthetic in which the product's own order flow data is the imagery.
Delivery ownership. The tool is delivered as a first-party custom web UI owned by the application. There is no provider-owned or external-destination surface in this generation, and no headless-only delivery. Every accepted human interaction — reading the landing explanation, supplying order flow data, running the analysis, and reading the analysis output — happens on a first-party page.
Access ownership. All three pages are reachable without establishing an identity. This is not a gap to be filled: the accepted journeys do not require the analyst to privately own or resume durable actor-specific state, and no commitment, decision, entitlement, or value transfer must remain bound to a particular participant. The loaded dataset and the analysis result are working state for the current session, not an account-bound record. Accordingly, no sign-in, registration, invitation, or provisioning flow is introduced, and no page is protected.
Current boundary. Current scope is exactly: explain the tool (Landing), provide order flow data to the tool (Data), and run and view order flow analysis (Analysis). Everything the analyst needs to complete those three responsibilities is in scope, including the failure and recovery states that make each step genuinely usable.
Future boundary. Anything not listed above is out of current scope. Live market data feeds, brokerage or exchange connectivity, order placement, strategy backtesting, alerting and notification, saved watchlists, multi-user collaboration, and account management are not current requirements and must not appear in current pages or acceptance criteria. They are recorded in Section 11 as future or excluded, not built.
Not applicable. No reference directive in this request declares a content_source, so no source content inventory is produced.
The public entry surface. It explains what the order flow analysis tool is, who it is for, and what it does, before any data or analysis work begins.
Information and state
Primary action
Supporting actions
Domain entities
Component responsibilities
States
The dense tabular intake surface where the analyst provides order flow data to the tool.
Information and state
Primary action
Supporting actions
Domain entities
Component responsibilities
States
The two-pane instrument where order flow analysis runs and its output is read.
Information and state
Primary action
Supporting actions
Domain entities
Component responsibilities
States
Each requirement below is a distinct story point with provenance, lifecycle facts, and observable acceptance.
FR-1 — Explain the order flow analysis tool on public entry As an Order Flow Analyst, I should land on a public page that explains what the order flow analysis tool is, who it is for, and what it does, so that I understand the instrument before I use it.
required_inference (Landing page rationale: mandatory public entry explaining the tool, its audience, and what it does before any identity establishment or protected work).FR-2 — Enter the tool from the landing hero As an Order Flow Analyst, I should activate a single, clearly placed control on the landing hero to enter the tool, so that I can move from understanding the instrument to using it.
required_inference (Landing primary action).FR-3 — Supply order flow data to the tool As an Order Flow Analyst, I should supply order flow data to the tool through a dropzone, so that the tool has the raw material it needs to analyse.
required_inference (Data page rationale: owns the accepted responsibility of providing order flow data to the tool for analysis).FR-4 — Map supplied columns to the fields analysis requires As an Order Flow Analyst, I should map the columns of my supplied data to the fields the analysis requires, so that the tool interprets my data correctly.
required_inference (Data page: schema preview and column mapping table).FR-5 — Hand the mapped dataset to the tool for analysis As an Order Flow Analyst, I should confirm my column mapping and hand the dataset to the tool, so that the analysis can run against data the tool understands.
required_inference (Data page primary action).FR-6 — Run order flow analysis over the supplied dataset As an Order Flow Analyst, I should run the order flow analysis over my supplied dataset with the settings I choose, so that I obtain working analysis results.
explicit (the authoritative requirement: "create a tool for order flow analysis full working") combined with required_inference (Analysis page rationale: owns the accepted responsibility of running order flow analysis).FR-7 — Read the order flow analysis output As an Order Flow Analyst, I should read the analysis output across the footprint, cumulative delta, DOM ladder, and tape panels, so that I can see order flow metrics and patterns and inform my trading decisions.
required_inference (Analysis page rationale: viewing the resulting analysis output; persona rationale: inspects order flow metrics and patterns and uses the analysis output to inform trading decisions).FR-8 — Re-run analysis with changed settings As an Order Flow Analyst, I should change symbol, session, aggregation, or threshold and re-run the analysis, so that I can examine the same order flow under different views.
required_inference (Analysis page control rail: symbol, session, aggregation, threshold sliders).FR-9 — Link a price level to the particle field As an Order Flow Analyst, I should hover a price level and see the corresponding particle band highlighted in the mini-canvas, so that I can connect the ladder to the flow field.
required_inference (Analysis page: hero-adjacent mini-canvas with price-level hover linkage).FR-10 — Recover from a failed or unusable dataset As an Order Flow Analyst, I should be able to correct or replace a dataset that the tool cannot use, so that a bad file does not end my session.
required_inference (indispensable failure/recovery mechanics for the accepted data-provision and analysis lifecycles).Product context. The Order Flow Analyst is the single accepted active human persona for this generation. Their working reality is long screen sessions reading raw order flow: prints arriving on the tape, resting size stacked on the DOM ladder, volume distributed across price and time in the footprint, and the cumulative delta line that tells them whether buyers or sellers are actually in control. They work at a desk, often late, and they treat their tools as instruments rather than apps.
Primary goal. Obtain working order flow analysis results from the tool — bring order flow data in, run the analysis, and read output that shows order flow metrics and patterns clearly enough to inform trading decisions.
Distinct accepted responsibilities.
Relevant inputs and decisions.
Interactions with other accepted participants. There are none. The Order Flow Analyst is the only accepted active human persona, and no other human participant is materially affected by this work: the tool produces analysis for the analyst who requested it, and no commitment, value transfer, or decision is owed to a second party. The tool itself is a system actor, not a persona.
Observable success. The analyst has supplied a dataset the tool accepted, run an analysis, and is reading populated footprint, cumulative delta, DOM ladder, and tape panels for their chosen settings — with the cumulative delta line drawn and absorption events marked. Failure is observable and recoverable: a bad file or failed run names its cause and leaves prior working state intact.
What makes this role's work different. The analyst's work is interpretive and iterative rather than transactional. There is no submission, approval, or handoff; the value is in the loop of setting parameters, running the analysis, reading the resulting order flow structure, and re-running with different settings. The tool must therefore make re-running cheap and make the data itself the dominant visual element, because the analyst is reading structure in the data, not filling in a form.
The creative direction is authoritative for this section. The muse is Refik Anadol, and the headline concept is order flow rendered as a living data sculpture: the product's own data is the artwork, and the interface is the instrument that reads it.
| Role | Hex | Usage |
|---|---|---|
| Background | #07070A | Near-black ground; the full-bleed hero canvas and page ground |
| Surface | #101018 | Slightly lifted panel surface for the DOM ladder, footprint grid, and trade tape |
| Text | #EDEDF2 | Cool white at ~92% of the UI |
| Primary | #5BE7C4 | Data-teal: buy-side aggression, positive delta, warm nodes of the generative flow field, the 1px hero rule |
| Accent | #FF5A3C | Hot coral: sell-side aggression, absorption warnings, absorption rings, and the single red CTA on the landing hero |
| Muted | #6E6E7A | Timestamps, secondary labels, axis ticks |
Proportion: 80% black/surface, 12% teal, 6% coral, 2% muted grey. Blue and indigo are forbidden — this is a data-instrument palette, not a SaaS palette.
clamp(56px, 9vw, 128px) on desktop, 56px floor at 375px.clamp(32px, 4.5vw, 72px).Inter, Roboto, Arial, Poppins, and system-ui are forbidden for headings and body.
Sharp, engineered rectangles: 0–4px radii on panels, 2px radii on controls, hairline 1px borders in rgba(237,237,242,0.08). No pills, no blobs, no soft cards, no 16px+ radii. The generative canvas is the only curved form on the page — everything else is orthogonal and ruled, so the flowing particle field reads as the sole organic element. Dividers are 1px rules spanning the full column width. The DOM ladder uses a strict column grid with alternating row tints at 3% white.
Full-bleed generative canvas as the landing hero, with a single left-aligned type column overlapping it at 6–8 column width. Below the fold, a 12-column ruled grid. The Analysis page is a two-pane instrument: a 380px left control rail (symbol, session, aggregation, threshold sliders) and a right fluid canvas with stacked panels (footprint, cumulative delta, DOM ladder, tape). The Data page is a dense tabular intake surface with a dropzone, schema preview, and column mapping table. Everything flush-left, values right-aligned in their column, never centred. Sections separated by full-width 1px rules, not cards.
The product's own data is the imagery. No stock photography, no people, no device mockups. Seeded generative particle renders derived from historical order-flow samples appear as data sculptures on the landing page, one per demo instrument: ES, NQ, BTC. Secondary imagery is diagrammatic: depth-of-market heatmaps, footprint clusters, and absorption profiles rendered as monochrome line drawings on the black ground. The only permitted photographic element is a single macro of a physical tape-printed chart in the landing page's "built for the desk" section, treated in high-contrast monochrome.
The hero is the order book, rendered as a living sculpture.
The public entry is a full-viewport #07070A canvas running a real-time WebGL particle field generated from a bundled sample order-flow dataset. Thousands of points drift along a horizontal time axis. Buy-side particles are teal (#5BE7C4); sell-side particles are coral (#FF5A3C). Density and velocity are mapped to print size and inter-arrival time, so the composition is literally the buy/sell imbalance rather than a decorative gradient.
Overlaid on the left third, flush-left and vertically centred, sits an oversized Space Grotesk headline at clamp(56px, 9vw, 128px): "READ THE TAPE." stacked in two lines, with a 1px teal rule beneath it and a single line of IBM Plex Sans body at 18px describing the tool.
Beneath the headline, three live HUD readouts in IBM Plex Mono (13px, uppercase, 0.18em tracking) show the sample dataset's cumulative delta, buy/sell ratio, and absorption count, ticking in real time as the canvas animates.
One coral CTA button, sharp-cornered, 48px tall, flush-left under the readouts: "Open the tape."
No centred headline, no gradient blob, no floating glass card. The data field is the hero, and the type sits inside it as a caption rather than on top of a card. This concept recomposes only accepted content and controls — the headline, the descriptive line, the three sample-derived readouts, and the single entry CTA — and introduces no new behaviour, page, or destination.
Interaction Model: Animated Motion Tempo: cinematic Hero Dimensionality: webgl
Focal subject. A real-time WebGL particle field generated from the bundled sample order-flow dataset — thousands of points drifting along a horizontal time axis, buy-side particles teal (#5BE7C4), sell-side particles coral (#FF5A3C), with density and velocity mapped to print size and inter-arrival time.
Input → transformation → outcome thesis. The sample dataset's prints are the input; each print becomes a particle whose colour is its side, whose density reflects its size, and whose velocity reflects its inter-arrival time; the outcome is a continuously evolving composition in which the buy/sell imbalance is directly legible, while the three HUD readouts (cumulative delta, buy/sell ratio, absorption count) tick in step with the field. Absorption events pulse outward as rings.
Motion vocabulary. Cinematic and continuous. Slow generative drift; scroll-linked camera drift applied to the canvas only, never to the text; absorption rings that pulse once and fade.
Composed first frame. Full-viewport #07070A ground with the particle field already in motion. The left third carries the flush-left, vertically centred "READ THE TAPE." headline in Space Grotesk with a 1px teal rule beneath it, the 18px IBM Plex Sans body line, the three mono HUD readouts, and the coral 48px "Open the tape" CTA. All readable text and the CTA sit entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling to fit, with no element covering any part of them.
Reduced-motion state. With prefers-reduced-motion, the canvas freezes to a static frame of the same particle field, the tape becomes a scrollable list, and the cumulative delta line renders fully drawn. The headline, body line, HUD readouts, and CTA remain whole and operable.
On the Analysis page, the tape streams and the footprint grid updates with a 120ms fade-in per row; the cumulative delta line draws left-to-right over 400ms; absorption events are marked as small coral rings that pulse once and fade — the only decorative motion on the page. Hovering a price level highlights the corresponding particle band in the hero-adjacent mini-canvas. All of this respects prefers-reduced-motion: the tape becomes a scrollable list and the delta line renders fully drawn.
NFR-1 — Fully working end to end. The tool must complete the full lifecycle — supply data, map it, run the analysis, read the output — without dead ends. Provenance: explicit ("full working"). Rationale: the authoritative requirement states the tool must be fully working, so every accepted step must reach an observable result.
NFR-2 — Readable text and controls stay whole at every viewport. Headlines, wordmarks, labels, numbers, panel text, and controls stay entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling (for example font-size: clamp(...) with its mobile size) to fit, and no other element covers any part of them. Provenance: explicit (creative direction, readable-text rule). Rationale: the direction's imagery and motion may bleed and overlap, but readable text and controls may not be cropped, clipped, or covered.
NFR-3 — Reduced-motion support. With prefers-reduced-motion, the hero canvas freezes to a static frame, the tape becomes a scrollable list, and the cumulative delta line renders fully drawn. Provenance: explicit (creative direction). Rationale: the direction specifies a usable static arrangement for motion-sensitive users.
NFR-4 — Data numeral alignment. DOM ladder and footprint grid numerals use IBM Plex Mono at 13px with tabular figures so columns align pixel-perfect at every viewport. Provenance: explicit (creative direction). Rationale: misaligned price and size columns make a ladder unreadable.
NFR-5 — Palette discipline. Blue and indigo must not appear as primary or accent anywhere. Provenance: explicit (creative direction). Rationale: the direction forbids the generic indigo/blue-on-white SaaS template for this project.
NFR-6 — Failure states preserve working state. A parse error, unmappable column, or failed run must name its specific cause and must not discard the analyst's previously working dataset or result. Provenance: required_inference. Rationale: without this, a single bad file would end the session and the tool would not be "fully working."
No source-specified technology is overridden; the stack above fills only what the source left unspecified.
Assumptions
Constraints
Out of current scope (future or excluded)
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No comments yet. Be the first!