Req Room

Agent trace

Evidence is computed from checks that ran against a candidate mapping — it is never self-reported by the model. A hard check (solid, colored) is real ground truth: failing one means the mapping IS wrong. A heuristic check (dashed, muted) is plausibility only: passing one means nothing, and never promotes a column to hard evidence on its own.

hris

NOT REPLAYABLE — a required field is left uncovered by escalation

This is the correct, honest outcome, not a bug: at least one escalated column was the only candidate for a required canonical field, so applyMapping cannot produce ledger records from this artifact until a human resolves the escalation(s) below.

entity "person" is missing required field "personId" (person.personId): it was neither mapped by an active mapping entry nor supplied by a declared constant. An artifact that cannot cover its required fields is not replayable — resolve this mapping before freezing it.

Final mapping

Source columnCanonical fieldEvidenceEscalated
employee_idperson.personIdheuristic onlyyes — needs a human
cost_centerperson.costCenterIdhard evidenceno
job_levelperson.levelhard evidenceno
locationperson.geohard evidenceno
fte_pctperson.fteheuristic onlyyes — needs a human
start_dateperson.validFromheuristic onlyyes — needs a human
employment_typeperson.employmentTypehard evidenceno

Hypotheses (1)

iteration 0 accepted

Hard checks — ground truth

  • schema PASSall rows parse
  • referential-integrity [cost_center] PASSall cost centres join
  • control-total PASSapproved FTE reconciles against known totals
  • domain-membership [cost_center] PASSall values are members of the known domain
  • domain-membership [job_level] PASSall values are members of the known domain
  • domain-membership [location] PASSall values are members of the known domain
  • domain-membership [employment_type] PASSall values are members of the known domain

Heuristic checks — plausibility only

  • type-plausibility [employee_id] PASSstring is plausible for string
  • type-plausibility [cost_center] PASSstring is plausible for string
  • type-plausibility [job_level] PASSstring is plausible for string
  • type-plausibility [location] PASSstring is plausible for string
  • type-plausibility [fte_pct] PASSnumber is plausible for number
  • type-plausibility [start_date] PASSdate is plausible for date
  • type-plausibility [employment_type] PASSstring is plausible for enum
  • enum-cardinality [employment_type] PASScardinality 1 vs 4 allowed values

Escalations (3)

  • employee_idperson.personId

    Cardinality equals total row count (254/254), a per-row unique identifier string — the natural key for person. — escalated: only heuristic evidence supports this mapping

  • fte_pctperson.fte

    Numeric, bounded 0.5-1.0, matches person.fte's expected fractional full-time-equivalent range. — escalated: only heuristic evidence supports this mapping

  • start_dateperson.validFrom

    Genuinely per-row date (240 distinct values across 254 rows), not a uniform export timestamp — this is the employee's own valid-from date, which person.validFrom is meant to capture as a real per-row fact. — escalated: only heuristic evidence supports this mapping

ats

NOT REPLAYABLE — a required field is left uncovered by escalation

This is the correct, honest outcome, not a bug: at least one escalated column was the only candidate for a required canonical field, so applyMapping cannot produce ledger records from this artifact until a human resolves the escalation(s) below.

entity "req" is missing required field "reqId" (req.reqId): it was neither mapped by an active mapping entry nor supplied by a declared constant. An artifact that cannot cover its required fields is not replayable — resolve this mapping before freezing it.

Final mapping

Source columnCanonical fieldEvidenceEscalated
req_idreq.reqIdheuristic onlyyes — needs a human
statusreq.statehard evidenceno
teamreq.orgIdhard evidenceno
levelreq.levelhard evidenceno
accepted_on(no canonical home)noneyes — needs a human
expected_startreq.expectedStartheuristic onlyyes — needs a human

Hypotheses (1)

iteration 0 accepted

Hard checks — ground truth

  • schema PASSall rows parse
  • control-total PASSapproved FTE reconciles against known totals
  • domain-membership [status] PASSall values are members of the known domain
  • domain-membership [team] PASSall values are members of the known domain
  • domain-membership [level] PASSall values are members of the known domain

Heuristic checks — plausibility only

  • type-plausibility [req_id] PASSstring is plausible for string
  • type-plausibility [status] PASSstring is plausible for enum
  • enum-cardinality [status] PASScardinality 5 vs 5 allowed values
  • type-plausibility [team] PASSstring is plausible for string
  • type-plausibility [level] PASSstring is plausible for string
  • type-plausibility [expected_start] PASSdate is plausible for date

Escalations (3)

  • req_idreq.reqId

    Cardinality 11 == total 11 (unique per row), values 'REQ-5001' etc. are the natural requisition identifier. — escalated: only heuristic evidence supports this mapping

  • accepted_on(no canonical home)

    Represents the date an offer was accepted, but there is no req.acceptedDate (or equivalent) in the canonical schema — only req.expectedStart exists, which is a distinct concept (planned start date, not acceptance date). Forcing this onto expectedStart would conflate two different dates, so it is left unmapped.

  • expected_startreq.expectedStart

    Per-row date values matching the name and semantics of req.expectedStart (planned start date for the role). — escalated: only heuristic evidence supports this mapping

anaplan

NOT REPLAYABLE — a required field is left uncovered by escalation

This is the correct, honest outcome, not a bug: at least one escalated column was the only candidate for a required canonical field, so applyMapping cannot produce ledger records from this artifact until a human resolves the escalation(s) below.

entity "approved_plan" is missing required field "fiscalPeriod" (approved_plan.fiscalPeriod): it was neither mapped by an active mapping entry nor supplied by a declared constant. An artifact that cannot cover its required fields is not replayable — resolve this mapping before freezing it.

Final mapping

