Reference/UX Verification Plan

UX Verification Plan

This plan verifies the production dashboard from the point of view of an operator who needs to understand the current crypto volatility environment, identify what is driving it, sync Alpha trades into the dashboard, and interpret those trades on the Performance screen.

For the primary operator narrative, start with User Journey. This file is the browser verification checklist for that journey.

Production entry point: Vol Dashboard frontend

Canonical backend: Vol Dashboard backend

Verification Goals

GoalWhat to prove
RoutingEvery primary screen loads from the canonical Cloud Run frontend.
Data source hygieneBrowser requests go to the canonical frontend/backend paths only; no Vercel URLs and no direct Amberdata or Alpha calls.
Number integrityPrice, volatility, flow, futures, probability, and synced-trade metrics render as numbers with correct units or explicit no-data states.
User storyThe user can move from Model to Market Setup, Measurement, and Reference help without losing context.
Helper textCustom analytics, model gates, source-quality states, and aggregate cards expose visible helper copy or hover info.
Operator controlsAdmin actions are protected by server-side proxying and dry-run/sync-diagnostic controls are understandable before any write action.

Browser Setup

  1. Open the production frontend.
  2. Open browser DevTools with Console and Network visible.
  3. Hard refresh the page.
  4. Filter Network by run.app, api, amberdata, alpha, and vercel during the walkthrough.
  5. Treat any uncaught console error, persistent 4xx/5xx, Vercel request, direct Amberdata request, or direct Alpha request as a blocker.

Operator Story

The dashboard is designed as a drill-down journey. The navigation groups the journey by operator question rather than by raw data source.

StageUser questionScreenExpected interpretation
1What is the current thesis?Model ExplorerRead the Decision Summary first, then expand Market Setup, Model Trust, Probability Outcomes, and Alpha Measurement to confirm no underlying signal detail is hidden or dropped.
2What is the market doing right now?OverviewRead spot price, DVol, IV 30d, RV 30d, VRP, and 24h volume to establish the headline volatility regime.
3Is implied vol rich or cheap versus realized vol?OverviewCompare IV, RV, VRP, cones, and DVol history. Positive VRP means implied vol is above realized vol; negative VRP means implied vol is below realized vol.
4Where is the vol surface distorted?OverviewUse smile, moneyness, and term-structure panels to see whether short-dated, long-dated, OTM call, or OTM put vol is leading the move.
5What flow is driving the move?FlowUse options flow, GEX, put-call, and instruments to connect surface moves to actual trading and dealer positioning.
6Is leverage or carry confirming the signal?Futures & CarryCheck funding, basis, OI, and liquidations for leverage pressure or stress.
7What does the market imply about future outcomes?Model Explorer > Probability OutcomesUse density detail, touch probability, and candidate-screen visual detail to translate vol into distributions and levels.
8Are model regimes stable enough to trust?Model Explorer > Model TrustCheck live GEX freshness, stationarity, and alert visual detail. Yellow, stale, unavailable, or unstable states should reduce confidence in regime-conditioned outputs.
9Did our synced trades line up with the opportunity context?PerformanceRead opportunity alignment and source-group quality. Confirm execution and forward outcome cards only display sourced quote/mark results, and that realized P&L stays unavailable until authoritative source data exists.
10Where are source rows and methodology?Trade Book / ReferenceUse Trade Book from Measurement for Alpha sync state and source rows. Use Reference help for methodology, calculation details, runbooks, and diagrams.

Detailed Walkthrough

1. Model Explorer

URL: Model Explorer

Actions:

  1. Select BTC.
  2. Read the Decision Summary headline thesis, agreement, confidence, and source date.
  3. Review the Market Setup, Model Trust, Probability Outcomes, and Alpha Measurement groups in order.
  4. Confirm each group can expand into signal nodes.
  5. Open detailed nodes for Market Setup and Model Trust; confirm inputs, calculations, diagnostics, help text, and source links remain available.

