Start with the exports you already have.

Coming soon

Your systems already hold the records. Declare what their columns mean, then bring work objects, activities, times and people into one analysis. The Engine includes 114 contracts for 23 system families and 8 file formats.

jira:
  # The trace is the immutable issue id;
  # the issue key changes when an
  # issue moves project.
  column_map:
    trace_id: [issueId]
    start_ts: [started]
    employee_id: [author.accountId]
    work_time_sec: [timeSpentSeconds]
  # …
  system_family: jira
  unmapped_columns: {policy: warn}
One of the contracts, abridged

01 / Systems

Connect your systems with explicit mappings.

A contract defines the expected columns and their meaning. The Engine checks the export against that definition before calculating results.

79 contracts follow published vendor documentation. For 22, the format comes from secondary sources or recall. Another 10 use layouts declared by the project, and 3 use vendor-neutral layouts. Each has a test fixture; vendor endorsement is not implied.

Case and service
ServiceNow, Zendesk, Salesforce, HubSpot, Pega, Microsoft Dynamics 365
Engineering and projects
Jira, GitHub, GitLab, Linear, Asana, Figma
ERP and manufacturing
SAP, Odoo, ERPNext, Frappe
Messaging and approvals
Slack, DingTalk, WeCom
Workforce time
Microsoft Teams Shifts, Genesys Cloud, NICE CXone IEX, Pega Workforce Intelligence

Formats

  • CSV
  • TSV
  • Excel
  • JSON
  • JSON Lines
  • Parquet
  • SQLite
  • XES

02 / Columns

What your export needs.

Work object, step order, activity and start time give paths and lead time. An end time adds waits and processing time. A person and team add handovers and role checks. A due date adds on-time share and forecast risk.

Field by field, and five checks before you run

Declare event order with a step number or sequence column; timestamps do not substitute for order.

03 / Exceptions

Know exactly what was rejected.

Missing required columns prevent admission of the affected source; a required source blocks the run. Unmapped headers trigger warnings. Rejected rows identify their source file, row number and reason, and stay out of every number.

The four cases and what to do

04 / Your system

Connect your next data source.

A different column name often needs only a YAML change. A new format may need custom engineering. Send us a synthetic sample so we can define the connection.

How we build new contracts Tell us which export you have Change a contract yourself Prepare your event log first

Check a specific export against its contract.

A vendor name alone does not identify the rows your system exports. Check the file’s fields, select the declared contract and review the validation result.