Metrics #

URL: /metrics

The Metrics view answers fleet-level questions across all runs in the index. Six tabs share one filter bar: Yield, Pareto, Cpk, Retest, Time loss, Assets.

Filter bar #

Metrics — filter bar

ControlWhat it filtersNotes
PhaseTest phase (development, validation, characterization, production)Multi-select. Defaults to "all phases except development" — set it explicitly to include dev runs.
ProductDUT part numberMulti-select. Populated from runs in the index.
StationStation hostnameMulti-select. Populated from runs in the index.
Lot (optional)Lot identifierFree-text. Leave blank for all.
Since (optional)Earliest run start, YYYY-MM-DDDate picker, or type the date directly.
Until (optional)Latest run start, YYYY-MM-DDDate picker, or type directly.
RefreshForce a re-fetch of the active tabFilter changes already re-fetch automatically; use Refresh only to pick up new runs that arrived while the page was open, or when the live event subscription isn't running.

All filters apply to every tab except Assets, which is keyed by instrument role + resource rather than by run context.

The active tab fetches its data once and caches the result. Switching to a tab you've already loaded reuses the cached result; changing any filter clears all caches so every tab re-fetches on next visit.

Tabs #

The filter bar is shared. Each tab below shows a different lens on the same filtered set of runs.

Yield #

Metrics — Yield tab

The default landing tab. Three blocks stacked vertically.

Summary cards (top row, 4 cards):

CardMeaning
First Pass YieldPercentage of DUT serials that passed on their first run
Final YieldPercentage of DUT serials that ultimately passed (first run or any retest)
Total RunsRun count in the filtered window
Total FailuresRun count with outcome Failed only. Errored runs are tracked separately under Time loss; they don't roll into this count.

Yield Trend Over Time — line chart of yield percentage bucketed by day. The window's resolution is always daily; longer ranges show more daily points, not a coarser bucket.

Test Time Statistics — 4 cards summarising per-run duration: Average, Minimum, Maximum, P95.

Pareto #

Metrics — Pareto tab

Bar chart of failure counts grouped by one of three lenses selectable via the Group by dropdown above the chart (URL parameter: pareto_group):

GroupBars show
ProductMost-failing DUT part numbers
StepMost-failing test / step names across the filtered runs
MeasurementTop 15 measurements with the most failures. Limited to limit-bearing measurements. Bars are labelled step_name: measurement_name so the same measurement name under different steps shows as distinct bars.

The leftmost bar is the biggest single contributor to lost yield.

Cpk #

Metrics — Cpk tab

Process Capability index per measurement — how much margin each measurement has against its limits. Top 15 measurements ranked by Cpk ascending (worst Cpk first, so the table opens on what needs attention).

ColumnWhat it shows
MeasurementMeasurement name
CpkCpk value. Color-coded: green ≥ 1.33, orange ≥ 1.00, red < 1.00. N/A (grey) when Cpk can't be computed — typically zero variance across samples, or no limits configured on the measurement.
MeanSample mean
σ (sigma)Sample standard deviation
nSample count

A measurement that doesn't appear in this table either has no limits configured or has fewer than 10 samples in the filtered window (the minimum-sample threshold for Cpk calculation).

Retest #

Bar chart + table of retest activity per daily period:

ColumnWhat it shows
PeriodDaily bucket
SerialsDistinct DUT serials tested in the day
RetestedDUT serials that ran more than once
RateRetested / Serials as a percentage
Avg retriesMean number of retries (executions − 1) across all DUTs in the day. A day where every DUT ran once shows 0.00; a day where some DUTs ran twice or more shows a fractional value.

When no rows exist, the tab shows a message about how retest data is populated.

Time loss #

Stacked-bar chart + table of wall-clock time spent per daily period, split by outcome:

ColumnWhat it shows
PeriodDaily bucket
Total (s)Total wall-clock test time in the day
Pass (s)Time spent on passing runs
Fail (s)Time spent on failed runs
Error (s)Time spent on errored runs

The chart's stacked bars use green / red / amber for pass / fail / error.

Assets #

Per-instrument utilization across the selected date window. Phase / Product / Station filters don't apply here — instruments are keyed by role + resource, not by run context.

ColumnWhat it shows
RoleInstrument role (e.g. dmm, psu)
ResourceVISA / SCPI / serial resource string
SessionsDistinct connect-to-disconnect intervals in the window
Connected (s)Total seconds the instrument was connected
SharePercentage of total instrument-connected time in the window

A blank Since means "no lower bound" — Litmus uses every event it has. A blank Until means "up to right now."

When the window is empty (no instrument lifecycle events recorded), the tab shows a message about how the data is populated.

Bookmarkable URL state #

Every filter and the active tab serialize to query parameters, so a URL captures the exact view:

ParameterMeaning
phaseRepeat for each selected phase: ?phase=production&phase=validation
productRepeat per selected product
stationRepeat per selected station
lotLot filter value
since, untilDate range, YYYY-MM-DD
tabYield (default), Pareto, Cpk, Retest, Time loss, or Assets
pareto_groupproduct, step, or measurement (only meaningful on the Pareto tab)

Sharing a Cpk URL with the Pareto group set has no effect — irrelevant parameters are ignored by tabs that don't use them.

Underlying data #

The page reads from the same runs / measurements index as the Results list, with per-tab aggregation queries running on demand when the tab loads. When a run finishes, the page picks up the new data automatically (it watches for run.ended) — no Refresh needed.

CLI equivalents per tab, all accepting the same filter flags (--phase, --product, --station, --since, --until, --lot) and --json for machine-readable output:

TabCLI
Yield (cards + Test Time Statistics)litmus metrics summary
Yield Trend Over Time chartlitmus metrics trend
Paretolitmus metrics pareto
Cpklitmus metrics cpk
Retestlitmus metrics retest
Time losslitmus metrics time-loss
Assets(no CLI equivalent yet)

The same queries are available as Python classes in the analysis module — useful for embedding metrics into a notebook or a custom report.

Common tasks #

  • Find the dominant failure mode — Pareto tab, set Group by to Step, then Measurement. The leftmost bar is the biggest single source of failures.
  • Spot a measurement riding the limit — Cpk tab, scan for orange or red chips (Cpk < 1.33). Note the measurement name, then open the Results list, drill into a recent run, and search the Measurements tab for that name to see the actual values. (The Cpk table itself doesn't link out.)
  • Justify a new station — Time loss tab, sum the fail + error columns over the last month. Compare with the cost of operator rework.
  • Share an investigation snapshot — set the filters, copy the URL, paste it into a chat or ticket. The recipient sees the same view.

See also #