Skip to content

feat(frontend): add Bet Pilot dashboard#5110

Open
Theospe wants to merge 1 commit into
apache:mainfrom
Theospe:feat/frontend-bet-pilot
Open

feat(frontend): add Bet Pilot dashboard#5110
Theospe wants to merge 1 commit into
apache:mainfrom
Theospe:feat/frontend-bet-pilot

Conversation

@Theospe
Copy link
Copy Markdown

@Theospe Theospe commented May 16, 2026

Closes #5109

Disclaimer

I do not promote gambling or encourage anyone to bet. This came from an overlap between a personal side project and the Texera hackathon happening at the same time: the betting domain gave me messy, real-world data to clean, model, and explain, while Texera gave me a workflow system to organize the pipeline.

Motivation

This started as a very manual loop: I cleaned up Valorant betting data on my PC, pulled together screenshots and line movement, ran model output through local scripts, and then had to inspect the result outside the system that produced it. Texera was already good at expressing the workflow side of that process, but the final output still felt like a pile of files instead of something a person could actually review before placing or rejecting a bet.

This PR turns that pipeline into Bet Pilot, a Texera-backed prototype for taking raw sportsbook/VLR data, model projections, and LLM commentary and turning them into an explorable UI. The workflows do the extraction, OCR parsing, feature engineering, training, prediction, calibration, and diagnostics. Claude + Codex helped shape the frontend that reads those outputs and presents them as betting slips, scouting reports, and bankroll/model-health views.

The goal is not to make Texera a betting product. The goal is to show how Texera can be the workflow layer behind a domain-specific analyst app: raw data goes in, workflows transform it, and the UI exposes the result with enough context to audit the model.

Changes

This PR adds a new Bet Pilot dashboard under the user dashboard routes. The app is intentionally self-contained stand-in data for now, but the screens are wired around the actual workflow IDs imported in this environment:

Workflow Texera ID Role
Bet Pilot · WF-0 Feature engineering #8 Build player/map/team features from cleaned data
Bet Pilot · WF-1 Training set #9 Prepare training examples for the model
valorant_wf2_overview #5 Parse lines, run projections, choose daily picks
Bet Pilot · WF-3 Backtest CLV gate #10 Check whether picks beat closing-line movement
Bet Pilot · WF-4 Calibration refit #11 Refit confidence buckets after results settle
Bet Pilot · WF-5 CLV monitor #12 Track bankroll and performance over time
Bet Pilot · WF-6 Diagnostics #13 Inspect model failure modes

1. Daily bets from parsed model output

The Today screen now reads like the captured Underdog-style winning slips:

Slip Stake Multiplier Payout Picks
2 Champions picks $30 3.49x, boosted from 3.08x $105.20 PatMen Higher 31.5, invy Higher 27.5
2 Champions picks $33 2.97x $97.17 Primmie Higher 38.5, PatMen Higher 31.5

The cards include the same betting-line language as the screenshots, with settled green result states and final actual-kill markers where the result is known.

2. Workflow-aware UI cards

Every major screen has a Show workflow control. Hovering it opens a compact DAG preview with operator/link counts, matching the workflow-preview screenshot, and clicking it opens the real Texera workflow in a new tab. This lets the reviewer move from “why does this screen say this?” directly to the workflow that produced it.

3. Right-side Bet Pilot navigation

The dashboard includes the right-side tab bar shown in the screenshots:

Group Tabs
Live Today’s bets, Lines input, Model health
Reports Scouting report
Performance Bankroll, Calibration log

The bankroll badge now reflects the updated performance story at $574.

4. Lines input and OCR cleanup flow

The Lines Input screen accepts OCR-style sportsbook rows, including aliases like HIGHER and LOWER, then normalizes them into structured pick candidates. This mirrors the PC cleanup workflow: screenshot/OCR output becomes parseable model input instead of hand-entered rows.

5. Scouting report with auditable match links

The scouting report now uses recent Reduxx/Sentinels rows with real VLR links. Clicking a match in the recent-form table opens the associated VLR page, so the analyst can audit the exact match context behind the projection.

The report still shows the full model story: recent form, map probabilities, per-map kill projection, neural residual adjustment, edge score, and LLM commentary.

6. Bankroll curve that matches the settled slips

The bankroll view now climbs from $500.00 to $574.17 over the past 30 days, with visible spikes after the captured boosted wins and smaller pullbacks between them. The stats now show:

Metric Value
Total balance $574.17
Net profit +$74.17
Return +14.8%
Settled bets 22
Record 15 won / 7 lost

Demos / screenshots

The local app is running at http://localhost:4200 against the Docker stack.

The screenshots below are sized with HTML width attributes so the PR stays readable. Tall mobile screenshots are paired side by side; wide desktop screenshots are centered at a consistent width.

Today’s bets — captured winning slips

Underdog winning slip with $30 stake and $105.20 payout
$30 entry · boosted to 3.49x · paid $105.20
Underdog winning slip with $33 stake and $97.17 payout
$33 entry · 2.97x · paid $97.17

Workflow hover — DAG preview

Show workflow hover preview with compact DAG
Hovering Show workflow opens the compact operator/link preview before jumping into Texera.

Workflow click-through — Texera workflow opened

Texera valorant_wf2_overview workflow canvas
Clicking Show workflow opens the imported Texera workflow that produced the screen output.

Right-side navigation

Bet Pilot right-side tab bar with Live Reports and Performance groups
The right-side tab bar keeps live bets, reports, and performance views one click apart.

Scouting report — linked match rows

Scouting report table with VLR match links
Recent-form match rows are clickable and open the source VLR pages for auditability.

Bankroll

Bankroll screen showing $574.17 balance and upward 30-day chart
$574.17 total balance, +$74.17 net profit, and an upward 30-day curve with realistic pullbacks.

Imported workflows

Workflow list showing Bet Pilot WF-0 through WF-6 and valorant_wf2_overview
The imported workflows connect the UI back to Texera: feature engineering, training, daily prediction, CLV, calibration, monitoring, and diagnostics.

Tests

All passing locally:

yarn nx test gui --watch=false --include=src/app/dashboard/component/user/bet-pilot/bet-pilot.service.spec.ts --include=src/app/dashboard/component/user/bet-pilot/screens/bp-lines-input.component.spec.ts
yarn lint
yarn build:ci

Notes from verification:

Check Result
Focused unit tests 8 passed
Lint Passed
Production frontend build Passed with existing Sass/CommonJS/Angular diagnostic warnings elsewhere in the app

Future improvements

  • Replace the stand-in service with real workflow result reads once the output tables/API contract are finalized.
  • Add saved screenshot uploads for line parsing instead of only pasted OCR text.
  • Add a workflow-run status indicator next to each screen so stale model output is obvious.
  • Add richer CLV and bankroll attribution so each spike links back to the exact settled slip.

Model note

I am not going to share the underlying model. This PR is a mockup of what the app looks like when I plug my private model in on my PC. The version shown here is running on my MacBook with stand-in frontend data shaped like the model output.

Generated-by: OpenAI Codex (GPT-5)

@github-actions github-actions Bot added feature frontend Changes related to the frontend GUI labels May 16, 2026
@Theospe Theospe force-pushed the feat/frontend-bet-pilot branch from 381518b to 3510a51 Compare May 16, 2026 18:57
@Theospe Theospe force-pushed the feat/frontend-bet-pilot branch from 3510a51 to a8ce2db Compare May 16, 2026 19:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature frontend Changes related to the frontend GUI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Bet Pilot dashboard prototype

1 participant