Skip to content
MirrorFirm

What schema and file layout could an approval dataset use?

A proposed layout of Parquet tables, JSONL event logs and versioned policy files, with the identifier links that let a loader join requests, grants, limits and decisions.

A dataset could be delivered as linked tables so a loader can join them on identifiers. A practical layout is:

- `roles.parquet`: `role_id`, `title`, `parent_role_id`, `cost_centre_id` - `authority_limits.parquet`: `limit_id`, `role_id`, `category`, `risk_class`, `max_amount`, `requires_second_approver`, `policy_version` - `delegations.parquet`: `delegation_id`, `from_role_id`, `to_role_id`, `scope`, `max_amount`, `valid_from`, `valid_to`, `revoked_at` - `availability.parquet`: `role_id`, `start`, `end`, `reason` - `requests.jsonl`: `request_id`, `requester_role_id`, `category`, `amount`, `risk_class`, `submitted_at`, `document_refs` - `approval_events.jsonl`: one line per routing, decision or escalation - `policies/`: Markdown files with front matter giving `policy_version` and `effective_from`

An event line could look like this:

`{"event_id":"EVT-90412","request_id":"PO-3318","approver_role_id":"R-FINMGR","delegation_id":"DELEG-0112","decision":"approved","policy_version":"PROC-4.2","ts":"2026-03-04T09:12:00+11:00"}`

The links that matter are `request_id` to events, `delegation_id` to the grant that justified the decision, and `policy_version` to the document in force. A separate labels file can hold the expected approver, reason code and valid-or-invalid flag, kept out of model-visible inputs. Timestamps carry an offset so leave and effective dates resolve in the right timezone. Buyers can ask for Parquet, JSONL or both, and for a data dictionary describing every field.

Linked tables with explicit identifiers let your team join, recompute and audit every decision instead of trusting labels.

Audience:
Model labs
Content type:
Integration
Buyer question:
What can be generated

Content release: r-a220eb6e099b243b

More on Delegated approval