Papers › Long-Horizon Forecasting of Complete Financial Statements with Forma
Long-Horizon Forecasting of Complete Financial Statements with Forma
Travis L. Johnson, Jiannan Jiang, Soumyabrata Chaudhuri, Yihao Chen, Lauren Falvey, Donal O'Cofaigh
Title, abstract, authors and date from arXiv's metadata (CC0); this paper is not in the Papers with Code archive (frozen 2025-07-28).
Specialist training beats generalist scale when forecasting financial statements. To our knowledge, no prior work jointly forecasts complete financial statements beyond one year, yet in a discounted-cash-flow valuation most firm value sits past that window. We release ProForma-20Q, a reproducible benchmark for forecasting 78 statement line items 1-20 quarters ahead, for anonymized firms, from past statements and an industry code, scored by change-space R². On it, Forma, a transformer that reads statements as sets of (account, quarter, value) tuples and maximizes a masked-tuple Gaussian likelihood, beats every competitor we field: classical machine learning, chained gradient boosting, a zero-shot time-series foundation model, and frontier large language models. Its lead widens with horizon, where valuation needs accuracy most, and its Gaussian predictive intervals never under-cover. Forma's forecasts nearly satisfy accounting identities; exact coherence is recoverable at no statistically significant accuracy cost. Its tuple interface supports scenario analysis without retraining, and we show that pinning future revenue paths sharpens the rest of the statement.
In Syntology For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="2608.11327")
Code
Syntology Ran 34 of 46 code samples harvested from 2 repositories linked to this paper; 12 have no recorded run. Of those that ran: 34 ran with no contract checked.
By repository: found in paper text by Syntology: 46 samples from 2 repositories, 34 ran. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.
Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.
Code Syntology ran Syntology
46 samples harvested; 34 ran; 0 honoured the contract we drafted; 12 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.
Licence: 0 of the 46 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.
Harvested from 2 repositories linked to this paper, official or community; each sample names its own and says which. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.
Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.
Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: 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. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.
9a2e329955bc07b5 · report
301947e878db8b85 · report
a78efa7957303097 · report
da0e01698bd93b38 · report
2a66bf767312634b · report
bb0cbbaa5075af5c · report
a76eb758aeb383af · report
1ff0b04199cec615 · report
b6b31a46d62faab7 · report
c5693488b4bc49d5 · report
0d7dad9545ad421f · report
afcac8a20985153e · report
0ca2d63496710dd4 · report
bda3b8cd54df0aa7 · report
dfd2a41a71fd5d10 · report
75c0f05939196a6e · report
5e4ca8cc3c6957dd · report
7dfe133fa504f9d1 · report
9ee1a6d2b43a7d73 · report
d2e26630e38ad032 · report
253b6e5cb59c7135 · report
422231df525f5469 · report
bbf363b68f36e91f · report
95c7b7683a4e2768 · report
4e410c00366e3314 · report
0ea2bc04ab003a55 · report
e30d565ae03f1693 · report
9f9f17bb754a92af · report
d3ef37b65cee0533 · report
22a49639552b5660 · report
fd688ce01b5d2cde · report
c132b630ab682403 · report
40250448ed22b573 · report
e29052aecf3560cc · report
83b192c3d523d761 · report
f6f6c1c151f75660 · report
cfeb85cf2fdf33ad · report
544c8030719e72aa · report
2cdf157d2a39a5f0 · report
7c0e589892b7b9a6 · report
05916d507e4c68d1 · report
297e695e02aa59bd · report
fa8232f82d95fe27 · report
e0de3c23ec909c8b · report
57403bcfbb636aa9 · report
66af5735d4ffc9e8 · report
Results from the paper
The Papers with Code archive ends with its 2025-07-28 snapshot. This paper's arXiv identifier, 2608.11327, was issued in August 2026, after that date, so the archive has no leaderboard rows for it.
Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections