Skip to benchmark
Blobfish ResearchLedgerBench-100 v3.4.2Public

Can an agent run the finance desk—not just look up the number?

LedgerBench-100 measures working finance operations: triage the anomaly, reconcile the bank feed, verify the filing against real SEC XBRL data, commit the payment run, and file the graded answer — across a D365-shaped ERP, Odoo, subsidiary books, drive, email, and documents behind 8 MCP servers.

100finance tasks
8MCP servers
66tools under contract
46,686real SEC XBRL facts
0LLM grading calls
v3.4.2 realism release

All 100 prompts are distinct high-level employee requests. Each task provides 58–72 inspectable files across 7 native formats, three grounded options, 91–125 concrete criteria, and a unique reference tool sequence. The release gate executed 1,600 isolated runs, including 100/100 oracle passes and 1,400 negative-control attacks with 0 false accepts. 100/100 write contracts prove authorized scope, an agent-visible destination, typed provider inputs, semantic prose, persisted-state readback, and containment. Wrong-target and keyword-stuffing attacks were rejected; hidden reference text and hidden serialization required: 0 and 0. No model row is shown until a full run on this exact release exists.

Inspect the release contract →

Measured performance

Leaderboard

Ranking

Model leaderboard

Only complete, version-pinned model runs on this exact release receive a rank.

RankAgentCoverageScoreRun
No model submissions yet — awaiting first run. The reference oracle establishes the ceiling; model rows appear once a pinned run is published.
Qualification evidence

Measured controls

Oracle and adversarial replays prove solvability and verifier discrimination. They are measured, but never ranked as model submissions.

ClassControlCoverageScoreEvidence
Reference solutionExact-release deterministic replay
100 tasks
100.0%
0.25 calls avg.Solvability control only; this is not a model leaderboard entry.

100 distinct tasks

Task browser

100 shown
lgr100-001-duplicate-payment-marAnomaly triage

Duplicate Payment Mar

**Robin Vale · Treasury · Teams 08:05, Friday 6 March** Before the office-supplies run leaves the bank, tell Robin which documents can safely be paid and what must be stopped. This is needed for today's operating review. There was an earlier draft and several teams have touched the records, so please work out what is current before you commit to a position. When the conclusion is supported, leave the open review in that state, confirm it saved correctly, and send Controls a short handoff with the answer and timing.

Seeded files
64
Reference solution
11 MCP calls

Complete task prompt

107 graded criteria summarized
**Robin Vale · Treasury · Teams 08:05, Friday 6 March**

Before the office-supplies run leaves the bank, tell Robin which documents can safely be paid and what must be stopped.

This is needed for today's operating review. There was an earlier draft and several teams have touched the records, so please work out what is current before you commit to a position. When the conclusion is supported, leave the open review in that state, confirm it saved correctly, and send Controls a short handoff with the answer and timing.
How the employee outcome is evaluated

Reasoning, persisted state, and the answer must agree.

16 semantic milestones

The evidence must support Release the supported scope now within current authority. Release the supported 26,113.03 USD after the 1-day standard lead time; the 115.62 USD exception is within the 0.5% tolerance, so this stays inside APR-CASE-001. The competing options remain available only when their own predicates hold.

Strict success
investigation and causal analysis use exact successful material reads; supported decisions and provider-native state transitions are graded from persisted state; every write is read back, mutation rejections fail strict pass, and off-scope writes are vetoed.
Ordering policy
Exact reference order is illustrative. Causal evidence must precede dependent writes, and persisted state must be read back before completion.
Inspect the task-specific causal milestones
  1. investigation
    investigation.scope

    Identify the live work item behind “Before the office-supplies run leaves the bank, tell Robin which documents can safely be paid and what must be stopped.” by immutable subject and scope, and keep similarly named historical records out of the analysis.

  2. investigation
    investigation.authority

    Determine that FIN-CONTROL-2026.03 and the independent scope approval govern this work; recognize FIN-CONTROL-2025.11 as retained history rather than silently applying it.

  3. investigation
    investigation.current_state

    Compare the current operations message and evidence register with their stale counterparts, resolving conflicts by immutable IDs, effective dates, and modified timestamps.

  4. investigation
    investigation.source_systems

    Use the 8 exact task-native evidence reads needed to reconcile the proposed run, settled AP history, purchase-order identity, the current duplicate-control revision, and the vendor statement.

  5. analysis
    analysis.task_native_reasoning

    Work through the job's actual causal chain: Reconcile the proposed run, settled AP history, purchase-order identity, the current duplicate-control revision, and the vendor statement. Show from successful task-native reads whether the resent document matches a previously settled invoice on vendor, purchase order, and amount while the similar clean invoice does not. Do not substitute this shortcut: Reject every invoice with a repeated amount or trust the proposal without checking settled history.

  6. analysis
    analysis.operating_plan

    Reconcile the requester's 2026-03-06 need-by date, the counterparty's 2026-03-10 correction date, and the 2026-03-07 internal window. Derive the in-scope vendor invoices proposed for release, usable settled-history and purchase-order matches, exception, signed timing variance, and the constraint that actually determines each feasible outcome.

  7. decision
    decision.supported_path

    Select `REJECT_DUPLICATE_RELEASE_CLEAN` only because the evidence supports the authored condition. Explicitly reject this tempting shortcut: Reject every invoice with a repeated amount or trust the proposal without checking settled history.

  8. decision
    decision.options

    Compare acting within authority, waiting for the documented correction, and requesting an exception. Preserve each option's outcome date, incremental cost, and authority status; choose `proceed_within_authority` for 2026-03-03, bound by posting window close.

  9. state
    state.operational

    Carry the supported anomaly_triage result through 2 scoped task-native writes and leave these independently checked outcomes: run committed, paid set, exactly one rejection, duplicate rejected with code, lookalike was paid, paid total rederived, original untouched.

  10. state
    state.case

    Create exactly one source-audited DecisionWorkItems transition from open to decided, carrying the supported decision, selected option, rationale, and the five independently resolved evidence references.

  11. state
    state.collaboration

    Send only the task-native communication the job requires, plus one concise Controls handoff that states the supported result, timing, constraint, and provenance.

  12. verification
    verification.outcome

    Verify that the task-native final state matches the derived result and that exactly one governed audit event records the case transition.

  13. verification
    verification.readback

    After writing, perform all 4 provider-native readbacks, including the exact case row and reopened completion thread, before claiming success.

  14. containment
    containment.scope

    Keep every change inside the selected task records, case, audit event, completion message, and reporting row. Leave the unapproved exception pending and every neighboring record unchanged.

  15. answer
    answer.insights

    Return the task's exact employee-facing conclusions (run_id, duplicate_found, duplicate_invoice, duplicate_of, total_paid, amount_prevented) together with the supported amounts, dates, alternative, cost, authority, and timing variance, using the declared units and scope.

  16. execution
    execution.sequence

    Investigate before dependent writes, verify persisted state before handoff, submit last, and complete without a rejected state-changing call.

Decision space (3 grounded options)
  • Release the supported scope now within current authority — selected: Release the supported 26,113.03 USD after the 1-day standard lead time; the 115.62 USD exception is within the 0.5% tolerance, so this stays inside APR-CASE-001.
  • Hold for the counterparty's corrected invoice and credit note: Wait for the Halden Freight accounts receivable's corrected invoice and credit note committed for 2026-03-10, then release after the standard lead time; the counterparty's documented late-payment charge of 125.00 USD applies. Feasible, but later and costlier than acting within authority.
  • Release the full scope under a CFO exception approval: Release the full 26,228.65 USD after the 0-day exception lead time under APR-EXC-001; requires CFO approval beyond APR-CASE-001 and carries the 2,000.00 USD exception levy.