Interpretation:

Model Explorer is the model front door. It should make the current read understandable before the user opens detailed charts. It must not hide missing data: unavailable layers stay unavailable, conditional layers remain gated by stationarity, and detailed nodes remain available.

Pass criteria:

CheckExpected result
Decision summaryHeadline thesis, agreement, confidence, and source date are visible without opening details.
Tree groupsMarket Setup, Model Trust, Probability Outcomes, and Alpha Measurement are visually distinct.
Detail preservationExpanded nodes expose underlying inputs, calculations, diagnostics, and source quality.
Source linksDetailed nodes link back to the source page where available.
MobileStory order remains readable and cards do not overlap.
Helper affordancesStory group labels, source-quality dots, and detailed signal cards expose explanatory hover/help text.

2. Overview

URL: Overview

Actions:

  1. Select BTC and 24h.
  2. Confirm the top cards load: price, DVol, IV 30d, RV 30d, VRP, and volume 24h.
  3. Switch to 7d, 30d, and 90d; confirm charts and cards update or show explicit no-data states.
  4. Switch assets to ETH and SOL; confirm numbers refresh and stale BTC values are not retained.
  5. Review volatility surface, term structure, IV/RV history, cones, DVol, vol-of-vol, and seasonality/correlation panels.

Interpretation:

The Overview page answers whether the market is currently high-vol or low-vol, whether implied volatility is expensive versus realized volatility, and where the volatility surface is shaped abnormally. This is the starting screen because it frames every later decision.

Pass criteria:

CheckExpected result
Top cardsNumbers render with sensible formatting, or a clear dash/no-data state when the source is unavailable.
VRPDisplay is consistent with IV minus RV in volatility points.
Time range controlsData updates without console errors.
Asset controlsAsset-specific values update without retaining stale values.
NetworkRequests go through Cloud Run frontend/backend only.

3. Flow

URL: Flow

Actions:

  1. Keep BTC selected first.
  2. Confirm options flow, decorated trades, GEX, put-call, option chain, and instrument panels load.
  3. Change the asset and range controls where available.
  4. Check that empty trade buckets render as empty states, not broken charts.

Interpretation:

The Flow page explains whether actual options trading supports the volatility story from Overview. Put-call balance, top trades, and GEX help explain whether the market is buying protection, chasing upside, or sitting near dealer-sensitive levels.

Pass criteria:

CheckExpected result
Flow panelsEither populated rows/charts or explicit no-data messages.
GEXValues use a consistent sign convention and do not show impossible formatted numbers.
Option chainExpiry, strike, IV, bid/ask, and volume fields are aligned with the selected asset.
ConsoleNo uncaught render or fetch errors.

4. Futures

URL: Futures

Actions:

  1. Review funding rate, accumulated funding, basis, basis term structure, open interest, and liquidations.
  2. Change asset and period controls.
  3. Look for discontinuities or impossible units after switching assets.

Interpretation:

The Futures page checks whether leverage and carry confirm or contradict the volatility signal. High positive funding or basis can point to crowded longs; negative funding, liquidations, or falling OI can point to stress or deleveraging.

Pass criteria:

CheckExpected result
Funding/basisPercentage and annualized values are labelled consistently.
OI/liquidationsLarge numbers are formatted clearly and not mixed with percentages.
Asset switchesValues update and loading states clear.

5. Yields

URL: Yields

Actions:

  1. Review the purpose panel, option yield table, and futures basis APR chart.
  2. Confirm option rows show readable DTE derived from expiry/timestamp when the source omits explicit DTE.
  3. Confirm missing DTE or missing yield fields are explicit rather than silently zeroed.
  4. Confirm annualized yield, absolute yield, strategy, and premium are labelled clearly.
  5. Confirm Delta and IV columns are hidden when the source has no usable values, rather than showing empty placeholder columns.
  6. Confirm the basis chart remains readable when one APR outlier exists and that clipped outliers are listed explicitly.

