Local mode, portability, and limits
Crosstabs can complete the deterministic research workflow without an account or hosted AI. This page states exactly what that means, how project packages move, and where the boundaries are.
What works in local mode
- Import CSV, TSV, TXT, XLSX, and supported SPSS .sav files up to 50 MB; parsing occurs in the browser.
- Build crosstabs, filters, recodes, weights, bases, significance tests, multi-banners, tab books, tracker waves, and schema-repair previews locally.
- Save and reopen complete projects in versioned IndexedDB when available, with localStorage as a compatibility fallback.
- Review and edit existing open-end codebooks, approve or reject themes, materialize approved variables, and undo a safe application locally. AI theme discovery itself is hosted and optional.
- Create CSV, XLSX, PDF, PNG, editable PPTX, and editable DOCX outputs in the browser. Selective Office refresh supports Crosstabs-anchored packages, not arbitrary third-party templates.
- Use the product without an account. Turning off or losing AI and cloud-review services does not disable deterministic tabulation, statistics, project storage, or exports.
Portable .ctproj packages
- A full package is canonical, checksummed JSON containing the versioned project graph, every wave and respondent row, schema mappings and repair history, codebooks, evidence-linked findings, AI change plans, audit history, deliverable recipe, branding, and template references.
- A definition-only manifest omits rows, source filenames, category values, open-end response evidence/examples, and schema-repair inverse snapshots. It remains inspectable but cannot restore a working project in this release.
- Import verifies SHA-256 checksums, package format, schema versions, manifest inventory, and the complete migration path before storage is changed. Unsupported or corrupt files fail without returning importable state.
- A verified import is saved under a new local project id and never overwrites a project from the package id. Current-version export/import/export is deterministic except for the documented package creation timestamp.
- Checksums detect changes; they do not authenticate the sender and are not a digital signature. Full and definition-only packages are not encrypted.
- Template entries are references. Local or cloud client-template binaries are not embedded in the package.
Every network boundary
| Capability | Boundary | What crosses it |
|---|---|---|
| Core research workflow | Local | Imported rows, variable metadata, filters, weights, tests, tables, charts, project state, coding review, and exports remain in browser memory or site storage. |
| AI table analysis | Explicit hosted action | A bounded aggregate table context, warnings, filters, weight context, cell coordinates, and the typed question go through Vercel AI Gateway. Source rows and filenames are excluded. |
| AI project planning | Explicit hosted action | Project metadata—variable names/labels/types, definitions, and table settings—goes through Vercel AI Gateway. Respondent rows and datasets are rejected by the route. |
| AI open-end discovery | Explicit hosted action | Only the selected open-end response texts and proposed theme definitions go through Vercel AI Gateway after disclosure. Other columns and files are excluded. |
| Optional cloud review | Explicit full-copy action | When a cloud review service is configured, the disclosure states that a complete review copy can include respondent rows, definitions, codes, and findings. The public deployment does not claim a configured residency or retention contract. |
| Remote MCP connector | Public or explicitly supplied aggregates | The remote connector exposes public methodology and deterministic calculations over aggregate contingency matrices. It has no tool for respondent-row or source-file upload; use the local PyPI/Codex MCP for confidential projects. |
| Analytics and operations | Production metadata | Redacted paths and coarse allowlisted events go to Vercel Web Analytics. Health requests and structured operational logs do not include uploaded files or project packages. |
Storage, security, and retention
- Browser-local projects contain parsed respondent rows. They are not encrypted by Crosstabs, synchronized, backed up, or protected by an account login.
- Projects remain until you delete them, clear site data, use a browser profile that removes storage, or the browser rejects a write because its quota is full. Crosstabs no longer silently evicts an older project to enforce an arbitrary project count.
- Browser storage quotas differ by browser, device, free disk space, and policy. Export important projects before clearing site data or changing device/profile.
- Project-package import reads the complete JSON package into memory before validation. There is no certified package-size maximum; very large packages can fail because of browser memory even when their checksum is valid.
- Definition-only manifests are not general-purpose anonymization. User-authored labels, findings, comments, audit details, and branding remain and may be sensitive.
Formats and unsupported cases
- Supported source formats are CSV, TSV, TXT, XLSX, and supported SPSS .sav variants. Legacy .xls, password-protected/encrypted workbooks, corrupt packages, and one-column files are rejected with a next action.
- Normal source-file import has a 50 MB limit. Capacity after parsing is multidimensional; row count, width, category cardinality, generated cells, tests, memory, and output size can each govern a run.
- A loaded browser tab can continue deterministic work after network loss. Crosstabs does not ship a service worker or promise that a fresh load, refresh, or uncached dependency will work offline.
- Hosted AI, the aggregate-only remote MCP connector, optional shared cloud review, production analytics, and live status require a network. There is no local Gemma or other browser model fallback.
- Hybrid/server execution is only available when a deployment configures it and the user explicitly approves the boundary. The public product does not imply silent server execution.