Inspect all 107 deterministic criteria
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:amount_prevented:missing`: answer amount prevented missing; the exact released evidence, answer, and persisted state must agree. [answer:amount_prevented:missing]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:amount_prevented:not_numeric`: answer amount prevented not numeric; the exact released evidence, answer, and persisted state must agree. [answer:amount_prevented:not_numeric]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:approval_authority_limit_usd:missing`: answer approval authority limit usd missing; the exact released evidence, answer, and persisted state must agree. [answer:approval_authority_limit_usd:missing]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:approval_authority_limit_usd:not_numeric`: answer approval authority limit usd not numeric; the exact released evidence, answer, and persisted state must agree. [answer:approval_authority_limit_usd:not_numeric]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:approval_request_id:missing`: answer approval request id missing; the exact released evidence, answer, and persisted state must agree. [answer:approval_request_id:missing]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:approval_request_id:missing_terms(['APR-CASE-001'])`: answer approval request id missing terms(['APR-CASE-001']); the exact released evidence, answer, and persisted state must agree. [answer:approval_request_id:missing_terms(['APR-CASE-001'])]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:binding_constraint_date:mismatch(got=totally-wrong-answer-xyzzy)`: answer binding constraint date mismatch(got=totally-wrong-answer-xyzzy); the exact released evidence, answer, and persisted state must agree. [answer:binding_constraint_date:mismatch(got=totally-wrong-answer-xyzzy)]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:binding_constraint_date:missing`: answer binding constraint date missing; the exact released evidence, answer, and persisted state must agree. [answer:binding_constraint_date:missing]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:business_need_date:mismatch(got=totally-wrong-answer-xyzzy)`: answer business need date mismatch(got=totally-wrong-answer-xyzzy); the exact released evidence, answer, and persisted state must agree. [answer:business_need_date:mismatch(got=totally-wrong-answer-xyzzy)]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:business_need_date:missing`: answer business need date missing; the exact released evidence, answer, and persisted state must agree. [answer:business_need_date:missing]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:case_id:missing`: answer case id missing; the exact released evidence, answer, and persisted state must agree. [answer:case_id:missing]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:case_id:missing_terms(['WORKITEM-001'])`: answer case id missing terms(['WORKITEM-001']); the exact released evidence, answer, and persisted state must agree. [answer:case_id:missing_terms(['WORKITEM-001'])]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:control_requirement_usd:missing`: answer control requirement usd missing; the exact released evidence, answer, and persisted state must agree. [answer:control_requirement_usd:missing]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:control_requirement_usd:not_numeric`: answer control requirement usd not numeric; the exact released evidence, answer, and persisted state must agree. [answer:control_requirement_usd:not_numeric]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:decision_timing_status:mismatch(got=totally-wrong-answer-xyzzy)`: answer decision timing status mismatch(got=totally-wrong-answer-xyzzy); the exact released evidence, answer, and persisted state must agree. [answer:decision_timing_status:mismatch(got=totally-wrong-answer-xyzzy)]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:decision_timing_status:missing`: answer decision timing status missing; the exact released evidence, answer, and persisted state must agree. [answer:decision_timing_status:missing]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:duplicate_found:missing`: answer duplicate found missing; the exact released evidence, answer, and persisted state must agree. [answer:duplicate_found:missing]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:duplicate_found:unparseable_yes_no(got=totally-wrong-answer-xyzzy)`: answer duplicate found unparseable yes no(got=totally-wrong-answer-xyzzy); the exact released evidence, answer, and persisted state must agree. [answer:duplicate_found:unparseable_yes_no(got=totally-wrong-answer-xyzzy)]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:duplicate_invoice:missing`: answer duplicate invoice missing; the exact released evidence, answer, and persisted state must agree. [answer:duplicate_invoice:missing]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:duplicate_invoice:missing_terms(['5521-OPS'])`: answer duplicate invoice missing terms(['5521-OPS']); the exact released evidence, answer, and persisted state must agree. [answer:duplicate_invoice:missing_terms(['5521-OPS'])]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:duplicate_of:missing`: answer duplicate of missing; the exact released evidence, answer, and persisted state must agree. [answer:duplicate_of:missing]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:duplicate_of:missing_terms(['OSINV-5521'])`: answer duplicate of missing terms(['OSINV-5521']); the exact released evidence, answer, and persisted state must agree. [answer:duplicate_of:missing_terms(['OSINV-5521'])]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:escalation_approval_required:missing`: answer escalation approval required missing; the exact released evidence, answer, and persisted state must agree. [answer:escalation_approval_required:missing]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:escalation_approval_required:not_numeric`: answer escalation approval required not numeric; the exact released evidence, answer, and persisted state must agree. [answer:escalation_approval_required:not_numeric]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:exception_usd:missing`: answer exception usd missing; the exact released evidence, answer, and persisted state must agree. [answer:exception_usd:missing]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:exception_usd:not_numeric`: answer exception usd not numeric; the exact released evidence, answer, and persisted state must agree. [answer:exception_usd:not_numeric]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:exception_within_tolerance:missing`: answer exception within tolerance missing; the exact released evidence, answer, and persisted state must agree. [answer:exception_within_tolerance:missing]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:exception_within_tolerance:unparseable_yes_no(got=totally-wrong-answer-xyzzy)`: answer exception within tolerance unparseable yes no(got=totally-wrong-answer-xyzzy); the exact released evidence, answer, and persisted state must agree. [answer:exception_within_tolerance:unparseable_yes_no(got=totally-wrong-answer-xyzzy)]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:excluded_support_usd:missing`: answer excluded support usd missing; the exact released evidence, answer, and persisted state must agree. [answer:excluded_support_usd:missing]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:excluded_support_usd:not_numeric`: answer excluded support usd not numeric; the exact released evidence, answer, and persisted state must agree. [answer:excluded_support_usd:not_numeric]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:external_constraint_date:mismatch(got=totally-wrong-answer-xyzzy)`: answer external constraint date mismatch(got=totally-wrong-answer-xyzzy); the exact released evidence, answer, and persisted state must agree. [answer:external_constraint_date:mismatch(got=totally-wrong-answer-xyzzy)]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:external_constraint_date:missing`: answer external constraint date missing; the exact released evidence, answer, and persisted state must agree. [answer:external_constraint_date:missing]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:hold_for_counterparty_correction_outcome_date:mismatch(got=totally-wrong-answer-xyzzy)`: answer hold for counterparty correction outcome date mismatch(got=totally-wrong-answer-xyzzy); the exact released evidence, answer, and persisted state must agree. [answer:hold_for_counterparty_correction_outcome_date:mismatch(got=totally-wrong-answer-xyzzy)]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:hold_for_counterparty_correction_outcome_date:missing`: answer hold for counterparty correction outcome date missing; the exact released evidence, answer, and persisted state must agree. [answer:hold_for_counterparty_correction_outcome_date:missing]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:observed_support_usd:missing`: answer observed support usd missing; the exact released evidence, answer, and persisted state must agree. [answer:observed_support_usd:missing]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:observed_support_usd:not_numeric`: answer observed support usd not numeric; the exact released evidence, answer, and persisted state must agree. [answer:observed_support_usd:not_numeric]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:outcome_vs_control_days:missing`: answer outcome vs control days missing; the exact released evidence, answer, and persisted state must agree. [answer:outcome_vs_control_days:missing]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:outcome_vs_control_days:not_numeric`: answer outcome vs control days not numeric; the exact released evidence, answer, and persisted state must agree. [answer:outcome_vs_control_days:not_numeric]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:posting_window_close_date:mismatch(got=totally-wrong-answer-xyzzy)`: answer posting window close date mismatch(got=totally-wrong-answer-xyzzy); the exact released evidence, answer, and persisted state must agree. [answer:posting_window_close_date:mismatch(got=totally-wrong-answer-xyzzy)]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:posting_window_close_date:missing`: answer posting window close date missing; the exact released evidence, answer, and persisted state must agree. [answer:posting_window_close_date:missing]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:proceed_with_exception_approval_outcome_date:mismatch(got=totally-wrong-answer-xyzzy)`: answer proceed with exception approval outcome date mismatch(got=totally-wrong-answer-xyzzy); the exact released evidence, answer, and persisted state must agree. [answer:proceed_with_exception_approval_outcome_date:mismatch(got=totally-wrong-answer-xyzzy)]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:proceed_with_exception_approval_outcome_date:missing`: answer proceed with exception approval outcome date missing; the exact released evidence, answer, and persisted state must agree. [answer:proceed_with_exception_approval_outcome_date:missing]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:proceed_within_authority_outcome_date:mismatch(got=totally-wrong-answer-xyzzy)`: answer proceed within authority outcome date mismatch(got=totally-wrong-answer-xyzzy); the exact released evidence, answer, and persisted state must agree. [answer:proceed_within_authority_outcome_date:mismatch(got=totally-wrong-answer-xyzzy)]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:proceed_within_authority_outcome_date:missing`: answer proceed within authority outcome date missing; the exact released evidence, answer, and persisted state must agree. [answer:proceed_within_authority_outcome_date:missing]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:recommended_incremental_cost_usd:missing`: answer recommended incremental cost usd missing; the exact released evidence, answer, and persisted state must agree. [answer:recommended_incremental_cost_usd:missing]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:recommended_incremental_cost_usd:not_numeric`: answer recommended incremental cost usd not numeric; the exact released evidence, answer, and persisted state must agree. [answer:recommended_incremental_cost_usd:not_numeric]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:recommended_incremental_cost_usd:off(got=2000.0)`: answer recommended incremental cost usd off(got=2000 0); the exact released evidence, answer, and persisted state must agree. [answer:recommended_incremental_cost_usd:off(got=2000.0)]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:recommended_option:mismatch(got=proceed_with_exception_approval)`: answer recommended option mismatch(got=proceed with exception approval); the exact released evidence, answer, and persisted state must agree. [answer:recommended_option:mismatch(got=proceed_with_exception_approval)]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:recommended_option:mismatch(got=totally-wrong-answer-xyzzy)`: answer recommended option mismatch(got=totally-wrong-answer-xyzzy); the exact released evidence, answer, and persisted state must agree. [answer:recommended_option:mismatch(got=totally-wrong-answer-xyzzy)]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:recommended_option:missing`: answer recommended option missing; the exact released evidence, answer, and persisted state must agree. [answer:recommended_option:missing]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:recommended_outcome_date:mismatch(got=2026-03-02)`: answer recommended outcome date mismatch(got=2026-03-02); the exact released evidence, answer, and persisted state must agree. [answer:recommended_outcome_date:mismatch(got=2026-03-02)]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:recommended_outcome_date:mismatch(got=totally-wrong-answer-xyzzy)`: answer recommended outcome date mismatch(got=totally-wrong-answer-xyzzy); the exact released evidence, answer, and persisted state must agree. [answer:recommended_outcome_date:mismatch(got=totally-wrong-answer-xyzzy)]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:recommended_outcome_date:missing`: answer recommended outcome date missing; the exact released evidence, answer, and persisted state must agree. [answer:recommended_outcome_date:missing]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:run_id:missing`: answer run id missing; the exact released evidence, answer, and persisted state must agree. [answer:run_id:missing]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:run_id:missing_terms(['PR-00001'])`: answer run id missing terms(['PR-00001']); the exact released evidence, answer, and persisted state must agree. [answer:run_id:missing_terms(['PR-00001'])]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:total_paid:missing`: answer total paid missing; the exact released evidence, answer, and persisted state must agree. [answer:total_paid:missing]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:total_paid:not_numeric`: answer total paid not numeric; the exact released evidence, answer, and persisted state must agree. [answer:total_paid:not_numeric]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:usable_support_usd:missing`: answer usable support usd missing; the exact released evidence, answer, and persisted state must agree. [answer:usable_support_usd:missing]
  • Answer: For lgr100-001-duplicate-payment-mar, deterministically verify `answer:usable_support_usd:not_numeric`: answer usable support usd not numeric; the exact released evidence, answer, and persisted state must agree. [answer:usable_support_usd:not_numeric]
  • State: For lgr100-001-duplicate-payment-mar, deterministically verify `state:off_task_writes(['meta'])`: state off task writes(['meta']); the exact released evidence, answer, and persisted state must agree. [state:off_task_writes(['meta'])]
  • State: For lgr100-001-duplicate-payment-mar, deterministically verify `state:row_count(one_completion_email: got 0, want 1)`: state row count(one completion email got 0, want 1); the exact released evidence, answer, and persisted state must agree. [state:row_count(one_completion_email: got 0, want 1)]
  • State: For lgr100-001-duplicate-payment-mar, deterministically verify `state:row_count(one_decision_work_item_audit: got 0, want 1)`: state row count(one decision work item audit got 0, want 1); the exact released evidence, answer, and persisted state must agree. [state:row_count(one_decision_work_item_audit: got 0, want 1)]
  • State: For lgr100-001-duplicate-payment-mar, deterministically verify `state:sql(decision_work_item_decided: got open, want decided)`: state sql(decision work item decided got open, want decided); the exact released evidence, answer, and persisted state must agree. [state:sql(decision_work_item_decided: got open, want decided)]
  • State: For lgr100-001-duplicate-payment-mar, deterministically verify `state:sql(decision_work_item_evidence_refs: got ["unrelated-evidence-ref","workitem-001","em-lgr-001-approva, want ["apr-case-001","workitem-001","em-lgr-001-approval","lgr-00)`: state sql(decision work item evidence refs got ["unrelated-evidence-ref","workitem-001","em-lgr-001-approva, want ["apr-case-001","workitem-001","em-lgr-001-approval","lgr-00); the exact released evidence, answer, and persisted state must agree. [state:sql(decision_work_item_evidence_refs: got ["unrelated-evidence-ref","workitem-001","em-lgr-001-approva, want ["apr-case-001","workitem-001","em-lgr-001-approval","lgr-00)]
  • State: For lgr100-001-duplicate-payment-mar, deterministically verify `state:sql(decision_work_item_evidence_refs: got none, want ["apr-case-001","workitem-001","em-lgr-001-approval","lgr-00)`: state sql(decision work item evidence refs got none, want ["apr-case-001","workitem-001","em-lgr-001-approval","lgr-00); the exact released evidence, answer, and persisted state must agree. [state:sql(decision_work_item_evidence_refs: got none, want ["apr-case-001","workitem-001","em-lgr-001-approval","lgr-00)]
  • State: For lgr100-001-duplicate-payment-mar, deterministically verify `state:sql(decision_work_item_exact_decision: got hold_for_evidence, want reject_duplicate_release_clean)`: state sql(decision work item exact decision got hold for evidence, want reject duplicate release clean); the exact released evidence, answer, and persisted state must agree. [state:sql(decision_work_item_exact_decision: got hold_for_evidence, want reject_duplicate_release_clean)]
  • State: For lgr100-001-duplicate-payment-mar, deterministically verify `state:sql(decision_work_item_exact_decision: got none, want reject_duplicate_release_clean)`: state sql(decision work item exact decision got none, want reject duplicate release clean); the exact released evidence, answer, and persisted state must agree. [state:sql(decision_work_item_exact_decision: got none, want reject_duplicate_release_clean)]
  • State: For lgr100-001-duplicate-payment-mar, deterministically verify `state:sql(decision_work_item_selected_option: got 0, want 1)`: state sql(decision work item selected option got 0, want 1); the exact released evidence, answer, and persisted state must agree. [state:sql(decision_work_item_selected_option: got 0, want 1)]
  • State: For lgr100-001-duplicate-payment-mar, deterministically verify `state:sql(duplicate_rejected_with_code: got none, want duplicate)`: state sql(duplicate rejected with code got none, want duplicate); the exact released evidence, answer, and persisted state must agree. [state:sql(duplicate_rejected_with_code: got none, want duplicate)]
  • State: For lgr100-001-duplicate-payment-mar, deterministically verify `state:sql(exactly_one_rejection: got 0, want 1)`: state sql(exactly one rejection got 0, want 1); the exact released evidence, answer, and persisted state must agree. [state:sql(exactly_one_rejection: got 0, want 1)]
  • State: For lgr100-001-duplicate-payment-mar, deterministically verify `state:sql(lookalike_was_paid: got none, want paid)`: state sql(lookalike was paid got none, want paid); the exact released evidence, answer, and persisted state must agree. [state:sql(lookalike_was_paid: got none, want paid)]
  • State: For lgr100-001-duplicate-payment-mar, deterministically verify `state:sql(paid_set: got none, want osinv-5530,osinv-5555,tps-11907)`: state sql(paid set got none, want osinv-5530,osinv-5555,tps-11907); the exact released evidence, answer, and persisted state must agree. [state:sql(paid_set: got none, want osinv-5530,osinv-5555,tps-11907)]
  • State: For lgr100-001-duplicate-payment-mar, deterministically verify `state:sql(paid_total_rederived: got None, want 34450.0)`: state sql(paid total rederived got None, want 34450 0); the exact released evidence, answer, and persisted state must agree. [state:sql(paid_total_rederived: got None, want 34450.0)]
  • State: For lgr100-001-duplicate-payment-mar, deterministically verify `state:sql(run_committed: got none, want committed)`: state sql(run committed got none, want committed); the exact released evidence, answer, and persisted state must agree. [state:sql(run_committed: got none, want committed)]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:min_calls(docs<8)`: trace min calls(docs<8); the exact released evidence, answer, and persisted state must agree. [trace:min_calls(docs<8)]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:min_calls(email<10)`: trace min calls(email<10); the exact released evidence, answer, and persisted state must agree. [trace:min_calls(email<10)]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:min_calls(erp<10)`: trace min calls(erp<10); the exact released evidence, answer, and persisted state must agree. [trace:min_calls(erp<10)]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:min_calls(sheets<6)`: trace min calls(sheets<6); the exact released evidence, answer, and persisted state must agree. [trace:min_calls(sheets<6)]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:missing_post_write_readback(email.send_message->email.threads_get)`: trace missing post write readback(email send message->email threads get); the exact released evidence, answer, and persisted state must agree. [trace:missing_post_write_readback(email.send_message->email.threads_get)]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:missing_post_write_readback(erp.api_invoke_action->erp.data_find_entities)`: trace missing post write readback(erp api invoke action->erp data find entities); the exact released evidence, answer, and persisted state must agree. [trace:missing_post_write_readback(erp.api_invoke_action->erp.data_find_entities)]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:no_reads_before_submit`: trace no reads before submit; the exact released evidence, answer, and persisted state must agree. [trace:no_reads_before_submit]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:ordered_calls_failed(erp.api_invoke_action:{'action': 'ContosoDecisionWorkItemDecide', 'parameters': {'case_id': 'WORKITEM-001'}})`: trace ordered calls failed(erp api invoke action {'action' 'ContosoDecisionWorkItemDecide', 'parameters' {'case id' 'WORKITEM-001'}}); the exact released evidence, answer, and persisted state must agree. [trace:ordered_calls_failed(erp.api_invoke_action:{'action': 'ContosoDecisionWorkItemDecide', 'parameters': {'case_id': 'WORKITEM-001'}})]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:ordered_calls_failed(erp.data_find_entities:{'entity': 'PaymentRuns', 'filters': {'run_id': 'PR-00001'}})`: trace ordered calls failed(erp data find entities {'entity' 'PaymentRuns', 'filters' {'run id' 'PR-00001'}}); the exact released evidence, answer, and persisted state must agree. [trace:ordered_calls_failed(erp.data_find_entities:{'entity': 'PaymentRuns', 'filters': {'run_id': 'PR-00001'}})]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:reads_not_before_write(["erp.data_find_entity_type:{'query': 'decision work item'}", "erp.data_get_entity_metadata:{'entity': 'DecisionWorkItems'}", "erp.data_find_entities:{'entity': 'DecisionWorkItems', 'filters': {'case_id': 'WORKITEM-001'}}", "docs.search_documents:{'query': 'WORKITEM-001'}", "docs.get_document_metadata:{'doc_id': 'lgr-001-control-current'}", "docs.get_document:{'doc_id': 'lgr-001-control-current'}", "docs.get_document_metadata:{'doc_id': 'lgr-001-control-prior'}", "docs.get_document:{'doc_id': 'lgr-001-evidence-map'}", "email.messages_list:{'q': 'WORKITEM-001', 'label': 'INBOX'}", "email.messages_get:{'id': 'em-lgr-001-approval'}", "email.attachments_get:{'message_id': 'em-lgr-001-approval'}", "email.messages_get:{'id': 'em-lgr-001-operations'}", "email.messages_get:{'id': 'em-lgr-001-prior'}", "sheets.drive_search:{'q': 'WORKITEM-001'}", "sheets.get_drive_item:{'item': 'workitem-001-control-pack.xlsx'}", "sheets.workbook_range:{'item': 'workitem-001-control-pack.xlsx', 'address': 'A1:F5'}", "sheets.get_drive_item:{'item': 'workitem-001-prior-tracker.xlsx'}", "sheets.workbook_range:{'item': 'workitem-001-prior-tracker.xlsx', 'address': 'A1:F3'}", "erp.data_get_entity_metadata:{'entity': 'DecisionScopeLines'}", "erp.data_find_entities:{'entity': 'DecisionScopeLines', 'filters': {'case_id': 'WORKITEM-001'}}", "erp.data_find_entities:{'entity': 'ApprovalPolicies', 'filters': {'doc_type': 'Operational Decision Work Item'}}", "erp.data_find_entities:{'entity': 'ApprovalRequests', 'filters': {'doc_id': 'WORKITEM-001'}}", "docs.get_document:{'doc_id': 'lgr-001-close-calendar'}", "sheets.workbook_range:{'item': 'workitem-001-control-pack.xlsx', 'address': 'A7:F12'}", "email.messages_get:{'id': 'em-lgr-001-request'}", "email.messages_get:{'id': 'em-lgr-001-counterparty'}", "docs.search_documents:{'query': 'duplicate'}", "docs.get_document:{'doc_id': 'duplicate-payment-control'}", 'erp.data_find_entities_sql:{\'sql\': "SELECT invoice, po_number, amount, settled, closed, trans_date FROM erp_vend_trans WHERE account IN (\'PVEN-21\',\'PVEN-22\') AND txn_type=\'Invoice\' ORDER BY po_number, trans_date"}', 'erp.data_find_entities_sql:{\'sql\': "SELECT o.invoice AS open_invoice, o.po_number, o.amount, s.invoice AS settled_invoice, s.trans_date AS settled_date FROM erp_vend_trans o JOIN erp_vend_trans s ON s.account=o.account AND s.po_number=o.po_number AND s.amount=o.amount AND s.closed=1 AND s.txn_type=\'Invoice\' WHERE o.closed=0 AND o.txn_type=\'Invoice\'"}', "email.messages_list:{'q': 'statement'}", "email.messages_get:{'id': 'em-0701'}", "email.attachments_get:{'message_id': 'em-0701'}", "erp.data_find_entities:{'entity': 'PaymentRunLines', 'filters': {'run_id': 'PR-00001'}}"])`: trace reads not before write(["erp data find entity type {'query' 'decision work item'}", "erp data get entity metadata {'entity' 'DecisionWorkItems'}", "erp data find entities {'entity' 'DecisionWorkItems', 'filters' {'case id' 'WORKITEM-001'}}", "docs search documents {'query' 'WORKITEM-001'}", "docs get document metadata {'doc id' 'lgr-001-control-current'}", "docs get document {'doc id' 'lgr-001-control-current'}", "docs get document metadata {'doc id' 'lgr-001-control-prior'}", "docs get document {'doc id' 'lgr-001-evidence-map'}", "email messages list {'q' 'WORKITEM-001', 'label' 'INBOX'}", "email messages get {'id' 'em-lgr-001-approval'}", "email attachments get {'message id' 'em-lgr-001-approval'}", "email messages get {'id' 'em-lgr-001-operations'}", "email messages get {'id' 'em-lgr-001-prior'}", "sheets drive search {'q' 'WORKITEM-001'}", "sheets get drive item {'item' 'workitem-001-control-pack xlsx'}", "sheets workbook range {'item' 'workitem-001-control-pack xlsx', 'address' 'A1 F5'}", "sheets get drive item {'item' 'workitem-001-prior-tracker xlsx'}", "sheets workbook range {'item' 'workitem-001-prior-tracker xlsx', 'address' 'A1 F3'}", "erp data get entity metadata {'entity' 'DecisionScopeLines'}", "erp data find entities {'entity' 'DecisionScopeLines', 'filters' {'case id' 'WORKITEM-001'}}", "erp data find entities {'entity' 'ApprovalPolicies', 'filters' {'doc type' 'Operational Decision Work Item'}}", "erp data find entities {'entity' 'ApprovalRequests', 'filters' {'doc id' 'WORKITEM-001'}}", "docs get document {'doc id' 'lgr-001-close-calendar'}", "sheets workbook range {'item' 'workitem-001-control-pack xlsx', 'address' 'A7 F12'}", "email messages get {'id' 'em-lgr-001-request'}", "email messages get {'id' 'em-lgr-001-counterparty'}", "docs search documents {'query' 'duplicate'}", "docs get document {'doc id' 'duplicate-payment-control'}", 'erp data find entities sql {\'sql\' "SELECT invoice, po number, amount, settled, closed, trans date FROM erp vend trans WHERE account IN (\'PVEN-21\',\'PVEN-22\') AND txn type=\'Invoice\' ORDER BY po number, trans date"}', 'erp data find entities sql {\'sql\' "SELECT o invoice AS open invoice, o po number, o amount, s invoice AS settled invoice, s trans date AS settled date FROM erp vend trans o JOIN erp vend trans s ON s account=o account AND s po number=o po number AND s amount=o amount AND s closed=1 AND s txn type=\'Invoice\' WHERE o closed=0 AND o txn type=\'Invoice\'"}', "email messages list {'q' 'statement'}", "email messages get {'id' 'em-0701'}", "email attachments get {'message id' 'em-0701'}", "erp data find entities {'entity' 'PaymentRunLines', 'filters' {'run id' 'PR-00001'}}"]); the exact released evidence, answer, and persisted state must agree. [trace:reads_not_before_write(["erp.data_find_entity_type:{'query': 'decision work item'}", "erp.data_get_entity_metadata:{'entity': 'DecisionWorkItems'}", "erp.data_find_entities:{'entity': 'DecisionWorkItems', 'filters': {'case_id': 'WORKITEM-001'}}", "docs.search_documents:{'query': 'WORKITEM-001'}", "docs.get_document_metadata:{'doc_id': 'lgr-001-control-current'}", "docs.get_document:{'doc_id': 'lgr-001-control-current'}", "docs.get_document_metadata:{'doc_id': 'lgr-001-control-prior'}", "docs.get_document:{'doc_id': 'lgr-001-evidence-map'}", "email.messages_list:{'q': 'WORKITEM-001', 'label': 'INBOX'}", "email.messages_get:{'id': 'em-lgr-001-approval'}", "email.attachments_get:{'message_id': 'em-lgr-001-approval'}", "email.messages_get:{'id': 'em-lgr-001-operations'}", "email.messages_get:{'id': 'em-lgr-001-prior'}", "sheets.drive_search:{'q': 'WORKITEM-001'}", "sheets.get_drive_item:{'item': 'workitem-001-control-pack.xlsx'}", "sheets.workbook_range:{'item': 'workitem-001-control-pack.xlsx', 'address': 'A1:F5'}", "sheets.get_drive_item:{'item': 'workitem-001-prior-tracker.xlsx'}", "sheets.workbook_range:{'item': 'workitem-001-prior-tracker.xlsx', 'address': 'A1:F3'}", "erp.data_get_entity_metadata:{'entity': 'DecisionScopeLines'}", "erp.data_find_entities:{'entity': 'DecisionScopeLines', 'filters': {'case_id': 'WORKITEM-001'}}", "erp.data_find_entities:{'entity': 'ApprovalPolicies', 'filters': {'doc_type': 'Operational Decision Work Item'}}", "erp.data_find_entities:{'entity': 'ApprovalRequests', 'filters': {'doc_id': 'WORKITEM-001'}}", "docs.get_document:{'doc_id': 'lgr-001-close-calendar'}", "sheets.workbook_range:{'item': 'workitem-001-control-pack.xlsx', 'address': 'A7:F12'}", "email.messages_get:{'id': 'em-lgr-001-request'}", "email.messages_get:{'id': 'em-lgr-001-counterparty'}", "docs.search_documents:{'query': 'duplicate'}", "docs.get_document:{'doc_id': 'duplicate-payment-control'}", 'erp.data_find_entities_sql:{\'sql\': "SELECT invoice, po_number, amount, settled, closed, trans_date FROM erp_vend_trans WHERE account IN (\'PVEN-21\',\'PVEN-22\') AND txn_type=\'Invoice\' ORDER BY po_number, trans_date"}', 'erp.data_find_entities_sql:{\'sql\': "SELECT o.invoice AS open_invoice, o.po_number, o.amount, s.invoice AS settled_invoice, s.trans_date AS settled_date FROM erp_vend_trans o JOIN erp_vend_trans s ON s.account=o.account AND s.po_number=o.po_number AND s.amount=o.amount AND s.closed=1 AND s.txn_type=\'Invoice\' WHERE o.closed=0 AND o.txn_type=\'Invoice\'"}', "email.messages_list:{'q': 'statement'}", "email.messages_get:{'id': 'em-0701'}", "email.attachments_get:{'message_id': 'em-0701'}", "erp.data_find_entities:{'entity': 'PaymentRunLines', 'filters': {'run_id': 'PR-00001'}}"])]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:reads_not_before_write(["sheets.workbook_range:{'item': 'workitem-001-prior-tracker.xlsx', 'address': 'A1:F3'}"])`: trace reads not before write(["sheets workbook range {'item' 'workitem-001-prior-tracker xlsx', 'address' 'A1 F3'}"]); the exact released evidence, answer, and persisted state must agree. [trace:reads_not_before_write(["sheets.workbook_range:{'item': 'workitem-001-prior-tracker.xlsx', 'address': 'A1:F3'}"])]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:rejected_mutations(["erp.api_invoke_action:{'action': 'ContosoDecisionWorkItemDecide'}"])`: trace rejected mutations(["erp api invoke action {'action' 'ContosoDecisionWorkItemDecide'}"]); the exact released evidence, answer, and persisted state must agree. [trace:rejected_mutations(["erp.api_invoke_action:{'action': 'ContosoDecisionWorkItemDecide'}"])]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:required_calls_missing(["docs.search_documents:{'query': 'WORKITEM-001'}", "docs.get_document_metadata:{'doc_id': 'lgr-001-control-current'}", "docs.get_document:{'doc_id': 'lgr-001-control-current'}", "docs.get_document_metadata:{'doc_id': 'lgr-001-control-prior'}", "docs.get_document:{'doc_id': 'lgr-001-evidence-map'}"])`: trace required calls missing(["docs search documents {'query' 'WORKITEM-001'}", "docs get document metadata {'doc id' 'lgr-001-control-current'}", "docs get document {'doc id' 'lgr-001-control-current'}", "docs get document metadata {'doc id' 'lgr-001-control-prior'}", "docs get document {'doc id' 'lgr-001-evidence-map'}"]); the exact released evidence, answer, and persisted state must agree. [trace:required_calls_missing(["docs.search_documents:{'query': 'WORKITEM-001'}", "docs.get_document_metadata:{'doc_id': 'lgr-001-control-current'}", "docs.get_document:{'doc_id': 'lgr-001-control-current'}", "docs.get_document_metadata:{'doc_id': 'lgr-001-control-prior'}", "docs.get_document:{'doc_id': 'lgr-001-evidence-map'}"])]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:required_calls_missing(["docs.search_documents:{'query': 'duplicate'}", "docs.get_document:{'doc_id': 'duplicate-payment-control'}", 'erp.data_find_entities_sql:{\'sql\': "SELECT invoice, po_number, amount, settled, closed, trans_date FROM erp_vend_trans WHERE account IN (\'PVEN-21\',\'PVEN-22\') AND txn_type=\'Invoice\' ORDER BY po_number, trans_date"}', 'erp.data_find_entities_sql:{\'sql\': "SELECT o.invoice AS open_invoice, o.po_number, o.amount, s.invoice AS settled_invoice, s.trans_date AS settled_date FROM erp_vend_trans o JOIN erp_vend_trans s ON s.account=o.account AND s.po_number=o.po_number AND s.amount=o.amount AND s.closed=1 AND s.txn_type=\'Invoice\' WHERE o.closed=0 AND o.txn_type=\'Invoice\'"}', "email.messages_list:{'q': 'statement'}", "email.messages_get:{'id': 'em-0701'}", "email.attachments_get:{'message_id': 'em-0701'}", "erp.data_find_entities:{'entity': 'PaymentRunLines', 'filters': {'run_id': 'PR-00001'}}"])`: trace required calls missing(["docs search documents {'query' 'duplicate'}", "docs get document {'doc id' 'duplicate-payment-control'}", 'erp data find entities sql {\'sql\' "SELECT invoice, po number, amount, settled, closed, trans date FROM erp vend trans WHERE account IN (\'PVEN-21\',\'PVEN-22\') AND txn type=\'Invoice\' ORDER BY po number, trans date"}', 'erp data find entities sql {\'sql\' "SELECT o invoice AS open invoice, o po number, o amount, s invoice AS settled invoice, s trans date AS settled date FROM erp vend trans o JOIN erp vend trans s ON s account=o account AND s po number=o po number AND s amount=o amount AND s closed=1 AND s txn type=\'Invoice\' WHERE o closed=0 AND o txn type=\'Invoice\'"}', "email messages list {'q' 'statement'}", "email messages get {'id' 'em-0701'}", "email attachments get {'message id' 'em-0701'}", "erp data find entities {'entity' 'PaymentRunLines', 'filters' {'run id' 'PR-00001'}}"]); the exact released evidence, answer, and persisted state must agree. [trace:required_calls_missing(["docs.search_documents:{'query': 'duplicate'}", "docs.get_document:{'doc_id': 'duplicate-payment-control'}", 'erp.data_find_entities_sql:{\'sql\': "SELECT invoice, po_number, amount, settled, closed, trans_date FROM erp_vend_trans WHERE account IN (\'PVEN-21\',\'PVEN-22\') AND txn_type=\'Invoice\' ORDER BY po_number, trans_date"}', 'erp.data_find_entities_sql:{\'sql\': "SELECT o.invoice AS open_invoice, o.po_number, o.amount, s.invoice AS settled_invoice, s.trans_date AS settled_date FROM erp_vend_trans o JOIN erp_vend_trans s ON s.account=o.account AND s.po_number=o.po_number AND s.amount=o.amount AND s.closed=1 AND s.txn_type=\'Invoice\' WHERE o.closed=0 AND o.txn_type=\'Invoice\'"}', "email.messages_list:{'q': 'statement'}", "email.messages_get:{'id': 'em-0701'}", "email.attachments_get:{'message_id': 'em-0701'}", "erp.data_find_entities:{'entity': 'PaymentRunLines', 'filters': {'run_id': 'PR-00001'}}"])]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:required_calls_missing(["email.messages_get:{'id': 'em-lgr-001-counterparty'}"])`: trace required calls missing(["email messages get {'id' 'em-lgr-001-counterparty'}"]); the exact released evidence, answer, and persisted state must agree. [trace:required_calls_missing(["email.messages_get:{'id': 'em-lgr-001-counterparty'}"])]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:required_calls_missing(["email.messages_get:{'id': 'em-lgr-001-operations'}", "email.messages_get:{'id': 'em-lgr-001-prior'}", "sheets.drive_search:{'q': 'WORKITEM-001'}", "sheets.get_drive_item:{'item': 'workitem-001-control-pack.xlsx'}", "sheets.workbook_range:{'item': 'workitem-001-control-pack.xlsx', 'address': 'A1:F5'}", "sheets.get_drive_item:{'item': 'workitem-001-prior-tracker.xlsx'}", "sheets.workbook_range:{'item': 'workitem-001-prior-tracker.xlsx', 'address': 'A1:F3'}"])`: trace required calls missing(["email messages get {'id' 'em-lgr-001-operations'}", "email messages get {'id' 'em-lgr-001-prior'}", "sheets drive search {'q' 'WORKITEM-001'}", "sheets get drive item {'item' 'workitem-001-control-pack xlsx'}", "sheets workbook range {'item' 'workitem-001-control-pack xlsx', 'address' 'A1 F5'}", "sheets get drive item {'item' 'workitem-001-prior-tracker xlsx'}", "sheets workbook range {'item' 'workitem-001-prior-tracker xlsx', 'address' 'A1 F3'}"]); the exact released evidence, answer, and persisted state must agree. [trace:required_calls_missing(["email.messages_get:{'id': 'em-lgr-001-operations'}", "email.messages_get:{'id': 'em-lgr-001-prior'}", "sheets.drive_search:{'q': 'WORKITEM-001'}", "sheets.get_drive_item:{'item': 'workitem-001-control-pack.xlsx'}", "sheets.workbook_range:{'item': 'workitem-001-control-pack.xlsx', 'address': 'A1:F5'}", "sheets.get_drive_item:{'item': 'workitem-001-prior-tracker.xlsx'}", "sheets.workbook_range:{'item': 'workitem-001-prior-tracker.xlsx', 'address': 'A1:F3'}"])]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:required_calls_missing(["email.messages_list:{'q': 'WORKITEM-001', 'label': 'INBOX'}", "email.messages_get:{'id': 'em-lgr-001-approval'}", "email.attachments_get:{'message_id': 'em-lgr-001-approval'}"])`: trace required calls missing(["email messages list {'q' 'WORKITEM-001', 'label' 'INBOX'}", "email messages get {'id' 'em-lgr-001-approval'}", "email attachments get {'message id' 'em-lgr-001-approval'}"]); the exact released evidence, answer, and persisted state must agree. [trace:required_calls_missing(["email.messages_list:{'q': 'WORKITEM-001', 'label': 'INBOX'}", "email.messages_get:{'id': 'em-lgr-001-approval'}", "email.attachments_get:{'message_id': 'em-lgr-001-approval'}"])]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:required_calls_missing(["erp.data_find_entity_type:{'query': 'decision work item'}", "erp.data_get_entity_metadata:{'entity': 'DecisionWorkItems'}", "erp.data_find_entities:{'entity': 'DecisionWorkItems', 'filters': {'case_id': 'WORKITEM-001'}}"])`: trace required calls missing(["erp data find entity type {'query' 'decision work item'}", "erp data get entity metadata {'entity' 'DecisionWorkItems'}", "erp data find entities {'entity' 'DecisionWorkItems', 'filters' {'case id' 'WORKITEM-001'}}"]); the exact released evidence, answer, and persisted state must agree. [trace:required_calls_missing(["erp.data_find_entity_type:{'query': 'decision work item'}", "erp.data_get_entity_metadata:{'entity': 'DecisionWorkItems'}", "erp.data_find_entities:{'entity': 'DecisionWorkItems', 'filters': {'case_id': 'WORKITEM-001'}}"])]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:required_calls_missing(["erp.data_find_entity_type:{'query': 'decision work item'}", "erp.data_get_entity_metadata:{'entity': 'DecisionWorkItems'}"])`: trace required calls missing(["erp data find entity type {'query' 'decision work item'}", "erp data get entity metadata {'entity' 'DecisionWorkItems'}"]); the exact released evidence, answer, and persisted state must agree. [trace:required_calls_missing(["erp.data_find_entity_type:{'query': 'decision work item'}", "erp.data_get_entity_metadata:{'entity': 'DecisionWorkItems'}"])]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:required_calls_missing(["erp.data_get_entity_metadata:{'entity': 'DecisionScopeLines'}", "erp.data_find_entities:{'entity': 'DecisionScopeLines', 'filters': {'case_id': 'WORKITEM-001'}}", "erp.data_find_entities:{'entity': 'ApprovalPolicies', 'filters': {'doc_type': 'Operational Decision Work Item'}}", "erp.data_find_entities:{'entity': 'ApprovalRequests', 'filters': {'doc_id': 'WORKITEM-001'}}", "docs.get_document:{'doc_id': 'lgr-001-close-calendar'}", "sheets.workbook_range:{'item': 'workitem-001-control-pack.xlsx', 'address': 'A7:F12'}", "email.messages_get:{'id': 'em-lgr-001-request'}"])`: trace required calls missing(["erp data get entity metadata {'entity' 'DecisionScopeLines'}", "erp data find entities {'entity' 'DecisionScopeLines', 'filters' {'case id' 'WORKITEM-001'}}", "erp data find entities {'entity' 'ApprovalPolicies', 'filters' {'doc type' 'Operational Decision Work Item'}}", "erp data find entities {'entity' 'ApprovalRequests', 'filters' {'doc id' 'WORKITEM-001'}}", "docs get document {'doc id' 'lgr-001-close-calendar'}", "sheets workbook range {'item' 'workitem-001-control-pack xlsx', 'address' 'A7 F12'}", "email messages get {'id' 'em-lgr-001-request'}"]); the exact released evidence, answer, and persisted state must agree. [trace:required_calls_missing(["erp.data_get_entity_metadata:{'entity': 'DecisionScopeLines'}", "erp.data_find_entities:{'entity': 'DecisionScopeLines', 'filters': {'case_id': 'WORKITEM-001'}}", "erp.data_find_entities:{'entity': 'ApprovalPolicies', 'filters': {'doc_type': 'Operational Decision Work Item'}}", "erp.data_find_entities:{'entity': 'ApprovalRequests', 'filters': {'doc_id': 'WORKITEM-001'}}", "docs.get_document:{'doc_id': 'lgr-001-close-calendar'}", "sheets.workbook_range:{'item': 'workitem-001-control-pack.xlsx', 'address': 'A7:F12'}", "email.messages_get:{'id': 'em-lgr-001-request'}"])]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:required_calls_missing(["sheets.workbook_range:{'item': 'workitem-001-prior-tracker.xlsx', 'address': 'A1:F3'}"])`: trace required calls missing(["sheets workbook range {'item' 'workitem-001-prior-tracker xlsx', 'address' 'A1 F3'}"]); the exact released evidence, answer, and persisted state must agree. [trace:required_calls_missing(["sheets.workbook_range:{'item': 'workitem-001-prior-tracker.xlsx', 'address': 'A1:F3'}"])]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:required_calls_unsuccessful(["docs.search_documents:{'query': 'WORKITEM-001'}", "docs.get_document_metadata:{'doc_id': 'lgr-001-control-current'}", "docs.get_document:{'doc_id': 'lgr-001-control-current'}", "docs.get_document_metadata:{'doc_id': 'lgr-001-control-prior'}", "docs.get_document:{'doc_id': 'lgr-001-evidence-map'}"])`: trace required calls unsuccessful(["docs search documents {'query' 'WORKITEM-001'}", "docs get document metadata {'doc id' 'lgr-001-control-current'}", "docs get document {'doc id' 'lgr-001-control-current'}", "docs get document metadata {'doc id' 'lgr-001-control-prior'}", "docs get document {'doc id' 'lgr-001-evidence-map'}"]); the exact released evidence, answer, and persisted state must agree. [trace:required_calls_unsuccessful(["docs.search_documents:{'query': 'WORKITEM-001'}", "docs.get_document_metadata:{'doc_id': 'lgr-001-control-current'}", "docs.get_document:{'doc_id': 'lgr-001-control-current'}", "docs.get_document_metadata:{'doc_id': 'lgr-001-control-prior'}", "docs.get_document:{'doc_id': 'lgr-001-evidence-map'}"])]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:required_calls_unsuccessful(["docs.search_documents:{'query': 'duplicate'}", "docs.get_document:{'doc_id': 'duplicate-payment-control'}", 'erp.data_find_entities_sql:{\'sql\': "SELECT invoice, po_number, amount, settled, closed, trans_date FROM erp_vend_trans WHERE account IN (\'PVEN-21\',\'PVEN-22\') AND txn_type=\'Invoice\' ORDER BY po_number, trans_date"}', 'erp.data_find_entities_sql:{\'sql\': "SELECT o.invoice AS open_invoice, o.po_number, o.amount, s.invoice AS settled_invoice, s.trans_date AS settled_date FROM erp_vend_trans o JOIN erp_vend_trans s ON s.account=o.account AND s.po_number=o.po_number AND s.amount=o.amount AND s.closed=1 AND s.txn_type=\'Invoice\' WHERE o.closed=0 AND o.txn_type=\'Invoice\'"}', "email.messages_list:{'q': 'statement'}", "email.messages_get:{'id': 'em-0701'}", "email.attachments_get:{'message_id': 'em-0701'}", "erp.data_find_entities:{'entity': 'PaymentRunLines', 'filters': {'run_id': 'PR-00001'}}"])`: trace required calls unsuccessful(["docs search documents {'query' 'duplicate'}", "docs get document {'doc id' 'duplicate-payment-control'}", 'erp data find entities sql {\'sql\' "SELECT invoice, po number, amount, settled, closed, trans date FROM erp vend trans WHERE account IN (\'PVEN-21\',\'PVEN-22\') AND txn type=\'Invoice\' ORDER BY po number, trans date"}', 'erp data find entities sql {\'sql\' "SELECT o invoice AS open invoice, o po number, o amount, s invoice AS settled invoice, s trans date AS settled date FROM erp vend trans o JOIN erp vend trans s ON s account=o account AND s po number=o po number AND s amount=o amount AND s closed=1 AND s txn type=\'Invoice\' WHERE o closed=0 AND o txn type=\'Invoice\'"}', "email messages list {'q' 'statement'}", "email messages get {'id' 'em-0701'}", "email attachments get {'message id' 'em-0701'}", "erp data find entities {'entity' 'PaymentRunLines', 'filters' {'run id' 'PR-00001'}}"]); the exact released evidence, answer, and persisted state must agree. [trace:required_calls_unsuccessful(["docs.search_documents:{'query': 'duplicate'}", "docs.get_document:{'doc_id': 'duplicate-payment-control'}", 'erp.data_find_entities_sql:{\'sql\': "SELECT invoice, po_number, amount, settled, closed, trans_date FROM erp_vend_trans WHERE account IN (\'PVEN-21\',\'PVEN-22\') AND txn_type=\'Invoice\' ORDER BY po_number, trans_date"}', 'erp.data_find_entities_sql:{\'sql\': "SELECT o.invoice AS open_invoice, o.po_number, o.amount, s.invoice AS settled_invoice, s.trans_date AS settled_date FROM erp_vend_trans o JOIN erp_vend_trans s ON s.account=o.account AND s.po_number=o.po_number AND s.amount=o.amount AND s.closed=1 AND s.txn_type=\'Invoice\' WHERE o.closed=0 AND o.txn_type=\'Invoice\'"}', "email.messages_list:{'q': 'statement'}", "email.messages_get:{'id': 'em-0701'}", "email.attachments_get:{'message_id': 'em-0701'}", "erp.data_find_entities:{'entity': 'PaymentRunLines', 'filters': {'run_id': 'PR-00001'}}"])]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:required_calls_unsuccessful(["email.messages_get:{'id': 'em-lgr-001-counterparty'}"])`: trace required calls unsuccessful(["email messages get {'id' 'em-lgr-001-counterparty'}"]); the exact released evidence, answer, and persisted state must agree. [trace:required_calls_unsuccessful(["email.messages_get:{'id': 'em-lgr-001-counterparty'}"])]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:required_calls_unsuccessful(["email.messages_get:{'id': 'em-lgr-001-operations'}", "email.messages_get:{'id': 'em-lgr-001-prior'}", "sheets.drive_search:{'q': 'WORKITEM-001'}", "sheets.get_drive_item:{'item': 'workitem-001-control-pack.xlsx'}", "sheets.workbook_range:{'item': 'workitem-001-control-pack.xlsx', 'address': 'A1:F5'}", "sheets.get_drive_item:{'item': 'workitem-001-prior-tracker.xlsx'}", "sheets.workbook_range:{'item': 'workitem-001-prior-tracker.xlsx', 'address': 'A1:F3'}"])`: trace required calls unsuccessful(["email messages get {'id' 'em-lgr-001-operations'}", "email messages get {'id' 'em-lgr-001-prior'}", "sheets drive search {'q' 'WORKITEM-001'}", "sheets get drive item {'item' 'workitem-001-control-pack xlsx'}", "sheets workbook range {'item' 'workitem-001-control-pack xlsx', 'address' 'A1 F5'}", "sheets get drive item {'item' 'workitem-001-prior-tracker xlsx'}", "sheets workbook range {'item' 'workitem-001-prior-tracker xlsx', 'address' 'A1 F3'}"]); the exact released evidence, answer, and persisted state must agree. [trace:required_calls_unsuccessful(["email.messages_get:{'id': 'em-lgr-001-operations'}", "email.messages_get:{'id': 'em-lgr-001-prior'}", "sheets.drive_search:{'q': 'WORKITEM-001'}", "sheets.get_drive_item:{'item': 'workitem-001-control-pack.xlsx'}", "sheets.workbook_range:{'item': 'workitem-001-control-pack.xlsx', 'address': 'A1:F5'}", "sheets.get_drive_item:{'item': 'workitem-001-prior-tracker.xlsx'}", "sheets.workbook_range:{'item': 'workitem-001-prior-tracker.xlsx', 'address': 'A1:F3'}"])]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:required_calls_unsuccessful(["email.messages_list:{'q': 'WORKITEM-001', 'label': 'INBOX'}", "email.messages_get:{'id': 'em-lgr-001-approval'}", "email.attachments_get:{'message_id': 'em-lgr-001-approval'}"])`: trace required calls unsuccessful(["email messages list {'q' 'WORKITEM-001', 'label' 'INBOX'}", "email messages get {'id' 'em-lgr-001-approval'}", "email attachments get {'message id' 'em-lgr-001-approval'}"]); the exact released evidence, answer, and persisted state must agree. [trace:required_calls_unsuccessful(["email.messages_list:{'q': 'WORKITEM-001', 'label': 'INBOX'}", "email.messages_get:{'id': 'em-lgr-001-approval'}", "email.attachments_get:{'message_id': 'em-lgr-001-approval'}"])]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:required_calls_unsuccessful(["erp.data_find_entity_type:{'query': 'decision work item'}", "erp.data_get_entity_metadata:{'entity': 'DecisionWorkItems'}", "erp.data_find_entities:{'entity': 'DecisionWorkItems', 'filters': {'case_id': 'WORKITEM-001'}}"])`: trace required calls unsuccessful(["erp data find entity type {'query' 'decision work item'}", "erp data get entity metadata {'entity' 'DecisionWorkItems'}", "erp data find entities {'entity' 'DecisionWorkItems', 'filters' {'case id' 'WORKITEM-001'}}"]); the exact released evidence, answer, and persisted state must agree. [trace:required_calls_unsuccessful(["erp.data_find_entity_type:{'query': 'decision work item'}", "erp.data_get_entity_metadata:{'entity': 'DecisionWorkItems'}", "erp.data_find_entities:{'entity': 'DecisionWorkItems', 'filters': {'case_id': 'WORKITEM-001'}}"])]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:required_calls_unsuccessful(["erp.data_find_entity_type:{'query': 'decision work item'}", "erp.data_get_entity_metadata:{'entity': 'DecisionWorkItems'}"])`: trace required calls unsuccessful(["erp data find entity type {'query' 'decision work item'}", "erp data get entity metadata {'entity' 'DecisionWorkItems'}"]); the exact released evidence, answer, and persisted state must agree. [trace:required_calls_unsuccessful(["erp.data_find_entity_type:{'query': 'decision work item'}", "erp.data_get_entity_metadata:{'entity': 'DecisionWorkItems'}"])]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:required_calls_unsuccessful(["erp.data_get_entity_metadata:{'entity': 'DecisionScopeLines'}", "erp.data_find_entities:{'entity': 'DecisionScopeLines', 'filters': {'case_id': 'WORKITEM-001'}}", "erp.data_find_entities:{'entity': 'ApprovalPolicies', 'filters': {'doc_type': 'Operational Decision Work Item'}}", "erp.data_find_entities:{'entity': 'ApprovalRequests', 'filters': {'doc_id': 'WORKITEM-001'}}", "docs.get_document:{'doc_id': 'lgr-001-close-calendar'}", "sheets.workbook_range:{'item': 'workitem-001-control-pack.xlsx', 'address': 'A7:F12'}", "email.messages_get:{'id': 'em-lgr-001-request'}"])`: trace required calls unsuccessful(["erp data get entity metadata {'entity' 'DecisionScopeLines'}", "erp data find entities {'entity' 'DecisionScopeLines', 'filters' {'case id' 'WORKITEM-001'}}", "erp data find entities {'entity' 'ApprovalPolicies', 'filters' {'doc type' 'Operational Decision Work Item'}}", "erp data find entities {'entity' 'ApprovalRequests', 'filters' {'doc id' 'WORKITEM-001'}}", "docs get document {'doc id' 'lgr-001-close-calendar'}", "sheets workbook range {'item' 'workitem-001-control-pack xlsx', 'address' 'A7 F12'}", "email messages get {'id' 'em-lgr-001-request'}"]); the exact released evidence, answer, and persisted state must agree. [trace:required_calls_unsuccessful(["erp.data_get_entity_metadata:{'entity': 'DecisionScopeLines'}", "erp.data_find_entities:{'entity': 'DecisionScopeLines', 'filters': {'case_id': 'WORKITEM-001'}}", "erp.data_find_entities:{'entity': 'ApprovalPolicies', 'filters': {'doc_type': 'Operational Decision Work Item'}}", "erp.data_find_entities:{'entity': 'ApprovalRequests', 'filters': {'doc_id': 'WORKITEM-001'}}", "docs.get_document:{'doc_id': 'lgr-001-close-calendar'}", "sheets.workbook_range:{'item': 'workitem-001-control-pack.xlsx', 'address': 'A7:F12'}", "email.messages_get:{'id': 'em-lgr-001-request'}"])]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:required_calls_unsuccessful(["sheets.workbook_range:{'item': 'workitem-001-prior-tracker.xlsx', 'address': 'A1:F3'}"])`: trace required calls unsuccessful(["sheets workbook range {'item' 'workitem-001-prior-tracker xlsx', 'address' 'A1 F3'}"]); the exact released evidence, answer, and persisted state must agree. [trace:required_calls_unsuccessful(["sheets.workbook_range:{'item': 'workitem-001-prior-tracker.xlsx', 'address': 'A1:F3'}"])]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:required_servers_missing(['docs', 'email', 'erp', 'sheets'])`: trace required servers missing(['docs', 'email', 'erp', 'sheets']); the exact released evidence, answer, and persisted state must agree. [trace:required_servers_missing(['docs', 'email', 'erp', 'sheets'])]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:required_servers_missing(['docs', 'sheets'])`: trace required servers missing(['docs', 'sheets']); the exact released evidence, answer, and persisted state must agree. [trace:required_servers_missing(['docs', 'sheets'])]
  • Procedure: For lgr100-001-duplicate-payment-mar, deterministically verify `trace:required_write_missing`: trace required write missing; the exact released evidence, answer, and persisted state must agree. [trace:required_write_missing]
Open task record

Seeded evidence

Asset room

01-employee-request.mdtask_files/lgr100-001-duplicate-payment-mar/assetsTeamsMD526 B

**Robin Vale · Treasury · Teams 08:05, Friday 6 March** Before the office-supplies run leaves the bank, tell Robin which documents can safely be paid and what must be stopped. This is needed for today's operating review. There was an earlier draft and several teams have touched the records, so please work out what is current before you commit to a position.…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
02-open-decision-work-item.jsontask_files/lgr100-001-duplicate-payment-mar/assetsDynamics DecisionWorkItemsJSON1.4 KB

{ "case": { "case_id": "WORKITEM-001", "decided_at": null, "decision_code": null, "evidence_refs": null, "opened_at": "2026-03-02T08:05:00Z", "owner": "finance-operations", "rationale": null, "status": "open", "subject": "Before the office-supplies run leaves the bank, tell Robin which documents can safely be paid and what must be stopped.", "task_id": "lgr…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
03-lgr-001-control-current.mdtask_files/lgr100-001-duplicate-payment-mar/assetsGoverned document libraryMD3.2 KB

<!-- doc_id: lgr-001-control-current; version: FIN-CONTROL-2026.03; effective: 2026-03-01 --> > SIMULATION ONLY # Anomaly Triage decision control Revision: FIN-CONTROL-2026.03 Effective: 2026-03-01 Case scope: WORKITEM-001 ## Required evidence intersection Establish immutable case and subject identity; identify the operative authority or policy revision; re…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
04-lgr-001-control-prior.mdtask_files/lgr100-001-duplicate-payment-mar/assetsGoverned document libraryMD454 B

<!-- doc_id: lgr-001-control-prior; version: FIN-CONTROL-2025.11; effective: 2025-11-01 --> > SIMULATION ONLY # Prior anomaly triage control Revision: FIN-CONTROL-2025.11 Effective: 2025-11-01 through 2026-02-28 Status: SUPERSEDED This older control permitted the following shortcut: Reject every invoice with a repeated amount or trust the proposal without c…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
05-lgr-001-evidence-map.mdtask_files/lgr100-001-duplicate-payment-mar/assetsGoverned document libraryMD776 B

<!-- doc_id: lgr-001-evidence-map; version: MAP-2026.03; effective: 2026-03-01 --> > SIMULATION ONLY # Evidence map for WORKITEM-001 Question: Before the office-supplies run leaves the bank, tell Robin which documents can safely be paid and what must be stopped. The analysis must reconcile the proposed run, settled AP history, purchase-order identity, the c…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
06-lgr-001-close-calendar.mdtask_files/lgr100-001-duplicate-payment-mar/assetsGoverned document libraryMD575 B

<!-- doc_id: lgr-001-close-calendar; version: CLOSE-2026.03; effective: 2026-03-01 --> > SIMULATION ONLY # March 2026 close calendar Revision: CLOSE-2026.03 Effective: 2026-03-01 Scope: WORKITEM-001 World date: 2026-03-02 - The posting window for the WORKITEM-001 scope closes on 2026-03-07. - Standard processing lead time: 1 calendar day(s) from the decisio…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
07-lgr-001-handoff-standard.mdtask_files/lgr100-001-duplicate-payment-mar/assetsGoverned document libraryMD432 B

<!-- doc_id: lgr-001-handoff-standard; version: HANDOFF-2026.02; effective: 2026-02-15 --> > SIMULATION ONLY # Finance Controls decision handoff standard Revision: HANDOFF-2026.02 For WORKITEM-001, Finance Controls requires the decision code, the key numerical or record conclusion, the immutable evidence references, and any surviving hold or alternative. Th…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
08-lgr-001-identity-control.mdtask_files/lgr100-001-duplicate-payment-mar/assetsGoverned document libraryMD514 B

<!-- doc_id: lgr-001-identity-control; version: ID-2026.01; effective: 2026-01-10 --> > SIMULATION ONLY # Identity resolution control Revision: ID-2026.01 The task-world identifiers `duplicate, duplicate-payment-control, ContosoPaymentRunPropose, 2026-03-06, USMF-OPER, OFFICE, invoice, po_number, amount, settled, closed, trans_date` may describe accounts, d…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
09-lgr-001-exception-policy.mdtask_files/lgr100-001-duplicate-payment-mar/assetsGoverned document libraryMD393 B

<!-- doc_id: lgr-001-exception-policy; version: EXC-2026.03; effective: 2026-03-01 --> > SIMULATION ONLY # Exception ownership policy Revision: EXC-2026.03 An unresolved conflict for WORKITEM-001 stays visible with an owner and a reason. Do not make totals agree by deleting, netting, or broadly changing neighboring records. A supported no-action or unavaila…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
10-em-lgr-001-request.emltask_files/lgr100-001-duplicate-payment-mar/assetsGmail mailboxEML636 B

From: requester@contoso-sim.example To: finance-ops@contoso-sim.example Date: 2026-03-02T08:05:00Z Subject: WORKITEM-001 request Message-ID: <em-lgr-001-request@ledgerbench.invalid> X-LedgerBench-Case: WORKITEM-001 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Please take ownership of WORKITEM-001. Before the office-supplies run leaves the bank,…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
11-em-lgr-001-approval.emltask_files/lgr100-001-duplicate-payment-mar/assetsGmail mailboxEML811 B

From: controller@contoso-sim.example To: finance-ops@contoso-sim.example Date: 2026-03-02T08:28:00Z Subject: WORKITEM-001 scope approval Message-ID: <em-lgr-001-approval@ledgerbench.invalid> X-LedgerBench-Case: WORKITEM-001 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Scope approval for WORKITEM-001: Finance Operations may record one supported…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
12-em-lgr-001-operations.emltask_files/lgr100-001-duplicate-payment-mar/assetsGmail mailboxEML640 B

From: operations@contoso-sim.example To: finance-ops@contoso-sim.example Date: 2026-03-02T08:42:00Z Subject: WORKITEM-001 current operations Message-ID: <em-lgr-001-operations@ledgerbench.invalid> X-LedgerBench-Case: WORKITEM-001 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Operations status for WORKITEM-001: source records remain live as of 20…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
13-em-lgr-001-counterparty.emltask_files/lgr100-001-duplicate-payment-mar/assetsGmail mailboxEML654 B

From: ar@halden-freight.example To: finance-ops@contoso-sim.example Date: 2026-03-02T08:55:00Z Subject: WORKITEM-001 corrected invoice and credit note timing Message-ID: <em-lgr-001-counterparty@ledgerbench.invalid> X-LedgerBench-Case: WORKITEM-001 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Regarding WORKITEM-001: we can deliver the corrected…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
14-em-lgr-001-prior.emltask_files/lgr100-001-duplicate-payment-mar/assetsGmail mailboxEML527 B

From: former-reviewer@contoso-sim.example To: finance-ops@contoso-sim.example Date: 2026-02-20T16:10:00Z Subject: WORKITEM-001 prior draft Message-ID: <em-lgr-001-prior@ledgerbench.invalid> X-LedgerBench-Case: WORKITEM-001 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Prior draft for WORKITEM-001 under FIN-CONTROL-2025.11: Reject every invoice w…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
15-em-lgr-001-challenge.emltask_files/lgr100-001-duplicate-payment-mar/assetsGmail mailboxEML577 B

From: finance-controls@contoso-sim.example To: finance-ops@contoso-sim.example Date: 2026-03-02T09:01:00Z Subject: WORKITEM-001 control challenge Message-ID: <em-lgr-001-challenge@ledgerbench.invalid> X-LedgerBench-Case: WORKITEM-001 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Controls challenge on WORKITEM-001: show how the selected source da…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
16-workitem-001-control-pack.xlsxtask_files/lgr100-001-duplicate-payment-mar/assetsMicrosoft Graph workbookXLSX2.1 KB

Inspectable XLSX evidence in the released dataset.

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
17-workitem-001-prior-tracker.xlsxtask_files/lgr100-001-duplicate-payment-mar/assetsMicrosoft Graph workbookXLSX2.0 KB

Inspectable XLSX evidence in the released dataset.

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
18-current-control-copy.pdftask_files/lgr100-001-duplicate-payment-mar/assetsControlled PDF exportPDF3.7 KB

Inspectable PDF evidence in the released dataset.

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
19-source-analysis-brief.pdftask_files/lgr100-001-duplicate-payment-mar/assetsFinance workpaper PDFPDF884 B

Inspectable PDF evidence in the released dataset.

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
20-erp-master-data.csvtask_files/lgr100-001-duplicate-payment-mar/assetsERP masterCSV7.5 KB

case_id,source_table,account,cash_disc_code,city,contact_email,contact_name,credit_max,credit_rating,currency,customer_group,dataareaid,name,on_hold,payment_method,payment_term,phone,state,vendor_group WORKITEM-001,erp_customers,SYNCUS-0001,2%10N30,Pittsburgh,maria@www.adatum.com,Maria,25000.0,Good,USD,10,USMF,A. Datum Corporation,Open,,COD,412-555-0109,PA,…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
21-erp-transactions.csvtask_files/lgr100-001-duplicate-payment-mar/assetsERP transactionsCSV8.5 KB

case_id,source_table,account,amount,cash_disc_code,closed,currency,customer_name,dataareaid,deduction,description,disputed,due_date,hold_code,id,invoice,item,line,order_date,payment_method,po_number,qty_ordered,responsible,sales_id,settled,status,trans_date,txn_type,unit_price,vendor,voucher WORKITEM-001,erp_cust_trans,SYNCUS-0001,38045.51,,1,USD,,USMF,0,Su…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
22-bank-and-payment-state.csvtask_files/lgr100-001-duplicate-payment-mar/assetsBank and paymentCSV522 B

case_id,source_table,account,amount,cash_disc_taken,dataareaid,id,invoice_id,payment_id,settle_date,side WORKITEM-001,erp_settlements,SYNCUS-0001,8463.91,0.0,USMF,1,5,3460,2025-06-16,AR WORKITEM-001,erp_settlements,SYNCUS-0001,5674.81,115.81,USMF,2,4,3461,2025-07-29,AR WORKITEM-001,erp_settlements,SYNCUS-0001,39789.71,0.0,USMF,3,2,3462,2025-09-03,AR WORKITE…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
23-books-ledger.jsontask_files/lgr100-001-duplicate-payment-mar/assetsQuickBooks subsidiary ledgerJSON1.1 KB

{ "case_id": "WORKITEM-001", "sources": [ { "columns": [ "id", "display_name", "erp_ref", "email" ], "row_count": 0, "table": "books_customers", "task_relevant_rows": [] }, { "columns": [ "id", "customer_id", "doc_number", "txn_date", "due_date", "amount", "balance", "status", "memo" ], "row_count": 0, "table": "books_invoices", "task_relevant_rows": [] },…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
24-filings-evidence.jsontask_files/lgr100-001-duplicate-payment-mar/assetsSEC filing snapshotJSON8.9 KB

{ "case_id": "WORKITEM-001", "sources": [ { "columns": [ "cik", "ticker", "name" ], "row_count": 38, "table": "filings_companies", "task_relevant_rows": [ { "cik": "0000006201", "name": "American Airlines Group Inc.", "ticker": "AAL" }, { "cik": "0001108524", "name": "Salesforce, Inc.", "ticker": "CRM" }, { "cik": "0000037996", "name": "FORD MOTOR CO", "tic…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
25-odoo-procurement.jsontask_files/lgr100-001-duplicate-payment-mar/assetsOdoo ERPJSON3.2 KB

{ "case_id": "WORKITEM-001", "sources": [ { "columns": [ "ref", "name", "kind", "supplier_rank", "budget_dollars", "credit_limit", "payment_term", "email", "comment" ], "row_count": 0, "table": "erpb_partners", "task_relevant_rows": [] }, { "columns": [ "code", "name", "category", "type", "list_price", "standard_price", "routes", "comment" ], "row_count": 0…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
26-approvals-and-controls.jsontask_files/lgr100-001-duplicate-payment-mar/assetsControl recordsJSON5.6 KB

{ "case_id": "WORKITEM-001", "sources": [ { "columns": [ "request_id", "dataareaid", "doc_type", "doc_id", "amount", "currency", "submitted_by", "submitted_at", "note", "policy_id", "required_role", "status", "decided_by", "decided_at", "decision_reason" ], "row_count": 2, "table": "erp_approval_requests", "task_relevant_rows": [ { "amount": 45000.0, "curre…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
27-lineage-and-currency.mdtask_files/lgr100-001-duplicate-payment-mar/assetsEvidence custodianMD314 B

# WORKITEM-001 lineage Current sources carry their own immutable ids, effective dates, filing accessions, workbook modified times, or ERP keys. Resolve those fields directly. A filename or display name alone is not identity. The FY2025 look-alike case WORKITEM-2025-001 is closed history, not the open work item.

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
28-source-inventory.csvtask_files/lgr100-001-duplicate-payment-mar/assetsCase intakeCSV296 B

case_id,source_id,role,status WORKITEM-001,lgr-001-control-current,authority,inspect WORKITEM-001,em-lgr-001-approval,approval,inspect WORKITEM-001,workitem-001-control-pack.xlsx,register,inspect WORKITEM-001,WORKITEM-001,identity,inspect WORKITEM-001,APR-CASE-001,approval-request,inspect

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
29-current-versus-stale-notes.txttask_files/lgr100-001-duplicate-payment-mar/assetsControlsTXT355 B

Case WORKITEM-001 has both FIN-CONTROL-2026.03 and FIN-CONTROL-2025.11 evidence. Current records must be established by effective dates and modified timestamps. The prior draft is retained to test, not to follow. The prior tracker treats every support row as usable; the current register and the counterparty's own message decide which rows are excluded.

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
01-erp-data-find-entity-type.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialMicrosoft Dynamics 365 Finance MCP generic data, form, and ICustomAPI action toolsJSON1.5 KB

{ "evidence_group": "scope", "expected_absence": false, "material_reason": "Resolves the exact live work-item identity and schema before records are correlated.", "provider": "erp", "request": { "query": "decision work item" }, "response": { "matches": [ { "description": "Approval inbox: doc_type, doc_id, amount, status, decision", "entity": "ApprovalReques…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
02-erp-data-get-entity-metadata.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialMicrosoft Dynamics 365 Finance MCP generic data, form, and ICustomAPI action toolsJSON985 B

{ "evidence_group": "scope", "expected_absence": false, "material_reason": "Resolves the exact live work-item identity and schema before records are correlated.", "provider": "erp", "request": { "entity": "DecisionWorkItems" }, "response": { "description": "Task-scoped decision work items: immutable identity, workflow, subject, status, decision, evidence re…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
03-erp-data-find-entities.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialMicrosoft Dynamics 365 Finance MCP generic data, form, and ICustomAPI action toolsJSON1.1 KB

{ "evidence_group": "scope", "expected_absence": false, "material_reason": "Resolves the exact live work-item identity and schema before records are correlated.", "provider": "erp", "request": { "entity": "DecisionWorkItems", "filters": { "case_id": "WORKITEM-001" } }, "response": { "@odata.context": "$metadata#DecisionWorkItems", "@odata.count": 1, "value"…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
04-docs-search-documents.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialInternal governed policy and SOP libraryJSON1.7 KB

{ "evidence_group": "authority", "expected_absence": false, "material_reason": "Establishes which control revision governs and which retained document is superseded.", "provider": "docs", "request": { "query": "WORKITEM-001" }, "response": { "matches": [ { "doc_id": "lgr-001-control-current", "doc_type": "policy", "title": "WORKITEM-001 current decision con…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
05-docs-get-document-metadata.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialInternal governed policy and SOP libraryJSON653 B

{ "evidence_group": "authority", "expected_absence": false, "material_reason": "Establishes which control revision governs and which retained document is superseded.", "provider": "docs", "request": { "doc_id": "lgr-001-control-current" }, "response": { "doc_id": "lgr-001-control-current", "doc_type": "policy", "effective_date": "2026-03-01", "title": "WORK…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
06-docs-get-document.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialInternal governed policy and SOP libraryJSON3.8 KB

{ "evidence_group": "authority", "expected_absence": false, "material_reason": "Establishes which control revision governs and which retained document is superseded.", "provider": "docs", "request": { "doc_id": "lgr-001-control-current" }, "response": { "body": "> SIMULATION ONLY\n# Anomaly Triage decision control\n\nRevision: FIN-CONTROL-2026.03\nEffective…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
07-docs-get-document-metadata.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialInternal governed policy and SOP libraryJSON647 B

{ "evidence_group": "authority", "expected_absence": false, "material_reason": "Establishes which control revision governs and which retained document is superseded.", "provider": "docs", "request": { "doc_id": "lgr-001-control-prior" }, "response": { "doc_id": "lgr-001-control-prior", "doc_type": "policy", "effective_date": "2025-11-01", "title": "WORKITEM…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
08-docs-get-document.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialInternal governed policy and SOP libraryJSON1.3 KB

{ "evidence_group": "authority", "expected_absence": false, "material_reason": "Establishes which control revision governs and which retained document is superseded.", "provider": "docs", "request": { "doc_id": "lgr-001-evidence-map" }, "response": { "body": "> SIMULATION ONLY\n# Evidence map for WORKITEM-001\n\nQuestion: Before the office-supplies run leav…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
09-email-messages-list.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialGmail v1 users.messages, users.threads, labels, attachments, and send resourcesJSON1.0 KB

{ "evidence_group": "approval", "expected_absence": false, "material_reason": "Proves the independent approval scope without using the approval as the answer.", "provider": "email", "request": { "label": "INBOX", "q": "WORKITEM-001" }, "response": { "messages": [ { "id": "em-lgr-001-challenge", "threadId": "t_6ae4ffcc7a" }, { "id": "em-lgr-001-counterparty"…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
10-email-messages-get.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialGmail v1 users.messages, users.threads, labels, attachments, and send resourcesJSON1.9 KB

{ "evidence_group": "approval", "expected_absence": false, "material_reason": "Proves the independent approval scope without using the approval as the answer.", "provider": "email", "request": { "id": "em-lgr-001-approval" }, "response": { "id": "em-lgr-001-approval", "internalDate": "2026-03-02T08:28:00Z", "labelIds": [ "INBOX" ], "payload": { "body": { "d…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
11-email-attachments-get.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialGmail v1 users.messages, users.threads, labels, attachments, and send resourcesJSON1.1 KB

{ "evidence_group": "approval", "expected_absence": false, "material_reason": "Proves the independent approval scope without using the approval as the answer.", "provider": "email", "request": { "message_id": "em-lgr-001-approval" }, "response": { "attachmentId": "att_em-lgr-001-approval", "data": "Scope approval for WORKITEM-001: Finance Operations may rec…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
12-email-messages-get.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialGmail v1 users.messages, users.threads, labels, attachments, and send resourcesJSON1.6 KB

{ "evidence_group": "current_state", "expected_absence": false, "material_reason": "Distinguishes current operational evidence from stale look-alike records.", "provider": "email", "request": { "id": "em-lgr-001-operations" }, "response": { "id": "em-lgr-001-operations", "internalDate": "2026-03-02T08:42:00Z", "labelIds": [ "INBOX" ], "payload": { "body": {…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
13-email-messages-get.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialGmail v1 users.messages, users.threads, labels, attachments, and send resourcesJSON1.4 KB

{ "evidence_group": "current_state", "expected_absence": false, "material_reason": "Distinguishes current operational evidence from stale look-alike records.", "provider": "email", "request": { "id": "em-lgr-001-prior" }, "response": { "id": "em-lgr-001-prior", "internalDate": "2026-02-20T16:10:00Z", "labelIds": [ "INBOX" ], "payload": { "body": { "data": "…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
14-sheets-drive-search.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialMicrosoft Graph Drive and workbook resourcesJSON4.9 KB

{ "evidence_group": "current_state", "expected_absence": false, "material_reason": "Distinguishes current operational evidence from stale look-alike records.", "provider": "sheets", "request": { "q": "WORKITEM-001" }, "response": { "value": [ { "cells": [ "WORKITEM-001", "WORKITEM-001", "identity", "CASE-OPEN", "current", "anomaly_triage/duplicate-payment-m…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
15-sheets-get-drive-item.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialMicrosoft Graph Drive and workbook resourcesJSON769 B

{ "evidence_group": "current_state", "expected_absence": false, "material_reason": "Distinguishes current operational evidence from stale look-alike records.", "provider": "sheets", "request": { "item": "workitem-001-control-pack.xlsx" }, "response": { "createdBy": { "user": { "displayName": "Finance Controls" } }, "description": "Current evidence register…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
16-sheets-workbook-range.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialMicrosoft Graph Drive and workbook resourcesJSON4.5 KB

{ "evidence_group": "current_state", "expected_absence": false, "material_reason": "Distinguishes current operational evidence from stale look-alike records.", "provider": "sheets", "request": { "address": "A1:F5", "item": "workitem-001-control-pack.xlsx" }, "response": { "address": "Sheet1!A1:F5", "addressLocal": "Sheet1!A1:F5", "cellCount": 30, "columnCou…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
17-sheets-get-drive-item.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialMicrosoft Graph Drive and workbook resourcesJSON764 B

{ "evidence_group": "current_state", "expected_absence": false, "material_reason": "Distinguishes current operational evidence from stale look-alike records.", "provider": "sheets", "request": { "item": "workitem-001-prior-tracker.xlsx" }, "response": { "createdBy": { "user": { "displayName": "Former Reviewer" } }, "description": "Superseded tracker for WOR…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
18-sheets-workbook-range.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialMicrosoft Graph Drive and workbook resourcesJSON3.1 KB

{ "evidence_group": "current_state", "expected_absence": false, "material_reason": "Distinguishes current operational evidence from stale look-alike records.", "provider": "sheets", "request": { "address": "A1:F3", "item": "workitem-001-prior-tracker.xlsx" }, "response": { "address": "Sheet1!A1:F3", "addressLocal": "Sheet1!A1:F3", "cellCount": 18, "columnCo…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
19-erp-data-get-entity-metadata.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialMicrosoft Dynamics 365 Finance MCP generic data, form, and ICustomAPI action toolsJSON918 B

{ "evidence_group": "control_model", "expected_absence": false, "material_reason": "Supplies a required input to the amount, tolerance, authority, or control-date derivation.", "provider": "erp", "request": { "entity": "DecisionScopeLines" }, "response": { "description": "Documents or commitments in scope for a decision work item: case_id, line, document_re…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
20-erp-data-find-entities.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialMicrosoft Dynamics 365 Finance MCP generic data, form, and ICustomAPI action toolsJSON1.6 KB

{ "evidence_group": "control_model", "expected_absence": false, "material_reason": "Supplies a required input to the amount, tolerance, authority, or control-date derivation.", "provider": "erp", "request": { "entity": "DecisionScopeLines", "filters": { "case_id": "WORKITEM-001" } }, "response": { "@odata.context": "$metadata#DecisionScopeLines", "@odata.co…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
21-erp-data-find-entities.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialMicrosoft Dynamics 365 Finance MCP generic data, form, and ICustomAPI action toolsJSON1.4 KB

{ "evidence_group": "control_model", "expected_absence": false, "material_reason": "Supplies a required input to the amount, tolerance, authority, or control-date derivation.", "provider": "erp", "request": { "entity": "ApprovalPolicies", "filters": { "doc_type": "Operational Decision Work Item" } }, "response": { "@odata.context": "$metadata#ApprovalPolici…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
22-erp-data-find-entities.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialMicrosoft Dynamics 365 Finance MCP generic data, form, and ICustomAPI action toolsJSON1.9 KB

{ "evidence_group": "control_model", "expected_absence": false, "material_reason": "Supplies a required input to the amount, tolerance, authority, or control-date derivation.", "provider": "erp", "request": { "entity": "ApprovalRequests", "filters": { "doc_id": "WORKITEM-001" } }, "response": { "@odata.context": "$metadata#ApprovalRequests", "@odata.count":…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
23-docs-get-document.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialInternal governed policy and SOP libraryJSON1.1 KB

{ "evidence_group": "control_model", "expected_absence": false, "material_reason": "Supplies a required input to the amount, tolerance, authority, or control-date derivation.", "provider": "docs", "request": { "doc_id": "lgr-001-close-calendar" }, "response": { "body": "> SIMULATION ONLY\n# March 2026 close calendar\n\nRevision: CLOSE-2026.03\nEffective: 20…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
24-sheets-workbook-range.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialMicrosoft Graph Drive and workbook resourcesJSON5.0 KB

{ "evidence_group": "control_model", "expected_absence": false, "material_reason": "Supplies a required input to the amount, tolerance, authority, or control-date derivation.", "provider": "sheets", "request": { "address": "A7:F12", "item": "workitem-001-control-pack.xlsx" }, "response": { "address": "Sheet1!A7:F12", "addressLocal": "Sheet1!A7:F12", "cellCo…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
25-email-messages-get.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialGmail v1 users.messages, users.threads, labels, attachments, and send resourcesJSON1.6 KB

{ "evidence_group": "control_model", "expected_absence": false, "material_reason": "Supplies a required input to the amount, tolerance, authority, or control-date derivation.", "provider": "email", "request": { "id": "em-lgr-001-request" }, "response": { "id": "em-lgr-001-request", "internalDate": "2026-03-02T08:05:00Z", "labelIds": [ "INBOX" ], "payload":…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
26-email-messages-get.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialGmail v1 users.messages, users.threads, labels, attachments, and send resourcesJSON1.6 KB

{ "evidence_group": "external_constraint", "expected_absence": false, "material_reason": "Supplies the counterparty-owned date or cost that constrains the feasible options.", "provider": "email", "request": { "id": "em-lgr-001-counterparty" }, "response": { "id": "em-lgr-001-counterparty", "internalDate": "2026-03-02T08:55:00Z", "labelIds": [ "INBOX" ], "pa…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
27-docs-search-documents.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialInternal governed policy and SOP libraryJSON1.3 KB

{ "evidence_group": "source_systems", "expected_absence": false, "material_reason": "Provides task-native evidence needed to reconcile the proposed run, settled AP history, purchase-order identity, the current duplicate-control revision, and the vendor statement.", "provider": "docs", "request": { "query": "duplicate" }, "response": { "matches": [ { "doc_id…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
28-docs-get-document.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialInternal governed policy and SOP libraryJSON2.4 KB

{ "evidence_group": "source_systems", "expected_absence": false, "material_reason": "Provides task-native evidence needed to reconcile the proposed run, settled AP history, purchase-order identity, the current duplicate-control revision, and the vendor statement.", "provider": "docs", "request": { "doc_id": "duplicate-payment-control" }, "response": { "body…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
29-erp-data-find-entities-sql.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialMicrosoft Dynamics 365 Finance MCP generic data, form, and ICustomAPI action toolsJSON1.7 KB

{ "evidence_group": "source_systems", "expected_absence": false, "material_reason": "Provides task-native evidence needed to reconcile the proposed run, settled AP history, purchase-order identity, the current duplicate-control revision, and the vendor statement.", "provider": "erp", "request": { "sql": "SELECT invoice, po_number, amount, settled, closed, t…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
30-erp-data-find-entities-sql.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialMicrosoft Dynamics 365 Finance MCP generic data, form, and ICustomAPI action toolsJSON1.1 KB

{ "evidence_group": "source_systems", "expected_absence": false, "material_reason": "Provides task-native evidence needed to reconcile the proposed run, settled AP history, purchase-order identity, the current duplicate-control revision, and the vendor statement.", "provider": "erp", "request": { "sql": "SELECT o.invoice AS open_invoice, o.po_number, o.amou…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
31-email-messages-list.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialGmail v1 users.messages, users.threads, labels, attachments, and send resourcesJSON750 B

{ "evidence_group": "source_systems", "expected_absence": false, "material_reason": "Provides task-native evidence needed to reconcile the proposed run, settled AP history, purchase-order identity, the current duplicate-control revision, and the vendor statement.", "provider": "email", "request": { "q": "statement" }, "response": { "messages": [ { "id": "em…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
32-email-messages-get.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialGmail v1 users.messages, users.threads, labels, attachments, and send resourcesJSON1.9 KB

{ "evidence_group": "source_systems", "expected_absence": false, "material_reason": "Provides task-native evidence needed to reconcile the proposed run, settled AP history, purchase-order identity, the current duplicate-control revision, and the vendor statement.", "provider": "email", "request": { "id": "em-0701" }, "response": { "id": "em-0701", "internal…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
33-email-attachments-get.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialGmail v1 users.messages, users.threads, labels, attachments, and send resourcesJSON860 B

{ "evidence_group": "source_systems", "expected_absence": false, "material_reason": "Provides task-native evidence needed to reconcile the proposed run, settled AP history, purchase-order identity, the current duplicate-control revision, and the vendor statement.", "provider": "email", "request": { "message_id": "em-0701" }, "response": { "attachmentId": "a…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
34-erp-data-find-entities.jsontask_files/lgr100-001-duplicate-payment-mar/assets/materialMicrosoft Dynamics 365 Finance MCP generic data, form, and ICustomAPI action toolsJSON686 B

{ "evidence_group": "source_systems", "expected_absence": false, "material_reason": "Provides task-native evidence needed to reconcile the proposed run, settled AP history, purchase-order identity, the current duplicate-control revision, and the vendor statement.", "provider": "erp", "request": { "entity": "PaymentRunLines", "filters": { "run_id": "PR-00001…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file
30-agent-visible-asset-manifest.jsontask_files/lgr100-001-duplicate-payment-mar/assetsRelease builderJSON32.3 KB

{ "assets": [ { "bytes": 526, "evidence_role": "request", "filename": "01-employee-request.md", "kind": "md", "material": false, "sha256": "36906d5799b32be4c5b9cf18fb2ddd2f686b1abc39a78aa2bce7e3c5e9ca9fc7", "source": "Teams" }, { "bytes": 1420, "evidence_role": "identity", "filename": "02-open-decision-work-item.json", "kind": "json", "material": false, "sh…

Released input for lgr100-001-duplicate-payment-mar; immutable during evaluation.Open released file

Runnable world

Environment and tool contract

Live sandbox MCPlgr100-001-duplicate-payment-mar
Ready to create an isolated session

Released native runtime

Connect to 66 released LedgerBench-100 tools and mutate a private task snapshot.

The server creates a fresh task database, preserves all writes inside that session, and exposes the same tool implementation used by the Harbor release.Every button sends Streamable HTTP JSON-RPC to the checked-in world, records the native trajectory, and runs the release's deterministic verifier. No prerecorded tool responses are replayed; every result is computed from the session's seeded synthetic state.

Session-isolated stateNetwork-free rewardServer-side deterministic score
curl -i -X POST https://blobfish.ai/api/v1/benchmarks/ledgerbench-100/sandbox/mcp -H 'Content-Type: application/json' --data '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"1.0"}}}'
Live JSON-RPC inspectorNo request sent

Connect to see initialize, session negotiation, tools/list, and live tools/call responses.

MCP package pinfinance-world@3.4.0
MCP protocol2025-06-18
get_company_infobooks

CompanyInfo (GET /v3/company/{realmId}/companyinfo shape).

{
  "additionalProperties": false,
  "properties": {},
  "required": [],
  "type": "object"
}
querybooks

QBO query language (GET /v3/company/{realmId}/query shape). E.g. "SELECT * FROM Invoice WHERE CustomerRef = 'BC-114'". Entities: Customer, Invoice, CreditMemo, Payment. Operators: =, LIKE.

{
  "additionalProperties": false,
  "properties": {
    "q": {
      "type": "string"
    }
  },
  "required": [
    "q"
  ],
  "type": "object"
}
get_customerbooks

Read a Customer by Id (GET /v3/.../customer/{id} shape; Balance = open invoice total).

{
  "additionalProperties": false,
  "properties": {
    "customer_id": {
      "type": "string"
    }
  },
  "required": [
    "customer_id"
  ],
  "type": "object"
}
get_invoicebooks

Read an Invoice by Id or DocNumber (GET /v3/.../invoice/{id} shape).

{
  "additionalProperties": false,
  "properties": {
    "invoice": {
      "type": "string"
    }
  },
  "required": [
    "invoice"
  ],
  "type": "object"
}
get_creditmemobooks

Read a CreditMemo by Id or DocNumber (GET /v3/.../creditmemo/{id} shape).

{
  "additionalProperties": false,
  "properties": {
    "creditmemo": {
      "type": "string"
    }
  },
  "required": [
    "creditmemo"
  ],
  "type": "object"
}
get_paymentbooks

Read a Payment by Id (GET /v3/.../payment/{id} shape).

{
  "additionalProperties": false,
  "properties": {
    "payment_id": {
      "type": "string"
    }
  },
  "required": [
    "payment_id"
  ],
  "type": "object"
}
report_aged_receivablesbooks

AgedReceivables report (GET /v3/.../reports/AgedReceivables shape): open invoices bucketed by days past due. Credit memos are NOT netted (QBO behavior).

{
  "additionalProperties": false,
  "properties": {
    "as_of": {
      "type": "string"
    }
  },
  "required": [],
  "type": "object"
}
report_customer_balancebooks

CustomerBalance report shape: net open balance per customer.

{
  "additionalProperties": false,
  "properties": {},
  "required": [],
  "type": "object"
}
report_transaction_listbooks

TransactionList report shape: invoices, credit memos, payments in a date range.

{
  "additionalProperties": false,
  "properties": {
    "date_from": {
      "type": "string"
    },
    "date_to": {
      "type": "string"
    }
  },
  "required": [],
  "type": "object"
}
create_invoicebooks

POST /v3/.../invoice. This connection is accounting.read-scoped.

{
  "additionalProperties": false,
  "properties": {
    "invoice": {
      "type": "object"
    }
  },
  "required": [
    "invoice"
  ],
  "type": "object"
}
update_invoicebooks

Sparse update (POST /v3/.../invoice). This connection is accounting.read-scoped.

{
  "additionalProperties": false,
  "properties": {
    "invoice": {
      "type": "object"
    }
  },
  "required": [
    "invoice"
  ],
  "type": "object"
}
void_invoicebooks

Void (POST /v3/.../invoice?operation=void). This connection is accounting.read-scoped.

{
  "additionalProperties": false,
  "properties": {
    "invoice_id": {
      "type": "string"
    }
  },
  "required": [
    "invoice_id"
  ],
  "type": "object"
}
list_documentsdocs

List documents, optionally by type (policy, sop, template, statement).

{
  "additionalProperties": false,
  "properties": {
    "doc_type": {
      "type": "string"
    }
  },
  "required": [],
  "type": "object"
}
search_documentsdocs

Keyword search over titles and bodies.

{
  "additionalProperties": false,
  "properties": {
    "query": {
      "type": "string"
    }
  },
  "required": [
    "query"
  ],
  "type": "object"
}
get_documentdocs

Fetch a full document body.

{
  "additionalProperties": false,
  "properties": {
    "doc_id": {
      "type": "string"
    }
  },
  "required": [
    "doc_id"
  ],
  "type": "object"
}
get_document_metadatadocs

Document metadata only (type, version, effective date) — check currency before relying on a policy.

{
  "additionalProperties": false,
  "properties": {
    "doc_id": {
      "type": "string"
    }
  },
  "required": [
    "doc_id"
  ],
  "type": "object"
}
list_document_typesdocs

List document types with counts (policy, sop, template, statement, ...).

{
  "additionalProperties": false,
  "properties": {},
  "required": [],
  "type": "object"
}
messages_listemail

Search messages (users.messages.list). `q` matches subject/body/sender; optional label (default INBOX).

{
  "additionalProperties": false,
  "properties": {
    "label": {
      "type": "string"
    },
    "q": {
      "type": "string"
    }
  },
  "required": [
    "q"
  ],
  "type": "object"
}
messages_getemail

Fetch a full message (users.messages.get, format=full): headers, snippet, body, attachment parts.

{
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string"
    }
  },
  "required": [
    "id"
  ],
  "type": "object"
}
threads_getemail

Fetch a conversation thread (users.threads.get): all messages sharing the normalized subject.

{
  "additionalProperties": false,
  "properties": {
    "id": {
      "description": "a threadId from messages_list, or a message id",
      "type": "string"
    }
  },
  "required": [
    "id"
  ],
  "type": "object"
}
labels_listemail

List labels/folders with message counts (users.labels.list).

{
  "additionalProperties": false,
  "properties": {},
  "required": [],
  "type": "object"
}
attachments_getemail

Fetch an attachment's content by message id (users.messages.attachments.get; text extraction).

{
  "additionalProperties": false,
  "properties": {
    "message_id": {
      "type": "string"
    }
  },
  "required": [
    "message_id"
  ],
  "type": "object"
}
send_messageemail

Send a message from the shared finance mailbox (users.messages.send shape). Counterparties reply on their own schedule; a reply, if any, lands in the inbox and is returned here.

{
  "additionalProperties": false,
  "properties": {
    "body": {
      "type": "string"
    },
    "subject": {
      "type": "string"
    },
    "to": {
      "type": "string"
    }
  },
  "required": [
    "to",
    "subject",
    "body"
  ],
  "type": "object"
}
data_find_entity_typeerp

Find OData entity types matching a natural-language query. Returns multiple top hits; you decide which matches.

{
  "additionalProperties": false,
  "properties": {
    "query": {
      "description": "e.g. 'customer invoices', 'payment terms'",
      "type": "string"
    }
  },
  "required": [
    "query"
  ],
  "type": "object"
}
data_get_entity_metadataerp

Get metadata (field list) for an entity. Needed before find/create/update/delete entity calls.

{
  "additionalProperties": false,
  "properties": {
    "entity": {
      "type": "string"
    }
  },
  "required": [
    "entity"
  ],
  "type": "object"
}
data_find_entitieserp

Find/read data records for one entity with equality/contains filters. Paged (25 rows).

{
  "additionalProperties": false,
  "properties": {
    "entity": {
      "type": "string"
    },
    "filters": {
      "description": "field -> value; strings match case-insensitive substring, numbers match exactly",
      "type": "object"
    },
    "page": {
      "type": "integer"
    }
  },
  "required": [
    "entity"
  ],
  "type": "object"
}
data_find_entities_sqlerp

Find/read records using SQL (read-only single SELECT over erp_* tables; LIMIT 200 enforced). Replaces OData find in 10.0.48+.

{
  "additionalProperties": false,
  "properties": {
    "sql": {
      "type": "string"
    }
  },
  "required": [
    "sql"
  ],
  "type": "object"
}
data_create_entitieserp

Create data records using OData (no deep inserts). Subject to role security.

{
  "additionalProperties": false,
  "properties": {
    "entity": {
      "type": "string"
    },
    "records": {
      "type": "array"
    }
  },
  "required": [
    "entity",
    "records"
  ],
  "type": "object"
}
data_update_entitieserp

Update data records using OData. Subject to role security.

{
  "additionalProperties": false,
  "properties": {
    "entity": {
      "type": "string"
    },
    "updates": {
      "type": "array"
    }
  },
  "required": [
    "entity",
    "updates"
  ],
  "type": "object"
}
data_delete_entitieserp

Delete data records using OData. Subject to role security.

{
  "additionalProperties": false,
  "properties": {
    "entity": {
      "type": "string"
    },
    "keys": {
      "type": "array"
    }
  },
  "required": [
    "entity",
    "keys"
  ],
  "type": "object"
}
form_find_menu_itemerp

Find a menu item (application page) by search term.

{
  "additionalProperties": false,
  "properties": {
    "query": {
      "type": "string"
    }
  },
  "required": [
    "query"
  ],
  "type": "object"
}
form_open_menu_itemerp

Open a menu item (form). Returns the form view model (grid page 1; tabs closed by default).

{
  "additionalProperties": false,
  "properties": {
    "menu_item": {
      "description": "menu item name or form name",
      "type": "string"
    }
  },
  "required": [
    "menu_item"
  ],
  "type": "object"
}
form_close_formerp

Close an open form.

{
  "additionalProperties": false,
  "properties": {
    "form_id": {
      "type": "string"
    }
  },
  "required": [
    "form_id"
  ],
  "type": "object"
}
form_find_controlserp

Find controls on an open form. One search term per call.

{
  "additionalProperties": false,
  "properties": {
    "form_id": {
      "type": "string"
    },
    "search": {
      "type": "string"
    }
  },
  "required": [
    "form_id",
    "search"
  ],
  "type": "object"
}
form_open_or_close_taberp

Open or close a tab on the form. Opening reveals the tab's fields for the selected row.

{
  "additionalProperties": false,
  "properties": {
    "form_id": {
      "type": "string"
    },
    "open": {
      "type": "boolean"
    },
    "tab": {
      "type": "string"
    }
  },
  "required": [
    "form_id",
    "tab"
  ],
  "type": "object"
}
form_filter_formerp

Apply a quick filter across the form's grid columns.

{
  "additionalProperties": false,
  "properties": {
    "form_id": {
      "type": "string"
    },
    "value": {
      "type": "string"
    }
  },
  "required": [
    "form_id",
    "value"
  ],
  "type": "object"
}
form_filter_griderp

Filter the grid on one column. Only the 'matches' (substring) operator is supported.

{
  "additionalProperties": false,
  "properties": {
    "column": {
      "type": "string"
    },
    "form_id": {
      "type": "string"
    },
    "operator": {
      "description": "only 'matches' is supported",
      "type": "string"
    },
    "value": {
      "type": "string"
    }
  },
  "required": [
    "form_id",
    "column",
    "value"
  ],
  "type": "object"
}
form_sort_grid_columnerp

Sort the grid by a column.

{
  "additionalProperties": false,
  "properties": {
    "column": {
      "type": "string"
    },
    "direction": {
      "description": "asc|desc",
      "type": "string"
    },
    "form_id": {
      "type": "string"
    }
  },
  "required": [
    "form_id",
    "column"
  ],
  "type": "object"
}
form_select_grid_rowerp

Select a grid row by its _row id. Returns all fields incl. runtime-calculated values.

{
  "additionalProperties": false,
  "properties": {
    "form_id": {
      "type": "string"
    },
    "row": {
      "type": "integer"
    }
  },
  "required": [
    "form_id",
    "row"
  ],
  "type": "object"
}
form_click_controlerp

Click a control/action on the form (e.g. Collections, OpenTransactions, AgedBalances).

{
  "additionalProperties": false,
  "properties": {
    "control": {
      "type": "string"
    },
    "form_id": {
      "type": "string"
    }
  },
  "required": [
    "form_id",
    "control"
  ],
  "type": "object"
}
form_open_lookuperp

Open a lookup control (e.g. payment_term, cash_disc_code) and list its valid values.

{
  "additionalProperties": false,
  "properties": {
    "control": {
      "type": "string"
    },
    "form_id": {
      "type": "string"
    }
  },
  "required": [
    "form_id",
    "control"
  ],
  "type": "object"
}
form_set_control_valueserp

Set values on form controls (not lookup controls). Subject to role security.

{
  "additionalProperties": false,
  "properties": {
    "form_id": {
      "type": "string"
    },
    "values": {
      "type": "object"
    }
  },
  "required": [
    "form_id",
    "values"
  ],
  "type": "object"
}
form_save_formerp

Save the form. Subject to role security.

{
  "additionalProperties": false,
  "properties": {
    "form_id": {
      "type": "string"
    }
  },
  "required": [
    "form_id"
  ],
  "type": "object"
}
api_find_actionserp

Finds actions (ICustomAPI AI tools) you can invoke.

{
  "additionalProperties": false,
  "properties": {
    "query": {
      "type": "string"
    }
  },
  "required": [],
  "type": "object"
}
api_invoke_actionerp

Invokes an action by name with parameters.

{
  "additionalProperties": false,
  "properties": {
    "action": {
      "type": "string"
    },
    "parameters": {
      "type": "object"
    }
  },
  "required": [
    "action"
  ],
  "type": "object"
}
lookup_companyfilings

Resolve a company name or ticker to CIK (company_tickers.json shape).

{
  "additionalProperties": false,
  "properties": {
    "query": {
      "type": "string"
    }
  },
  "required": [
    "query"
  ],
  "type": "object"
}
list_available_conceptsfilings

Snapshot index helper: XBRL concepts available for a company (no EDGAR equivalent).

{
  "additionalProperties": false,
  "properties": {
    "ticker": {
      "type": "string"
    }
  },
  "required": [
    "ticker"
  ],
  "type": "object"
}
get_company_conceptfilings

All facts for one us-gaap concept (api/xbrl/companyconcept shape).

{
  "additionalProperties": false,
  "properties": {
    "concept": {
      "description": "e.g. AssetsCurrent",
      "type": "string"
    },
    "ticker": {
      "type": "string"
    }
  },
  "required": [
    "ticker",
    "concept"
  ],
  "type": "object"
}
get_company_factsfilings

ALL facts for a company across concepts (api/xbrl/companyfacts shape; large payload like the real endpoint).

{
  "additionalProperties": false,
  "properties": {
    "ticker": {
      "type": "string"
    }
  },
  "required": [
    "ticker"
  ],
  "type": "object"
}
get_xbrl_framesfilings

One concept, one annual period, across all companies in the snapshot (api/xbrl/frames shape).

{
  "additionalProperties": false,
  "properties": {
    "concept": {
      "type": "string"
    },
    "fy": {
      "description": "e.g. 2024",
      "type": "string"
    },
    "unit": {
      "type": "string"
    }
  },
  "required": [
    "concept",
    "fy"
  ],
  "type": "object"
}
get_submissionsfilings

Company filing history (data.sec.gov/submissions shape: filings.recent columnar arrays).

{
  "additionalProperties": false,
  "properties": {
    "ticker": {
      "type": "string"
    }
  },
  "required": [
    "ticker"
  ],
  "type": "object"
}
full_text_searchfilings

Full-text search across filing documents (efts.sec.gov search shape).

{
  "additionalProperties": false,
  "properties": {
    "q": {
      "type": "string"
    }
  },
  "required": [
    "q"
  ],
  "type": "object"
}
reporting_fieldsharness

The fields this piece of work must be filed under, with their expected types. The request itself will not list them — read them here, the way you would read any reporting system's schema before filing into it.

{
  "additionalProperties": false,
  "properties": {},
  "required": [],
  "type": "object"
}
submit_answerharness

File your findings as an object, e.g. {"outstanding_balance": 12345.67, "currency": "USD"}. Call reporting_fields to see which fields are required. Resubmitting a field overwrites it. Use the literal string "none" where the answer is that the thing does not exist.

{
  "additionalProperties": false,
  "properties": {
    "answers": {
      "description": "field -> value map",
      "type": "object"
    }
  },
  "required": [
    "answers"
  ],
  "type": "object"
}
list_submittedharness

See what you have submitted so far.

{
  "additionalProperties": false,
  "properties": {},
  "required": [],
  "type": "object"
}
fields_getodoo

List the fields of a model, with type. Discovery step before search_read.

{
  "additionalProperties": false,
  "properties": {
    "model": {
      "type": "string"
    }
  },
  "required": [
    "model"
  ],
  "type": "object"
}
search_readodoo

Search and read records. `domain` is a list of [field, operator, value] leaves combined with AND, e.g. [["product_code","=","P123"],["price","<",100]].

{
  "additionalProperties": false,
  "properties": {
    "domain": {
      "description": "list of [field, operator, value]",
      "type": "array"
    },
    "fields": {
      "description": "field names; omit for all",
      "type": "array"
    },
    "model": {
      "type": "string"
    },
    "page": {
      "type": "integer"
    }
  },
  "required": [
    "model"
  ],
  "type": "object"
}
createodoo

Create a record. Returns its name/id. Orders are created in state 'draft' — confirm them with action_confirm.

{
  "additionalProperties": false,
  "properties": {
    "model": {
      "type": "string"
    },
    "values": {
      "type": "object"
    }
  },
  "required": [
    "model",
    "values"
  ],
  "type": "object"
}
writeodoo

Update records matching a domain.

{
  "additionalProperties": false,
  "properties": {
    "domain": {
      "type": "array"
    },
    "model": {
      "type": "string"
    },
    "values": {
      "type": "object"
    }
  },
  "required": [
    "model",
    "domain",
    "values"
  ],
  "type": "object"
}
action_confirmodoo

Confirm draft orders by name — sale.order -> 'sale', purchase.order -> 'purchase', mrp.production -> 'confirmed'. A draft order is not a commitment and is not graded as one.

{
  "additionalProperties": false,
  "properties": {
    "model": {
      "type": "string"
    },
    "names": {
      "type": "array"
    }
  },
  "required": [
    "model",
    "names"
  ],
  "type": "object"
}
list_drive_itemssheets

List workbook files on the finance shared drive (GET /drive/root/children shape).

{
  "additionalProperties": false,
  "properties": {},
  "required": [],
  "type": "object"
}
get_drive_itemsheets

One file's metadata (GET /drive/items/{id} shape) — check lastModifiedDateTime before trusting a tracker.

{
  "additionalProperties": false,
  "properties": {
    "item": {
      "description": "file name/id",
      "type": "string"
    }
  },
  "required": [
    "item"
  ],
  "type": "object"
}
workbook_worksheetssheets

List worksheets of a workbook (GET /workbook/worksheets shape).

{
  "additionalProperties": false,
  "properties": {
    "item": {
      "type": "string"
    }
  },
  "required": [
    "item"
  ],
  "type": "object"
}
workbook_rangesheets

Read a range (GET /workbook/worksheets/Sheet1/range(address='A1:C4') shape). Returns the Graph workbookRange object.

{
  "additionalProperties": false,
  "properties": {
    "address": {
      "description": "A1 notation, e.g. A1:F4",
      "type": "string"
    },
    "item": {
      "type": "string"
    }
  },
  "required": [
    "item",
    "address"
  ],
  "type": "object"
}
workbook_used_rangesheets

Read the used range of Sheet1 (GET /workbook/worksheets/Sheet1/usedRange shape).

{
  "additionalProperties": false,
  "properties": {
    "item": {
      "type": "string"
    }
  },
  "required": [
    "item"
  ],
  "type": "object"
}
drive_searchsheets

Search file contents across the drive (GET /drive/root/search(q='...') shape, cell-level hits).

{
  "additionalProperties": false,
  "properties": {
    "q": {
      "type": "string"
    }
  },
  "required": [
    "q"
  ],
  "type": "object"
}

Replay the work

Trajectories

AgentDeterministic oracleExact-release local qualification
Score100.0%Strict pass
Tool calls47lgr100-001-duplicate-payment-mar
Run cost$0.000 output tokens
48 events
  1. Employee request

    **Robin Vale · Treasury · Teams 08:05, Friday 6 March** Before the office-supplies run leaves the bank, tell Robin which documents can safely be paid and what must be stopped. This is needed for today's operating review. There was an earlier draft and several teams have touched the records, so please work out what is current before you commit to a position. When the conclusion is supported, leave the open review in that state, confirm it saved correctly, and send Controls a short handoff with the answer and timing.

  2. 1
    Investigatereporting_fieldsok
    {}

    Successful tool response

  3. 2
    Investigatedata_find_entity_typeok
    {
      "query": "decision work item"
    }

    Successful tool response

  4. 3
    Investigatedata_get_entity_metadataok
    {
      "entity": "DecisionWorkItems"
    }

    Successful tool response

  5. 4
    Investigatelist_document_typesok
    {}

    Successful tool response

  6. 5
    Investigatedata_find_entitiesok
    {
      "entity": "DecisionWorkItems",
      "filters": {
        "case_id": "WORKITEM-001"
      }
    }

    Successful tool response

  7. 6
    Investigatesearch_documentsok
    {
      "query": "WORKITEM-001"
    }

    Successful tool response

  8. 7
    Investigateget_document_metadataok
    {
      "doc_id": "lgr-001-control-current"
    }

    Successful tool response

  9. 8
    Investigateget_documentok
    {
      "doc_id": "lgr-001-control-current"
    }

    Successful tool response

  10. 9
    Investigateget_document_metadataok
    {
      "doc_id": "lgr-001-control-prior"
    }

    Successful tool response

  11. 10
    Investigateget_documentok
    {
      "doc_id": "lgr-001-evidence-map"
    }

    Successful tool response

  12. 11
    Investigatemessages_listok
    {
      "label": "INBOX",
      "q": "WORKITEM-001"
    }

    Successful tool response

  13. 12
    Investigatemessages_getok
    {
      "id": "em-lgr-001-approval"
    }

    Successful tool response

  14. 13
    Investigateattachments_getok
    {
      "message_id": "em-lgr-001-approval"
    }

    Successful tool response

  15. 14
    Investigatemessages_getok
    {
      "id": "em-lgr-001-operations"
    }

    Successful tool response

  16. 15
    Investigatemessages_getok
    {
      "id": "em-lgr-001-prior"
    }

    Successful tool response

  17. 16
    Investigatedrive_searchok
    {
      "q": "WORKITEM-001"
    }

    Successful tool response

  18. 17
    Investigateget_drive_itemok
    {
      "item": "workitem-001-control-pack.xlsx"
    }

    Successful tool response

  19. 18
    Investigateworkbook_rangeok
    {
      "address": "A1:F5",
      "item": "workitem-001-control-pack.xlsx"
    }

    Successful tool response

  20. 19
    Investigateget_drive_itemok
    {
      "item": "workitem-001-prior-tracker.xlsx"
    }

    Successful tool response

  21. 20
    Investigateworkbook_rangeok
    {
      "address": "A1:F3",
      "item": "workitem-001-prior-tracker.xlsx"
    }

    Successful tool response

  22. 21
    Investigatedata_get_entity_metadataok
    {
      "entity": "DecisionScopeLines"
    }

    Successful tool response

  23. 22
    Investigatedata_find_entitiesok
    {
      "entity": "DecisionScopeLines",
      "filters": {
        "case_id": "WORKITEM-001"
      }
    }

    Successful tool response

  24. 23
    Investigatedata_find_entitiesok
    {
      "entity": "ApprovalPolicies",
      "filters": {
        "doc_type": "Operational Decision Work Item"
      }
    }

    Successful tool response

Methodology

How the numbers are made

01

A shared finance world behind eight MCP servers

Every task runs against one simulated company served through 8 MCP servers exposing 66 tools: a D365-shaped ERP, an Odoo-shaped procure-to-pay and manufacturing surface, a QuickBooks-style subsidiary ledger, a shared drive, email, document management, a reporting harness — and frozen real SEC XBRL filings (46,686 facts across 38 registrants, snapshot-pinned public data). The per-task world is 61 SQLite tables holding 68,098 seeded rows, with the clock frozen at 2026-03-02.

02

High-level work, not prescribed tool recipes

All 100 prompts are distinct employee requests. The agent must discover the relevant systems, correlate records, choose among three documented operating options, and decide what to change. Reference solutions span 0–11 successful calls, and exact call order is not graded.

03

Deep, inspectable evidence rooms

Every task publishes at least 58 task-scoped files covering operating policy, source communications, structured exports, approvals, provider contracts, current and stale source records, and control history. Only agent-visible context files appear in the asset room; sealed starting state and verifier contracts remain evaluation artifacts.

04

Specific deterministic outcome grading

Each task publishes 91–125 concrete criteria across investigation, correlation, decision quality, state transition, exact answer, and write-scope containment. Read-before-write and task-scoped mutation controls are enforced without an LLM judge or exact-sequence rubric.

05

Qualification evidence

The exact 3.4.2 release passed 100/100 oracle replays and 100/100 deterministic replays. Its 1400 applicable negative-control executions produced 0 false accepts.

06

Leaderboard honesty

Only a complete, version-pinned run over all 100 tasks may appear as a model row. Older, partial, or source-world runs remain disclosed in release reports but are not ranked here.

Qualification controls — excluded from the leaderboard
  • Reference solution: 100.0% across 100 tasks — Solvability control only; this is not a model leaderboard entry.

Run your model

Score your own model on the LedgerBench-100 sandbox.

Scores the public sandbox task with your model — verified by the sandbox grader, not a leaderboard entry.

Claude, ChatGPT, Grok, DeepSeek, or a checkpoint of your own behind an OpenAI-compatible endpoint. The run drives the same isolated MCP sandbox the Live MCP console uses; the score is the sandbox grader's verdict on the state your model left behind. Run the one public task inline, or a suite of the hosted frozen tasks as a background job and publish it below the official leaderboard. The full 100-task suite runs on Harbor with the command at the bottom. How runs, suites, and community runs work →

Required. Mint one with POST /api/v1/auth/keys. It authenticates the run and lists your runs afterwards; it is sent with the request only.
What to run
Today's inline run: one public sandbox task, scored and returned in this request.
Model
Not configured for you yet — paste a Anthropic key here for this run, or save one with POST /api/v1/accounts/providers. Never stored with the run.
140 model turns; the run is capped at four minutes.
Full 100-task suite on Harbor
harbor run -d blobfishai/ledgerbench-100 -a <agent> -m anthropic/claude-sonnet-5
Replace <agent> with your agent scaffold. A hosted run above scores the frozen tasks this host carries; a leaderboard row needs all 100 tasks on this release with traces.

Community runs

Self-runs on LedgerBench-100 — below the official leaderboard, never merged into it.

self-run · graded by the benchmark's own verifier · not the frozen official suite unless suite:full

Community runs are self-runs: a caller's model, graded by this benchmark's own verifier over the hosted frozen tasks the run covered. They are listed below the official leaderboard and never merged into it. The Coverage column counts the official tasks each run itself covered, out of the 100-task release; “hosted” tasks are the frozen tasks this host carries, which caps what any run here can cover. Only a full suite over every official task reads official suite. How to run and publish one →

Loading community runs…

Run it yourself

The benchmark is public. The world is executable.

Download the dataset, replay the oracle walks, inspect every task-specific criterion and asset, and submit the first pinned run over all 100 tasks.