Source columnCanonical fieldEvidenceEscalated
CCapproved_plan.costCenterIdhard evidenceno
Orgapproved_plan.orgIdhard evidenceno
Fiscalapproved_plan.fiscalPeriodheuristic onlyyes — needs a human
Hdctapproved_plan.requestedFteheuristic onlyyes — needs a human
Approved FTEapproved_plan.approvedFtehard evidenceno
Contractors Incl(no canonical home)noneyes — needs a human

Hypotheses (1)

iteration 0 accepted

Hard checks — ground truth

  • schema PASSall rows parse
  • referential-integrity [CC] PASSall cost centres join
  • control-total PASSapproved FTE reconciles against known totals
  • domain-membership [CC] PASSall values are members of the known domain
  • domain-membership [Org] PASSall values are members of the known domain

Heuristic checks — plausibility only

  • type-plausibility [CC] PASSstring is plausible for string
  • type-plausibility [Org] PASSstring is plausible for string
  • type-plausibility [Fiscal] PASSstring is plausible for string
  • type-plausibility [Hdct] PASSnumber is plausible for number
  • type-plausibility [Approved FTE] PASSnumber is plausible for number

Escalations (3)

  • Fiscalapproved_plan.fiscalPeriod

    Value 'FY26-Q3' is a fiscal-period label. Even though it's uniform across this 3-row sample, the column genuinely carries the value per row, so it's mapped as a normal column entry rather than declared as a constant. — escalated: only heuristic evidence supports this mapping

  • Hdctapproved_plan.requestedFte

    Numeric headcount values (49, 95, 128) that are consistently higher than the paired 'Approved FTE' values for the same rows — consistent with a requested/asked-for headcount figure prior to approval, matching the optional requestedFte field. — escalated: only heuristic evidence supports this mapping

  • Contractors Incl(no canonical home)

    A 'Y' flag indicating whether contractor headcount is included in the plan figures. No canonical field represents this boolean qualifier for approved_plan; there's no place in the schema to put it, so it's left unmapped rather than forced onto an unrelated field.

sheet_a

replayable — applyMapping succeeds against this artifact

Final mapping

Source columnCanonical fieldEvidenceEscalated
Teamapproved_plan.orgIdhard evidenceno
CCapproved_plan.costCenterIdhard evidenceno
Hdctapproved_plan.approvedFtehard evidenceno
Q3 Ask (fte)approved_plan.requestedFteheuristic onlyyes — needs a human
Lvl(no canonical home)noneyes — needs a human
Loc(no canonical home)noneyes — needs a human
Updated(no canonical home)noneyes — needs a human

Hypotheses (1)

iteration 0 accepted

Hard checks — ground truth

  • schema PASSall rows parse
  • referential-integrity [CC] PASSall cost centres join
  • control-total PASSapproved FTE reconciles against known totals
  • domain-membership [Team] PASSall values are members of the known domain
  • domain-membership [CC] PASSall values are members of the known domain

Heuristic checks — plausibility only

  • type-plausibility [Team] PASSstring is plausible for string
  • type-plausibility [CC] PASSstring is plausible for string
  • type-plausibility [Hdct] PASSnumber is plausible for number
  • type-plausibility [Q3 Ask (fte)] PASSnumber is plausible for number

Escalations (4)

  • Q3 Ask (fte)approved_plan.requestedFte

    Explicitly labeled as an 'ask' in fte units — the requested (not yet approved) fte for the period, matching requestedFte. — escalated: only heuristic evidence supports this mapping

  • Lvl(no canonical home)

    Values like IC4/IC3/IC2 are a person/req level, but approved_plan has no level field in the canonical schema — no counterpart to map to.

  • Loc(no canonical home)

    Location codes (US-SF, IE-DUB, PH-MNL) would fit a geo field, but approved_plan has no geo field in the canonical schema — no counterpart to map to.

  • Updated(no canonical home)

    Single constant date (cardinality 1) is an export-freshness/as-of stamp, not a per-row canonical value; validFrom/validTo are ingest metadata supplied by the caller, not something this proposal declares.

sheet_b

replayable — applyMapping succeeds against this artifact

Final mapping

Source columnCanonical fieldEvidenceEscalated
Groupapproved_plan.orgIdhard evidenceno
CostCtrapproved_plan.costCenterIdhard evidenceno
Headsapproved_plan.approvedFtehard evidenceno
Band(no canonical home)noneyes — needs a human
Site(no canonical home)noneyes — needs a human
AsOf(no canonical home)noneyes — needs a human

Hypotheses (1)

iteration 0 accepted

Hard checks — ground truth

  • schema PASSall rows parse
  • referential-integrity [CostCtr] PASSall cost centres join
  • control-total PASSapproved FTE reconciles against known totals
  • domain-membership [Group] PASSall values are members of the known domain
  • domain-membership [CostCtr] PASSall values are members of the known domain

Heuristic checks — plausibility only

  • type-plausibility [Group] PASSstring is plausible for string
  • type-plausibility [CostCtr] PASSstring is plausible for string
  • type-plausibility [Heads] PASSnumber is plausible for number

Escalations (3)

  • Band(no canonical home)

    Values (IC4, IC5, IC3, IC2, IC1) are job-level codes, but approved_plan has no level field in the canonical schema — there is no counterpart to map this to.

  • Site(no canonical home)

    Values (US-SF, IE-DUB, IN-BLR, PH-MNL) are geo/location codes, but approved_plan has no geo field in the canonical schema — there is no counterpart to map this to.

  • AsOf(no canonical home)

    Low-cardinality (2) date column reading as an export/as-of snapshot stamp rather than a per-row fact the plan carries — this is ingest metadata (recordedAt-equivalent) the caller supplies itself, not a value this proposal should map.