Capacity and workload envelope
Crosstabs does not reduce capacity to a single row limit. The safe workload depends on respondents, width, category shape, table-book output, statistical-test fan-out, memory, execution mode, and the device running it.
How the planner decides
- Direct browser planning covers up to 100,000 respondents when the other dimensions remain within budget.
- From 100,000 to 500,000 respondents, the planner selects bounded local browser-worker execution with progress and cancellation.
- Above 500,000 respondents, or for server-dependent methods, a full run requires an explicitly configured and approved hybrid runtime. Without it, Crosstabs blocks the full run or offers only a clearly labelled preview.
- One table is blocked above 100,000 generated cells or when its row/column category budgets are exceeded. No respondent rows are silently truncated.
- A tab book above 100,000 combined generated cells is batched and paginated even when each individual table is safe.
Versioned release scenarios · 2026-08-10.1
| Scenario | Boundary | Expected decision | Automated evidence |
|---|---|---|---|
| interactive browser | 50,000 respondents × 40 variables; 20 × 8 table; one table | run | Planner and direct crosstab regression tests |
| local worker | 300,000 respondents × 60 variables; bounded aggregate result | warn | Worker routing, progress, and cancellation tests |
| hybrid kernel | 1,000,000 generated respondents; 20 aggregate cells | hybrid | One-million-row bounded streaming kernel stress test |
| high cardinality block | 1,000 × 1,000 categories; 1,000,000 requested cells | block | Pre-allocation cardinality rejection and memory test |
| large tab book | 400 safe tables; 160,000 generated cells; 18,000 test comparisons | paginate | Multidimensional planner regression test |
| cancellation | Cancellation callback checked before every streamed row | warn | Streaming cancellation regression test |
Measured release gates
These are automated thresholds in the release test environment, not promises for every browser or device. Actual latency and memory vary with file representation, browser, hardware, filters, weights, and the selected statistics.
| Workload | Fixture | Release gate |
|---|---|---|
| Bounded streaming kernel | 1,000,000 generated respondents · 20 cells | Completes under 12 s; aggregate estimate under 8 MiB; process heap delta under 96 MiB |
| High-cardinality rows | 50,000 row levels × 2 columns | Lossless result under 5 s; process heap delta under 192 MiB |
| Weighted direct table | 250,000 respondents · 4 × 3 cells | Completes under 5 s with the expected weighted base |
| Unsafe dense shape | 1,000 × 1,000 requested cells | Rejected before dense allocation under 500 ms; process heap delta under 64 MiB |
| Cancellation | 10,000-row streaming fixture | Stops before completion and returns an explicit cancelled status |
Outcome Studio domain qualification
The release suite does not rely on the employee-engagement demo. It generates deterministic, upload-driven research fixtures, checks their statistical contracts in the engine, and repeats the journeys through the real CSV parser and workspace UI. The values below are qualification fixtures, not customer datasets or claims about every possible file.
| Use case | Deterministic fixture | Release evidence |
|---|---|---|
| Subscription churn | 1,200 rows · mixed numeric/categorical | Successful held-out model, expected churn signal, saved review and reload |
| Customer NPS | 960 rows · repeated weights from 0.05 to 12 | Weighted holdout, mixed drivers, observed segments and bounded clusters |
| Brand tracker | 1,200 rows · 3 waves · weighted | Wave and campaign fields retained without treating association as causation |
| Concept test | 1,050 rows · concepts, ratings and price response | Mixed-field drivers, scenarios, synthetic separation and mobile workflow |
| Care outcomes | 900 simulated rows · missing predictors · zero/negative weights | Successful model with every excluded row and reason disclosed |
| No-signal control | 800 balanced rows | Holdout AUC remains near chance and no investigation is fabricated |
| Rare outcome | 600 rows · 20 positive events | Blocked before fitting by the 25-event/non-event safeguard |
| High-cardinality ID | 900 rows · 900 unique account IDs | Identifier unavailable in the driver picker; safe fields still run |
| Large outcome workload | 20,000 rows · all-row holdout scoring | All eligible rows scored; quadratic cluster diagnostics sampled at 1,500 |
- The browser journey covers upload, explicit outcome and success selection, exact driver selection, survey weights where applicable, guarded fitting, holdout evidence, observed segments, modeled scenarios, synthetic-evidence separation, human review, project reload, phone-width layout, and automated accessibility checks.
- The current measured Outcome Studio release fixture is 20,000 rows. This is not a universal maximum: the input file still has a 50 MB limit, and practical capacity depends on browser memory, file width, missingness, field cardinality, and device hardware.
- Outcome Studio accepts at most 8 selected predictors and 40 encoded terms. A categorical predictor above 20 levels is blocked, likely identifiers are removed from the picker, and exploratory clustering is capped at a deterministic 1,500 observed rows.
- Qualification does not establish causal effects, prospective accuracy, fairness across protected groups, complex-survey variance validity, survival/time-to-event support, or a true multiclass model. The selected success value is modeled against all other values.
What can still limit a project
- Input size and browser storage can fail before row count does, especially for very wide files or long open-ended text.
- A low-row dataset can still be unsafe when category combinations create too many cells or significance comparisons.
- Large table books are scheduled and rendered in batches; browser display is not an attempt to hold every native table at once.
- Cancellation is cooperative. The streaming kernel checks before each row; browser parsing, Office generation, and third-party libraries may stop at different safe boundaries.
- Hybrid execution is capability-gated at runtime. The public page does not imply that a particular deployment has a configured server data plane.