Skip to content
MirrorFirm

How are escalation tables and tasks laid out in JSONL and Parquet?

A practical layout: Parquet for wide reference tables, JSONL for events and tasks, with typed schemas and foreign keys so pipelines can load and join without custom parsing.

A release can use two formats, chosen by shape.

**Parquet** suits wide, stable tables: `applications`, `reviewers`, `authority_limits`. Columns are typed, timestamps are UTC, and money fields use a fixed decimal type rather than floats.

**JSONL** suits ordered or nested records:

- `events.jsonl`: one line per state change, with `event_id`, `case_id`, `actor_role`, `status_from`, `status_to`, `occurred_at` - `documents.jsonl`: policy and handover text with `doc_id`, `version`, `body` - `tasks.jsonl`: `task_id`, `instruction`, `initial_state_ref`, `allowed_actions`, `expected_outcome`

**Links.** `events.case_id` joins to `applications.case_id`. `tasks.initial_state_ref` points to a snapshot of the environment. Decisions cite `doc_id` values so rule use can be traced.

**Schema file.** A `schema.json` describes every field, type, nullability and key, with a version that matches the manifest.

**Splits.** A `splits.json` can assign cases to train, validation and test groups, keeping all events for one case in the same group to avoid leakage.

For onward licensing, keep the file names and schema version unchanged in your delivery so buyers' loaders keep working across releases.

Predictable file layouts and keys let your customers load a release into existing pipelines and join tables on the first attempt.

Audience:
Licensed resellers
Content type:
Integration
Buyer question:
What can be generated

Content release: r-a220eb6e099b243b

More on Credit escalation