{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/docmath-eval-evaluating-numerical-reasoning","title":"DocMath-Eval: Evaluating Math Reasoning Capabilities of LLMs in Understanding Long and Specialized Documents","arxiv_id":"2311.09805","date":"2023-11-16","proceeding":null,"authors":["Yilun Zhao","Yitao Long","Hongjun Liu","Ryo Kamoi","Linyong Nan","Lyuhao Chen","Yixin Liu","Xiangru Tang","Rui Zhang","Arman Cohan"],"abstract":"Recent LLMs have demonstrated remarkable performance in solving exam-like math word problems. However, the degree to which these numerical reasoning skills are effective in real-world scenarios, particularly in expert domains, is still largely unexplored. This paper introduces DocMath-Eval, a comprehensive benchmark specifically designed to evaluate the numerical reasoning capabilities of LLMs in the context of understanding and analyzing specialized documents containing both text and tables. We conduct an extensive evaluation of 48 LLMs with Chain-of-Thought and Program-of-Thought prompting methods, aiming to comprehensively assess the capabilities and limitations of existing LLMs in DocMath-Eval. We found that even the current best-performing system (i.e., GPT-4o) still significantly lags behind human experts in solving complex numerical reasoning problems grounded in long contexts. We believe that DocMath-Eval can serve as a valuable benchmark for evaluating LLMs' capabilities in solving challenging numerical reasoning problems within expert domains.","url_abs":"https://arxiv.org/abs/2311.09805v3","url_pdf":"https://arxiv.org/pdf/2311.09805v3.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"docmath-eval-evaluating-numerical-reasoning","repo_url":"https://github.com/yale-nlp/docmath-eval","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"math","task_name":"Math"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2311.09805","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2311.09805"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/yale-nlp/docmath-eval","reach":{"status":"ok"}}],"summary":{"ran_fixture":1,"ran":9,"unverified":5},"by_repo_kind":{"official":{"samples":15,"ran":10,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":15,"samples":[{"code_sha256_prefix":"bc7a7a194c238080","entry":"add_embeddings","repo":"yale-nlp/docmath-eval","repo_kind":"official","path":"retriever/src/index.py","file_url":"https://github.com/yale-nlp/docmath-eval/blob/HEAD/retriever/src/index.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"bc7a7a194c238080"}},{"code_sha256_prefix":"1244f0e9165aa97a","entry":"compare_two_numbers","repo":"yale-nlp/docmath-eval","repo_kind":"official","path":"utils/evaluation_utils.py","file_url":"https://github.com/yale-nlp/docmath-eval/blob/HEAD/utils/evaluation_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1244f0e9165aa97a"}},{"code_sha256_prefix":"cc3cc5ecc9833707","entry":"count_tokens","repo":"yale-nlp/docmath-eval","repo_kind":"official","path":"utils/model_input_utils.py","file_url":"https://github.com/yale-nlp/docmath-eval/blob/HEAD/utils/model_input_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"cc3cc5ecc9833707"}},{"code_sha256_prefix":"eb7d8895ef9a732f","entry":"get_context","repo":"yale-nlp/docmath-eval","repo_kind":"official","path":"utils/model_input_utils.py","file_url":"https://github.com/yale-nlp/docmath-eval/blob/HEAD/utils/model_input_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"eb7d8895ef9a732f"}},{"code_sha256_prefix":"87ea38e7e0bd8ee8","entry":"get_result","repo":"yale-nlp/docmath-eval","repo_kind":"official","path":"evaluation.py","file_url":"https://github.com/yale-nlp/docmath-eval/blob/HEAD/evaluation.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"87ea38e7e0bd8ee8"}},{"code_sha256_prefix":"8e223fdb31440a47","entry":"gpt_retriever_encode","repo":"yale-nlp/docmath-eval","repo_kind":"official","path":"retriever/retriever.py","file_url":"https://github.com/yale-nlp/docmath-eval/blob/HEAD/retriever/retriever.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8e223fdb31440a47"}},{"code_sha256_prefix":"647dd04dadfec3e4","entry":"prepare_pot_model_input","repo":"yale-nlp/docmath-eval","repo_kind":"official","path":"utils/model_input_utils.py","file_url":"https://github.com/yale-nlp/docmath-eval/blob/HEAD/utils/model_input_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"647dd04dadfec3e4"}},{"code_sha256_prefix":"d86ea5a31781b2d8","entry":"process_single_example_raw_outputs","repo":"yale-nlp/docmath-eval","repo_kind":"official","path":"run_llm.py","file_url":"https://github.com/yale-nlp/docmath-eval/blob/HEAD/run_llm.py","link_basis":"plan_row","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d86ea5a31781b2d8"}},{"code_sha256_prefix":"4f64fae0c2fbb2b6","entry":"round_up_to_decimal","repo":"yale-nlp/docmath-eval","repo_kind":"official","path":"utils/evaluation_utils.py","file_url":"https://github.com/yale-nlp/docmath-eval/blob/HEAD/utils/evaluation_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4f64fae0c2fbb2b6"}},{"code_sha256_prefix":"05e59123f91ef53c","entry":"within_eps","repo":"yale-nlp/docmath-eval","repo_kind":"official","path":"utils/evaluation_utils.py","file_url":"https://github.com/yale-nlp/docmath-eval/blob/HEAD/utils/evaluation_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"05e59123f91ef53c"}},{"code_sha256_prefix":"96c26791e0625049","entry":"evaluate_cot_pred_file","repo":"yale-nlp/docmath-eval","repo_kind":"official","path":"evaluation.py","file_url":"https://github.com/yale-nlp/docmath-eval/blob/HEAD/evaluation.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"96c26791e0625049"}},{"code_sha256_prefix":"3327c6a9371afd0a","entry":"evaluate_pot_pred_file","repo":"yale-nlp/docmath-eval","repo_kind":"official","path":"evaluation.py","file_url":"https://github.com/yale-nlp/docmath-eval/blob/HEAD/evaluation.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3327c6a9371afd0a"}},{"code_sha256_prefix":"01a15c9d6223ade5","entry":"hf_retriever_encode","repo":"yale-nlp/docmath-eval","repo_kind":"official","path":"retriever/retriever.py","file_url":"https://github.com/yale-nlp/docmath-eval/blob/HEAD/retriever/retriever.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"01a15c9d6223ade5"}},{"code_sha256_prefix":"d21b46766ef2f4be","entry":"process_text","repo":"yale-nlp/docmath-eval","repo_kind":"official","path":"retriever/utils/bm25_utils.py","file_url":"https://github.com/yale-nlp/docmath-eval/blob/HEAD/retriever/utils/bm25_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d21b46766ef2f4be"}},{"code_sha256_prefix":"984a68f53c315de8","entry":"truncate_text_tokens","repo":"yale-nlp/docmath-eval","repo_kind":"official","path":"retriever/retriever.py","file_url":"https://github.com/yale-nlp/docmath-eval/blob/HEAD/retriever/retriever.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"984a68f53c315de8"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}