mudabench-eval
Navigating Large-Scale Document Collections: MuDABench for Multi-Document Analytical QA — Li et al. (2026) (arXiv:2604.22239, 2026)
What this evaluates
MuDABench probes multi-document analytical QA capabilities, requiring models to synthesize quantitative insights and perform inter-document reasoning across large collections of heterogeneous financial documents. It specifically tests cross-document filtering, conditional information extraction, and multi-step numerical computation beyond standard single-document retrieval.
Datasets
Metrics
final-answer accuracy (primary) — range: [0, 1]
- Accuracy_final = (1/|Q|) * sum(T_i), where T_i is 1 if the model's predicted answer is semantically equivalent to the gold answer (judged by an LLM), else 0.
process accuracy — range: [0, 1]
- Accuracy_process = (1/|Q|) * sum(P_i). For standard RAG, P_i uses conservative coverage min(C_i, 1-E_i) based on LLM-judged semantic matches to gold facts. For document-grounded workflows, P_i is cell-wise accuracy |C_hat_i|/|C_i| on aligned rows.
full accuracy — range: [0, 1]
- Accuracy_full = (1/|Q|) * sum(m_i * T_i), where m_i is 1 if process accuracy P_i equals 1, and T_i is 1 if the final answer is correct.
Input / output format
Input: A natural language question $Q_j$ and a collection of $k$ financial documents (annual reports, announcements, ESG reports) with associated metadata (ticker, fiscal year, document type).
Output: A final answer $A_i$ (numerical or textual), and optionally intermediate extracted facts or table cells.
Scoring recipe
def score_final(gold_ans, pred_ans):
return 1 if llm_judge_semantically_equivalent(pred_ans, gold_ans) else 0
def score_process_rag(gold_facts, pred_facts):
C = len(intersect_semantically(pred_facts, gold_facts)) / len(gold_facts)
E = count_missing_or_wrong(pred_facts, gold_facts) / len(gold_facts)
return min(C, 1 - E)
def score_process_cell(gold_cells, pred_cells):
return len(intersect_exact(pred_cells, gold_cells)) / len(gold_cells)
# Aggregate
final_acc = mean(score_final(g, p) for g, p in dataset)
process_acc = mean(score_process_rag(g, p) for g, p in dataset) # or cell variant
full_acc = mean((process_score == 1.0) * score_final(g, p) for g, p in dataset)
Common pitfalls
- Process coverage can be less reliable when equivalent evidence can be expressed in multiple non-atomic fact forms, leading to potential underestimation of intermediate extraction quality.
- The evaluation relies heavily on an LLM-as-a-judge for semantic equivalence, which may overestimate coverage or introduce inconsistency compared to exact string matching.
- Standard RAG and document-grounded workflows require different scoring formulas (coverage vs. cell-wise accuracy); applying the wrong recipe yields invalid process accuracy scores.
Evidence (verbatim from paper)
We evaluate each system with three metrics: process accuracy, final-answer accuracy, and full accuracy. Among them, final-answer accuracy is our primary end-task metric, while process accuracy is mainly used as a diagnostic signal for intermediate extraction quality. We note that process coverage can be less reliable when equivalent evidence can be expressed in multiple non-atomic fact forms. Final-answer accuracy. For each question $Q_{i}\in\mathcal{Q}$, let $A_{i}$ be the gold final answer and $\hat{A}{i}$ be the model prediction. Let $T{i}\in{0,1}$ denote whether $\hat{A}{i}$ is semantically equivalent to $A{i}$ (judged by an LLM): Accuracy_final = (1/|Q|) \sum_{i}T_{i.
Citation
@misc{li2026mudabench,
title={Navigating Large-Scale Document Collections: MuDABench for Multi-Document Analytical QA},
author={Li et al. (2026)},
year={2026},
note={arXiv:2604.22239}
}
1---2name: mudabench-eval3description: MuDABench probes multi-document analytical QA capabilities, requiring models to synthesize quantitative insights and perform inter-document reasoning across large collections of heterogeneous financial documents. It specifically tests cross-document filtering, conditional information extraction, and multi-step numerical computation beyond standard single-document retrieval. Use when the user wants to benchmark on MuDABench, or asks about evaluating this task. Reports final-answer accuracy.4---56# mudabench-eval78> Navigating Large-Scale Document Collections: MuDABench for Multi-Document Analytical QA — Li et al. (2026) (arXiv:2604.22239, 2026)910## What this evaluates1112MuDABench probes multi-document analytical QA capabilities, requiring models to synthesize quantitative insights and perform inter-document reasoning across large collections of heterogeneous financial documents. It specifically tests cross-document filtering, conditional information extraction, and multi-step numerical computation beyond standard single-document retrieval.1314## Datasets1516- **MuDABench** — total ?; splits: test (-1); repo https://github.com/Zhanli-Li/MuDABench1718## Metrics1920- `final-answer accuracy` **(primary)** — range: [0, 1]21 - Accuracy_final = (1/|Q|) * sum(T_i), where T_i is 1 if the model's predicted answer is semantically equivalent to the gold answer (judged by an LLM), else 0.22- `process accuracy` — range: [0, 1]23 - Accuracy_process = (1/|Q|) * sum(P_i). For standard RAG, P_i uses conservative coverage min(C_i, 1-E_i) based on LLM-judged semantic matches to gold facts. For document-grounded workflows, P_i is cell-wise accuracy |C_hat_i|/|C_i| on aligned rows.24- `full accuracy` — range: [0, 1]25 - Accuracy_full = (1/|Q|) * sum(m_i * T_i), where m_i is 1 if process accuracy P_i equals 1, and T_i is 1 if the final answer is correct.2627## Input / output format2829**Input**: A natural language question $Q_j$ and a collection of $k$ financial documents (annual reports, announcements, ESG reports) with associated metadata (ticker, fiscal year, document type).3031**Output**: A final answer $A_i$ (numerical or textual), and optionally intermediate extracted facts or table cells.3233## Scoring recipe3435```python36def score_final(gold_ans, pred_ans):37 return 1 if llm_judge_semantically_equivalent(pred_ans, gold_ans) else 03839def score_process_rag(gold_facts, pred_facts):40 C = len(intersect_semantically(pred_facts, gold_facts)) / len(gold_facts)41 E = count_missing_or_wrong(pred_facts, gold_facts) / len(gold_facts)42 return min(C, 1 - E)4344def score_process_cell(gold_cells, pred_cells):45 return len(intersect_exact(pred_cells, gold_cells)) / len(gold_cells)4647# Aggregate48final_acc = mean(score_final(g, p) for g, p in dataset)49process_acc = mean(score_process_rag(g, p) for g, p in dataset) # or cell variant50full_acc = mean((process_score == 1.0) * score_final(g, p) for g, p in dataset)51```5253## Common pitfalls5455- Process coverage can be less reliable when equivalent evidence can be expressed in multiple non-atomic fact forms, leading to potential underestimation of intermediate extraction quality.56- The evaluation relies heavily on an LLM-as-a-judge for semantic equivalence, which may overestimate coverage or introduce inconsistency compared to exact string matching.57- Standard RAG and document-grounded workflows require different scoring formulas (coverage vs. cell-wise accuracy); applying the wrong recipe yields invalid process accuracy scores.5859## Evidence (verbatim from paper)6061> We evaluate each system with three metrics: process accuracy, final-answer accuracy, and full accuracy. Among them, final-answer accuracy is our primary end-task metric, while process accuracy is mainly used as a diagnostic signal for intermediate extraction quality. We note that process coverage can be less reliable when equivalent evidence can be expressed in multiple non-atomic fact forms. Final-answer accuracy. For each question $Q_{i}\in\mathcal{Q}$, let $A_{i}$ be the gold final answer and $\hat{A}_{i}$ be the model prediction. Let $T_{i}\in{0,1}$ denote whether $\hat{A}_{i}$ is semantically equivalent to $A_{i}$ (judged by an LLM): Accuracy_final = (1/|Q|) \sum_{i}T_{i.6263## Citation6465```bibtex66@misc{li2026mudabench,67 title={Navigating Large-Scale Document Collections: MuDABench for Multi-Document Analytical QA},68 author={Li et al. (2026)},69 year={2026},70 note={arXiv:2604.22239}71}72```7374- arXiv: 2604.22239