Interpretation:

The Yields page translates option premium and futures basis into carry-style context. It should help an operator build a shortlist for further review. It does not recommend trades: high annualized yield can come from short DTE, far out-of-the-money strikes, stale marks, or genuine premium richness.

Pass criteria:

CheckExpected result
Yield fieldsUnits are clear, DTE is derived when possible, and zero is not used as a placeholder for missing data.
ControlsInputs update the result or show a clear no-result message.
Basis outliersExtreme APR values do not flatten the chart without explanation; clipped values remain visible in tooltip/outlier text.

6. Model Diagnostics

URL: Model Diagnostics

Actions:

  1. Review gamma analytics, live GEX magnet/repeller levels, spot-vol dynamics, smile tracking, volatility heatmap, regime stationarity, and alert signals.
  2. Confirm live GEX magnet/repeller levels show source status, as-of time, age, live row count, and strike count.
  3. In the stationarity panel, check Stable, Unstable, Insufficient, p-values, mean shift, and blend weight.
  4. Use alert refresh in dry-run mode first.
  5. If testing Slack dispatch, disable dry run only after confirming the alert content is acceptable.

Interpretation:

Model Diagnostics turns the raw market state into model and monitoring context. Stationarity tells the user whether regime-conditioned relationships are stable enough to trust; alerts identify notable conditions that may require action or investigation.

Pass criteria:

CheckExpected result
StationarityUnstable states are clearly labelled and do not pretend to be reliable.
Blend weightLower confidence regimes reduce model weight rather than hiding uncertainty.
AlertsDry run reports attempted/sent counts without needing Slack.
Real dispatchSlack send succeeds only when configured and intentionally tested.

7. Probability

URL: Probability

Actions:

  1. Review current state, implied density, conditional density, touch probability, and candidate-screen sections.
  2. Change asset/range inputs where available.
  3. Confirm probability values stay within valid bounds and charts do not show impossible densities.

Interpretation:

The Probability page converts options-implied volatility into market-implied outcomes. The user should use it after Overview and Flow, because probabilities are easier to interpret after understanding the vol surface and flow context. Conditional probability views use stored gex_hourly regime history; they should not be read as the same signal as the live Model Diagnostics magnet/repeller strike levels.

Pass criteria:

CheckExpected result
Probability valuesValues are between 0 and 100 percent where displayed as percentages.
Density chartsNo negative probabilities or malformed axes.
Regime contextConditional outputs are interpreted alongside stationarity status.
Candidate screenEmpty states explain filter coverage and do not appear as raw failed-fetch errors.

8. Trade Book

URL: Trade Book

Actions:

  1. Confirm Alpha sync state loads and shows configured portfolios.
  2. Run an incremental preview/dry run.
  3. Run a full-scope diagnostic dry run only when checking sync completeness, unless intentionally performing a write sync.
  4. Confirm source/cache counts, source/cache quantity, source/cache premium, deltas, and unmatched IDs as ingestion diagnostics.
  5. Review the synced trade table.
  6. Confirm the page has no manual trade-entry or CSV-upload controls.

Interpretation:

The Trade Book page is the bridge from public market context to synced Alpha rows. It confirms that the selected feed scope is loaded and ready for downstream interpretation, but it is not the analytical objective of the workflow.

Pass criteria:

CheckExpected result
Alpha stateConfig is loaded server-side; the browser never sees the API key.
Full-scope diagnostic dry runSync-completeness diagnostics are clean, or discrepancies are explicitly listed before Performance is interpreted.
Pending tradesDefault scope excludes pending trades unless the configured mode intentionally includes them.
Read-only UIManual entry and CSV upload controls are absent.

9. Performance

URL: Performance

