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.
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
Model leaderboard
Only complete, version-pinned model runs on this exact release receive a rank.
Measured controls
Oracle and adversarial replays prove solvability and verifier discrimination. They are measured, but never ranked as model submissions.
100 distinct tasks
Task browser
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.
Reasoning, persisted state, and the answer must agree.
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
- investigationinvestigation.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.
- investigationinvestigation.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.
- investigationinvestigation.current_state
Compare the current operations message and evidence register with their stale counterparts, resolving conflicts by immutable IDs, effective dates, and modified timestamps.
- investigationinvestigation.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.
- analysisanalysis.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.
- analysisanalysis.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.
- decisiondecision.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.
- decisiondecision.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.
- statestate.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.
- statestate.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.
- statestate.collaboration
Send only the task-native communication the job requires, plus one concise Controls handoff that states the supported result, timing, constraint, and provenance.
- verificationverification.outcome
Verify that the task-native final state matches the derived result and that exactly one governed audit event records the case transition.
- verificationverification.readback
After writing, perform all 4 provider-native readbacks, including the exact case row and reopened completion thread, before claiming success.
- containmentcontainment.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.
- answeranswer.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.
- executionexecution.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]
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 file02-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 file03-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 file04-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 file05-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 file06-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 file07-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 file08-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 file09-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 file10-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 file11-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 file12-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 file13-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 file14-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 file15-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 file16-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 file17-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 file18-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 file19-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 file20-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 file21-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 file22-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 file23-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 file24-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 file25-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 file26-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 file27-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 file28-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 file29-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 file01-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 file02-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 file03-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 file04-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 file05-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 file06-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 file07-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 file08-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 file09-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 file10-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 file11-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 file12-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 file13-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 file14-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 file15-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 file16-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 file17-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 file18-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 file19-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 file20-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 file21-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 file22-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 file23-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 file24-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 file25-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 file26-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 file27-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 file28-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 file29-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 file30-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 file31-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 file32-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 file33-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 file34-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 file30-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 fileRunnable world
Environment and tool contract
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.
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"}}}'Connect to see initialize, session negotiation, tools/list, and live tools/call responses.
get_company_info
booksCompanyInfo (GET /v3/company/{realmId}/companyinfo shape).
{
"additionalProperties": false,
"properties": {},
"required": [],
"type": "object"
}query
booksQBO 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_customer
booksRead 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_invoice
booksRead an Invoice by Id or DocNumber (GET /v3/.../invoice/{id} shape).
{
"additionalProperties": false,
"properties": {
"invoice": {
"type": "string"
}
},
"required": [
"invoice"
],
"type": "object"
}get_creditmemo
booksRead a CreditMemo by Id or DocNumber (GET /v3/.../creditmemo/{id} shape).
{
"additionalProperties": false,
"properties": {
"creditmemo": {
"type": "string"
}
},
"required": [
"creditmemo"
],
"type": "object"
}get_payment
booksRead a Payment by Id (GET /v3/.../payment/{id} shape).
{
"additionalProperties": false,
"properties": {
"payment_id": {
"type": "string"
}
},
"required": [
"payment_id"
],
"type": "object"
}report_aged_receivables
booksAgedReceivables 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_balance
booksCustomerBalance report shape: net open balance per customer.
{
"additionalProperties": false,
"properties": {},
"required": [],
"type": "object"
}report_transaction_list
booksTransactionList 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_invoice
booksPOST /v3/.../invoice. This connection is accounting.read-scoped.
{
"additionalProperties": false,
"properties": {
"invoice": {
"type": "object"
}
},
"required": [
"invoice"
],
"type": "object"
}update_invoice
booksSparse update (POST /v3/.../invoice). This connection is accounting.read-scoped.
{
"additionalProperties": false,
"properties": {
"invoice": {
"type": "object"
}
},
"required": [
"invoice"
],
"type": "object"
}void_invoice
booksVoid (POST /v3/.../invoice?operation=void). This connection is accounting.read-scoped.
{
"additionalProperties": false,
"properties": {
"invoice_id": {
"type": "string"
}
},
"required": [
"invoice_id"
],
"type": "object"
}list_documents
docsList documents, optionally by type (policy, sop, template, statement).
{
"additionalProperties": false,
"properties": {
"doc_type": {
"type": "string"
}
},
"required": [],
"type": "object"
}search_documents
docsKeyword search over titles and bodies.
{
"additionalProperties": false,
"properties": {
"query": {
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
}get_document
docsFetch a full document body.
{
"additionalProperties": false,
"properties": {
"doc_id": {
"type": "string"
}
},
"required": [
"doc_id"
],
"type": "object"
}get_document_metadata
docsDocument 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_types
docsList document types with counts (policy, sop, template, statement, ...).
{
"additionalProperties": false,
"properties": {},
"required": [],
"type": "object"
}messages_list
emailSearch 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_get
emailFetch a full message (users.messages.get, format=full): headers, snippet, body, attachment parts.
{
"additionalProperties": false,
"properties": {
"id": {
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
}threads_get
emailFetch 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_list
emailList labels/folders with message counts (users.labels.list).
{
"additionalProperties": false,
"properties": {},
"required": [],
"type": "object"
}attachments_get
emailFetch 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_message
emailSend 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_type
erpFind 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_metadata
erpGet 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_entities
erpFind/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_sql
erpFind/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_entities
erpCreate 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_entities
erpUpdate data records using OData. Subject to role security.
{
"additionalProperties": false,
"properties": {
"entity": {
"type": "string"
},
"updates": {
"type": "array"
}
},
"required": [
"entity",
"updates"
],
"type": "object"
}data_delete_entities
erpDelete 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_item
erpFind a menu item (application page) by search term.
{
"additionalProperties": false,
"properties": {
"query": {
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
}form_open_menu_item
erpOpen 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_form
erpClose an open form.
{
"additionalProperties": false,
"properties": {
"form_id": {
"type": "string"
}
},
"required": [
"form_id"
],
"type": "object"
}form_find_controls
erpFind 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_tab
erpOpen 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_form
erpApply 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_grid
erpFilter 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_column
erpSort 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_row
erpSelect 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_control
erpClick 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_lookup
erpOpen 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_values
erpSet 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_form
erpSave the form. Subject to role security.
{
"additionalProperties": false,
"properties": {
"form_id": {
"type": "string"
}
},
"required": [
"form_id"
],
"type": "object"
}api_find_actions
erpFinds actions (ICustomAPI AI tools) you can invoke.
{
"additionalProperties": false,
"properties": {
"query": {
"type": "string"
}
},
"required": [],
"type": "object"
}api_invoke_action
erpInvokes an action by name with parameters.
{
"additionalProperties": false,
"properties": {
"action": {
"type": "string"
},
"parameters": {
"type": "object"
}
},
"required": [
"action"
],
"type": "object"
}lookup_company
filingsResolve a company name or ticker to CIK (company_tickers.json shape).
{
"additionalProperties": false,
"properties": {
"query": {
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
}list_available_concepts
filingsSnapshot index helper: XBRL concepts available for a company (no EDGAR equivalent).
{
"additionalProperties": false,
"properties": {
"ticker": {
"type": "string"
}
},
"required": [
"ticker"
],
"type": "object"
}get_company_concept
filingsAll 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_facts
filingsALL 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_frames
filingsOne 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_submissions
filingsCompany filing history (data.sec.gov/submissions shape: filings.recent columnar arrays).
{
"additionalProperties": false,
"properties": {
"ticker": {
"type": "string"
}
},
"required": [
"ticker"
],
"type": "object"
}full_text_search
filingsFull-text search across filing documents (efts.sec.gov search shape).
{
"additionalProperties": false,
"properties": {
"q": {
"type": "string"
}
},
"required": [
"q"
],
"type": "object"
}reporting_fields
harnessThe 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_answer
harnessFile 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_submitted
harnessSee what you have submitted so far.
{
"additionalProperties": false,
"properties": {},
"required": [],
"type": "object"
}fields_get
odooList the fields of a model, with type. Discovery step before search_read.
{
"additionalProperties": false,
"properties": {
"model": {
"type": "string"
}
},
"required": [
"model"
],
"type": "object"
}search_read
odooSearch 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"
}create
odooCreate 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"
}write
odooUpdate records matching a domain.
{
"additionalProperties": false,
"properties": {
"domain": {
"type": "array"
},
"model": {
"type": "string"
},
"values": {
"type": "object"
}
},
"required": [
"model",
"domain",
"values"
],
"type": "object"
}action_confirm
odooConfirm 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_items
sheetsList workbook files on the finance shared drive (GET /drive/root/children shape).
{
"additionalProperties": false,
"properties": {},
"required": [],
"type": "object"
}get_drive_item
sheetsOne 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_worksheets
sheetsList worksheets of a workbook (GET /workbook/worksheets shape).
{
"additionalProperties": false,
"properties": {
"item": {
"type": "string"
}
},
"required": [
"item"
],
"type": "object"
}workbook_range
sheetsRead 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_range
sheetsRead the used range of Sheet1 (GET /workbook/worksheets/Sheet1/usedRange shape).
{
"additionalProperties": false,
"properties": {
"item": {
"type": "string"
}
},
"required": [
"item"
],
"type": "object"
}drive_search
sheetsSearch 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
- 1Investigate
reporting_fieldsok{}Successful tool response
- 2Investigate
data_find_entity_typeok{ "query": "decision work item" }Successful tool response
- 3Investigate
data_get_entity_metadataok{ "entity": "DecisionWorkItems" }Successful tool response
- 4Investigate
list_document_typesok{}Successful tool response
- 5Investigate
data_find_entitiesok{ "entity": "DecisionWorkItems", "filters": { "case_id": "WORKITEM-001" } }Successful tool response
- 6Investigate
search_documentsok{ "query": "WORKITEM-001" }Successful tool response
- 7Investigate
get_document_metadataok{ "doc_id": "lgr-001-control-current" }Successful tool response
- 8Investigate
get_documentok{ "doc_id": "lgr-001-control-current" }Successful tool response
- 9Investigate
get_document_metadataok{ "doc_id": "lgr-001-control-prior" }Successful tool response
- 10Investigate
get_documentok{ "doc_id": "lgr-001-evidence-map" }Successful tool response
- 11Investigate
messages_listok{ "label": "INBOX", "q": "WORKITEM-001" }Successful tool response
- 12Investigate
messages_getok{ "id": "em-lgr-001-approval" }Successful tool response
- 13Investigate
attachments_getok{ "message_id": "em-lgr-001-approval" }Successful tool response
- 14Investigate
messages_getok{ "id": "em-lgr-001-operations" }Successful tool response
- 15Investigate
messages_getok{ "id": "em-lgr-001-prior" }Successful tool response
- 16Investigate
drive_searchok{ "q": "WORKITEM-001" }Successful tool response
- 17Investigate
get_drive_itemok{ "item": "workitem-001-control-pack.xlsx" }Successful tool response
- 18Investigate
workbook_rangeok{ "address": "A1:F5", "item": "workitem-001-control-pack.xlsx" }Successful tool response
- 19Investigate
get_drive_itemok{ "item": "workitem-001-prior-tracker.xlsx" }Successful tool response
- 20Investigate
workbook_rangeok{ "address": "A1:F3", "item": "workitem-001-prior-tracker.xlsx" }Successful tool response
- 21Investigate
data_get_entity_metadataok{ "entity": "DecisionScopeLines" }Successful tool response
- 22Investigate
data_find_entitiesok{ "entity": "DecisionScopeLines", "filters": { "case_id": "WORKITEM-001" } }Successful tool response
- 23Investigate
data_find_entitiesok{ "entity": "ApprovalPolicies", "filters": { "doc_type": "Operational Decision Work Item" } }Successful tool response
Methodology
How the numbers are made
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.
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.
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.
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.
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.
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 →
harbor run -d blobfishai/ledgerbench-100 -a <agent> -m anthropic/claude-sonnet-5Replace <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.