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, unweighted tests, preserved weight candidates, supported saved survey designs, bases, multi-banners, tab books, tracker waves, and schema-repair previews locally.
  • Save and reopen complete projects in versioned IndexedDB when available. The per-project localStorage v3 compatibility fallback requires native Web Locks and fails closed before project state is read or written when that authority is absent.
  • Review and edit existing open-end codebooks, approve or reject themes, materialize approved variables, and undo a safe application locally. Crosstabs.com does not send response text to a hosted theme-discovery model.
  • 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. Deterministic tabulation, statistics, project storage, and exports do not depend on a hosted project or AI service.

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.
  • The workspace startup selector accepts between 1 and 10 external .ctproj files that you explicitly choose. It rejects more than 50 MiB of aggregate declared source bytes before content is read, then streams and strictly verifies each file in input order; exact size matching keeps aggregate verified source bytes within the same 50 MiB limit.
  • Inspection does not change project storage. After inspection, you must explicitly select one verified full package; restore saves it as a fresh local copy. Definition-only, duplicate, unsupported, corrupt, or checksum-mismatched candidates cannot be selected.
  • Strict inspection verifies SHA-256 consistency, 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.
  • The release matrix is configured to exercise that verify/import journey independently in Chromium, Firefox, and WebKit. The current candidate passed locally; exact-revision CI evidence remains pending, and no cross-engine package transfer is claimed.
  • Focused unit, component, and startup-flow tests for the bounded multi-file selector are local candidate evidence until they pass on the exact release revision.
  • 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. Client-template binaries held outside the project are not embedded in the package.

Every network boundary

CapabilityBoundaryWhat crosses it
Core research workflowLocalImported rows, variable metadata, filters, weight candidates, supported saved survey designs, tests, tables, charts, project state, coding review, and exports remain in browser memory or site storage.
Local AI and agent workflowsUser-run local MCPThe optional local MCP package lets an AI or agent operate on files and projects inside the user's local process. Crosstabs.com does not host the model, prompt, rows, or project.
Remote MCP connectorPublic or explicitly supplied aggregatesThe 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 operationsProduction metadataRedacted paths and coarse allowlisted events go to Vercel Web Analytics; redacted paths and Web Vitals go to Speed Insights. 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.
  • A downloaded restore point contains the current committed project. The startup selector lets you inspect and choose among external files that you already hold; it is not an automatic history of versions retained by Crosstabs.
  • The startup selector does not scan a directory, retain file handles, discover backups automatically, replace an existing project in place, or expose a selectable internal version timeline. This bounded path does not by itself certify or replace every legacy single-file import surface.
  • Full restore-point files contain respondent rows and are not encrypted. Definition-only files can retain authored labels, findings, comments, audit details, and branding; they are not general-purpose anonymization, and either package type 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.
  • Crosstabs does not offer hosted AI or cloud project execution. The aggregate-only remote MCP connector, production analytics, and live status require a network; confidential project workflows belong in the browser or local MCP.
  • There is no silent server fallback. When a table is beyond the published browser limit, Crosstabs asks you to reduce it instead of uploading the project.