Actions:

  1. Confirm the page loads after the Alpha feed has synced cleanly.
  2. Use the default 365d / All filters first.
  3. Confirm Opportunity Context shows the loaded sample as scored.
  4. Confirm Opportunity Source Groups show available, partial, or unavailable states by group.
  5. Confirm "Did we trade the opportunity?" shows an alignment score and label.
  6. Confirm "Did we execute well?" either shows sourced quoted benchmark results or says not benchmarked/stale/unavailable, not zero slippage.
  7. Confirm "Did it work?" either shows sourced forward-mark P&L or says pending/unavailable, not zero P&L.
  8. Confirm Realized P&L Source says not sourced yet, not a derived cashflow total.
  9. Confirm 7d states separate pending horizons from unavailable matured horizons.
  10. Filter by IMST, ICOI, MSTR, and COIN where available and confirm the same source-quality rules hold.

Interpretation:

The Performance page answers whether synced Alpha trades aligned with available dashboard opportunity context. It only answers whether execution was good or post-trade P&L was positive for rows with sourced quote/mark inputs. It does not answer realized P&L profitability until authoritative accounting or validated lifecycle data exists. This distinction is a pass condition, not a defect.

Pass criteria:

CheckExpected result
Opportunity alignmentScore, label distribution, drivers, and detractors render for scored trades.
Source groupsGEX/gamma, vol metrics, term structure, liquidity, stationarity, and smile show explicit quality states.
Execution qualityFill-vs-mid appears only for sourced quoted benchmark rows; missing/stale rows are not displayed as zero slippage.
Forward outcomesSourced marks can display P&L; missing marks are unavailable and immature horizons are pending. Neither state is displayed as zero.
Realized P&LNo derived FIFO cashflow appears as realized P&L. The UI states that authoritative realized P&L is not sourced yet.
Trade drilldownRows show source IDs, alignment scores, and outcome states clearly enough to investigate a surprising aggregate.

Cross-Screen Checks

AreaExpected result
Loading statesSpinners clear; stale data is not shown as fresh data after an asset/range switch.
Error statesErrors are specific enough to indicate source/config problems.
UnitsCurrency, percent, volatility points, bps, contracts, and USD notional are not mixed.
FormattingLarge values use separators; percentages preserve meaningful precision.
SecurityNo API key, admin secret, Slack webhook, or Alpha credential appears in page source, JS bundles, logs, or network request payloads.
Deployment hygieneNo request or link points to Vercel.

Sign-Off Checklist

StepPass conditionResult
Model Explorer journeyDecision summary, expandable evidence, diagnostics, visual detail, help text, and source links are readable.Pending
Overview journeyHeadline market state is clear for BTC, ETH, and SOL.Pending
Flow journeyOptions activity and positioning explain or challenge the Overview signal.Pending
Futures journeyLeverage/carry context is readable and correctly formatted.Pending
Yields journeyYield/carry values are explicit and no-data states are honest.Pending
Model Trust visual detailRegime confidence, stationarity, live GEX freshness, and alerts are interpretable inside Model Explorer.Pending
Probability visual detailImplied outcomes are bounded and contextualized by regime quality inside Model Explorer.Pending
Trade Book journeyAlpha sync controls show the selected feed scope is loaded and ready for Performance interpretation.Pending
Performance journeyOpportunity alignment is readable and unsourced execution/outcome/P&L metrics remain explicit no-data states.Pending
Security/networkOnly Cloud Run frontend/backend requests are used; no secrets are exposed.Pending
Console/networkNo unresolved console errors or unexpected 4xx/5xx responses remain.Pending

Final Acceptance Statement

The phase is signed off when an operator can start at Model Explorer, explain the current thesis, drill into market setup and futures drivers, translate the market state into probabilities, check model stability, read Performance as opportunity-alignment analytics, and use Trade Book/Reference for source rows and methodology with clear source-quality boundaries, without seeing stale values, hidden errors, exposed credentials, fake zeros, or non-Cloud Run deployment paths.