Data-science workspaces
Inspect profiles, cohort denominators and model errors through runnable examples with explicit data contracts.
Choose the question
| Workspace | Data | Decision |
|---|---|---|
| Dataset explorer | 180 laboratory samples; nullable fields. | Understand missingness, distributions and exact records. |
| Cohort retention | 240 users, repeated events, six unequal cohorts. | Compare exact-month return with an observed cutoff. |
| Model evaluation | 360 binary labels/scores across three segments. | Explore thresholds, confusion counts and individual errors. |
All fixtures are original and deterministic. Quartile is a React library, not a managed notebook, data warehouse, model trainer or experiment registry. The pure calculation helpers live in example source; they are not package exports.
Profiles with an explicit population
The explorer pairs the field profile with linked distributions and category counts and a DataExplorer. Temperature, pressure and duration retain their units. Yield is a zero-to-one fraction displayed as a percent. Missing values remain missing; nothing is silently imputed.
Provide metadata for identifiers, sparse columns, units and dates. Explain whether profile statistics describe the source, a shared selection, or a local table filter. A bounded prefix profile is not a population estimate. The example applies local table search/filters to its profile and charts, then applies shared chart predicates. Bring a file or bounded URL snapshot through Bring your data, or prepare a dataframe using Dataframe and notebook handoff.
Retention: count people once
Month zero is the unique signup cohort and is 100%. Later cells divide unique users active in that exact UTC calendar month by the eligible signup population. Repeated events count once. Matching repeated user identities deduplicate; conflicting cohort/channel identities reject.
retention = unique returning users in the exact age month / unique eligible cohort usersThe exclusive cutoff is October 1, 2026 UTC. Only completed calendar months enter the matrix or denominator. A mature interval with no return is zero; an immature one is omitted. Overall retention sums numerators and denominators per age month, weighting by cohort size instead of averaging percentages.
Explicit cohort/channel and month controls connect the matrix to membership records: Returned, Did not return, or Not yet observed. Heatmap does not publish clicked-cell selection. This is exact-month return, not rolling 30-day or return-on-or-after retention.
retentionByCohort(users, events, cutoff?, maxMonth=5)returns cohort, age month, retained, eligible and ratio.overallRetention(cells)produces the weighted age-month totals.cohortMembership(users, events, month, cutoff?)returns each unique user with eligibility, nullable retained and an explanatory outcome.
Model evaluation: threshold and denominator
The fixture supplies binary labels and finite scores in [0,1]. It is not a trained model. score >= threshold predicts positive, including equality. Segments choose the evaluated population; outcome filters inspect records without silently changing the metric denominator.
| Metric | Definition |
|---|---|
| Precision | TP / (TP + FP) |
| Recall | TP / (TP + FN) |
| F1 | 2TP / (2TP + FP + FN) |
| Accuracy | (TP + TN) / evaluated records |
Undefined denominators return null and display an explained dash. A defined zero stays zero. Confusion counts always sum to the evaluated population. evaluatePredictions(rows, threshold=0.5) returns counts and ratios; predictionRows adds predicted label, outcome and correctness to exact records.
Adapt the workflow
Keep source identity and revision, row grain, unit, timezone, missingness, population and sampling/limit status visible. Reconcile each metric to detail records after filtering. Use existing loading, error, reset and accessibility patterns. Authorize records before they reach the browser.
Continue with Dataframe handoff, AI-assisted analysis or the public science guide.