Report Extract
About this benchmark
Extracts the header facts of a real equity research report (publisher, date, report type, subject, ticker, recommendation, currency, share and target price, previous target, shares issued, market cap), plus three lists: the credited analysts, the major shareholders, and any peer or sector comparison table.
These are dense multi-column PDFs with tables, disclaimers and footers, and the facts are scattered across pages rather than sitting on page one. The hard part is not reading but discipline: not attributing a peer company’s rating or target price to the subject, crediting only the report’s own authors, and leaving fields null when the document simply does not state them. Fields are weighted, with target price counting heaviest.
Cases
dialog-uobkh: UOB Kay Hian company report on Dialog (DLG MK), 4 pages, BUY with a MYR 2.70 target against a MYR 2.29 share price. No previous target stated.input withheldgreatec-maybank: Maybank company report on Greatech, 10 pages, the longest document in the suite. BUY, with the target raised from MYR 2.40 to MYR 3.66, so both the new and the superseded target must be picked up.input withheldplantation-mbsb: MBSB sector report on Plantation, 5 pages, POSITIVE. The null-discipline case: a sector report has no ticker, no share price and no target price, but its comparison table is full of per-company ratings and targets waiting to be mistaken for the subject’s.input withheld
Results
| Target | Score ↓ | Stddev | Latency | Tok/s | Cost | Errors |
|---|---|---|---|---|---|---|
| gpt-5.6-luna@openai | 100.0 | 0.0 | 4.8s | 71.3 | $0.0254 | 0/9 |
| gemini-3.7-flash | 100.0 | 0.0 | 6.8s | 139.3 | $0.0311 | 0/9 |
| gemini-3.6-flash@google-ai-studio | 100.0 | 0.0 | 7.3s | 174.7 | $0.0667 | 0/9 |
| gemini-3.5-flash@google-ai-studio | 100.0 | 0.0 | 11.4s | 143.6 | $0.1789 | 0/9 |
| gpt-5.6-terra@openai | 100.0 | 0.0 | 4.1s | 56.9 | $0.2479 | 0/9 |
| grok-4.5@xai | 100.0 | 0.0 | 10.7s | 62.8 | $0.2597 | 0/9 |
| ⚠grok-4.6@xai3 field missesdialog-uobkh: major_shareholders.0.name (3/3) | 98.9 | 1.5 | 28.8s | 71.6 | $0.4875 | 0/9 |
| ⚠gemini-3.5-flash-lite@google-ai-studio5 field missesdialog-uobkh: currency (2/3)plantation-mbsb: currency (3/3) | 98.3 | 1.5 | 2.1s | 132.8 | $0.0156 | 0/9 |
| ⚠qwen3.7-plus@alibaba8 field missesdialog-uobkh: currency (3/3)dialog-uobkh: publisher (2/3)plantation-mbsb: currency (2/3)plantation-mbsb: target_price (1/3) | 95.9 | 4.6 | 31.9s | 45.6 | $0.1583 | 0/9 |
| ⚠muse-glimmer-30b30 field missesdialog-uobkh: currency (3/3)dialog-uobkh: peer_ratings (1/3)dialog-uobkh: publisher (3/3)dialog-uobkh: subject (1/3)greatec-maybank: market_cap_m (3/3)greatec-maybank: peer_ratings (1/3)greatec-maybank: report_date (2/3)plantation-mbsb: analysts (3/3)plantation-mbsb: currency (1/3)plantation-mbsb: peer_ratings (1/3)plantation-mbsb: peer_ratings.0.name (1/3)plantation-mbsb: peer_ratings.0.recommendation (1/3)plantation-mbsb: peer_ratings.0.target_price (1/3)plantation-mbsb: peer_ratings.3.name (1/3)plantation-mbsb: peer_ratings.3.target_price (1/3)plantation-mbsb: peer_ratings.6.name (1/3)plantation-mbsb: peer_ratings.6.recommendation (1/3)plantation-mbsb: peer_ratings.6.target_price (1/3)plantation-mbsb: recommendation (1/3)plantation-mbsb: report_date (1/3)plantation-mbsb: target_price (1/3) | 85.3 | 8.2 | 57.9s | 52.0 | $0.1675 | 0/9 |
| ⚠claude-haiku-4.5@anthropic44 field missesgreatec-maybank: major_shareholders.2.stake_pct (1/3)plantation-mbsb: currency (1/3)plantation-mbsb: peer_ratings (3/3)plantation-mbsb: peer_ratings.0.name (3/3)plantation-mbsb: peer_ratings.0.recommendation (3/3)plantation-mbsb: peer_ratings.0.target_price (3/3)plantation-mbsb: peer_ratings.3.name (3/3)plantation-mbsb: peer_ratings.3.target_price (3/3)plantation-mbsb: peer_ratings.6.name (3/3)plantation-mbsb: peer_ratings.6.recommendation (3/3)plantation-mbsb: peer_ratings.6.target_price (3/3)plantation-mbsb: recommendation (3/3)plantation-mbsb: report_type (3/3)plantation-mbsb: share_price (3/3)plantation-mbsb: subject (3/3)plantation-mbsb: target_price (3/3) | 77.7 | 30.7 | 4.6s | 49.2 | $0.1807 | 0/9 |
| ⚠glm-4.6v@z-ai143 field missesdialog-uobkh: analysts (3/3)dialog-uobkh: analysts.0.email (3/3)dialog-uobkh: analysts.0.name (3/3)dialog-uobkh: currency (3/3)dialog-uobkh: major_shareholders (1/3)dialog-uobkh: major_shareholders.0.name (1/3)dialog-uobkh: major_shareholders.0.stake_pct (3/3)dialog-uobkh: major_shareholders.2.name (1/3)dialog-uobkh: major_shareholders.2.stake_pct (3/3)dialog-uobkh: market_cap_m (3/3)dialog-uobkh: publisher (3/3)dialog-uobkh: recommendation (1/3)dialog-uobkh: report_date (3/3)dialog-uobkh: report_type (3/3)dialog-uobkh: share_price (3/3)dialog-uobkh: shares_issued_m (3/3)dialog-uobkh: subject (3/3)dialog-uobkh: target_price (3/3)dialog-uobkh: ticker (3/3)greatec-maybank: analysts (3/3)greatec-maybank: analysts.0.email (3/3)greatec-maybank: analysts.0.name (3/3)greatec-maybank: currency (3/3)greatec-maybank: major_shareholders (1/3)greatec-maybank: major_shareholders.0.name (1/3)greatec-maybank: major_shareholders.0.stake_pct (3/3)greatec-maybank: major_shareholders.2.name (1/3)greatec-maybank: major_shareholders.2.stake_pct (3/3)greatec-maybank: market_cap_m (3/3)greatec-maybank: previous_target_price (3/3)greatec-maybank: publisher (3/3)greatec-maybank: recommendation (3/3)greatec-maybank: report_date (1/3)greatec-maybank: report_type (3/3)greatec-maybank: share_price (3/3)greatec-maybank: shares_issued_m (3/3)greatec-maybank: subject (3/3)greatec-maybank: target_price (3/3)plantation-mbsb: currency (3/3)plantation-mbsb: peer_ratings (3/3)plantation-mbsb: peer_ratings.0.name (3/3)plantation-mbsb: peer_ratings.0.recommendation (3/3)plantation-mbsb: peer_ratings.0.target_price (3/3)plantation-mbsb: peer_ratings.3.name (3/3)plantation-mbsb: peer_ratings.3.target_price (3/3)plantation-mbsb: peer_ratings.6.name (3/3)plantation-mbsb: peer_ratings.6.recommendation (3/3)plantation-mbsb: peer_ratings.6.target_price (3/3)plantation-mbsb: publisher (3/3)plantation-mbsb: recommendation (3/3)plantation-mbsb: report_date (3/3)plantation-mbsb: report_type (3/3)plantation-mbsb: subject (3/3) | 27.9 | 8.1 | 211s | 36.5 | $0.1978 | 0/9 |
| ⚠glm-5v-turbo@z-ai126 field missesdialog-uobkh: analysts (2/2)dialog-uobkh: analysts.0.email (2/2)dialog-uobkh: analysts.0.name (2/2)dialog-uobkh: currency (2/2)dialog-uobkh: major_shareholders (1/2)dialog-uobkh: major_shareholders.0.name (1/2)dialog-uobkh: major_shareholders.0.stake_pct (2/2)dialog-uobkh: major_shareholders.2.name (1/2)dialog-uobkh: major_shareholders.2.stake_pct (2/2)dialog-uobkh: market_cap_m (2/2)dialog-uobkh: publisher (2/2)dialog-uobkh: recommendation (2/2)dialog-uobkh: report_date (2/2)dialog-uobkh: report_type (2/2)dialog-uobkh: share_price (2/2)dialog-uobkh: shares_issued_m (2/2)dialog-uobkh: subject (2/2)dialog-uobkh: target_price (2/2)dialog-uobkh: ticker (2/2)greatec-maybank: analysts (3/3)greatec-maybank: analysts.0.email (3/3)greatec-maybank: analysts.0.name (3/3)greatec-maybank: currency (3/3)greatec-maybank: major_shareholders (3/3)greatec-maybank: major_shareholders.0.name (3/3)greatec-maybank: major_shareholders.0.stake_pct (3/3)greatec-maybank: major_shareholders.2.name (3/3)greatec-maybank: major_shareholders.2.stake_pct (3/3)greatec-maybank: market_cap_m (3/3)greatec-maybank: peer_ratings (1/3)greatec-maybank: previous_target_price (3/3)greatec-maybank: publisher (3/3)greatec-maybank: recommendation (3/3)greatec-maybank: report_date (3/3)greatec-maybank: report_type (3/3)greatec-maybank: share_price (3/3)greatec-maybank: shares_issued_m (3/3)greatec-maybank: subject (3/3)greatec-maybank: target_price (3/3)greatec-maybank: ticker (3/3)plantation-mbsb: currency (2/2)plantation-mbsb: peer_ratings (2/2)plantation-mbsb: peer_ratings.0.name (2/2)plantation-mbsb: peer_ratings.0.recommendation (2/2)plantation-mbsb: peer_ratings.0.target_price (2/2)plantation-mbsb: peer_ratings.3.name (2/2)plantation-mbsb: peer_ratings.3.target_price (2/2)plantation-mbsb: peer_ratings.6.name (2/2)plantation-mbsb: peer_ratings.6.recommendation (2/2)plantation-mbsb: peer_ratings.6.target_price (2/2)plantation-mbsb: publisher (2/2)plantation-mbsb: recommendation (2/2)plantation-mbsb: report_date (2/2)plantation-mbsb: report_type (2/2)plantation-mbsb: subject (2/2)errorPOST "https://openrouter.ai/api/v1/chat/completions": 400 Bad Request {"message":"Failed to parse doc.pdf","code":400,"metadata":{"provider_name":null}} | 17.5 | 13.5 | 32.7s | 82.1 | $0.2446 | 2/9 |
Score by case
| Target | dialog-uobkh | greatec-maybank | plantation-mbsb |
|---|---|---|---|
| gemini-3.5-flash@google-ai-studio | 100 | 100 | 100 |
| gemini-3.6-flash@google-ai-studio | 100 | 100 | 100 |
| gemini-3.7-flash | 100 | 100 | 100 |
| gpt-5.6-luna@openai | 100 | 100 | 100 |
| gpt-5.6-terra@openai | 100 | 100 | 100 |
| grok-4.5@xai | 100 | 100 | 100 |
| grok-4.6@xai | 97 | 100 | 100 |
| gemini-3.5-flash-lite@google-ai-studio | 98 | 100 | 97 |
| qwen3.7-plus@alibaba | 92 | 100 | 95 |
| muse-glimmer-30b | 87 | 90 | 78 |
| claude-haiku-4.5@anthropic | 100 | 99 | 34 |
| glm-4.6v@z-ai | 26 | 23 | 35 |
| glm-5v-turbo@z-ai | 19 | 4 | 35 |
Note
z-ai/glm-4.6vandz-ai/glm-5v-turboscored on shape rather than on reading. Both answered with their own key names and nesting,report_metadatawrappingsourceanddatein one,analyst,ratingand atarget_priceobject carryingvalueandcurrencyin the other, in place of the schema's flat fields. The values underneath are the ones printed on the page,UOB Kay Hian,DLG MK, a RM2.70 target, so 27.9 and 17.5 say nothing about what either target could read off these documents.z-ai/glm-5v-turbolost 2 of its 9 trials to a 400 from the provider,Failed to parse doc.pdf, ondialog-uobkhandplantation-mbsb. Errored trials are excluded from the mean, so its score rests on 7 trials and two of its three cases on 2 apiece.- Every
currencymiss in the run is the same one.google/gemini-3.5-flash-lite,qwen/qwen3.7-plusandmeta/muse-glimmer-30bwroteRMwhere the schema asks for the ISO code, 12 trials between them, and for flash-lite that single substitution is its entire deficit. anthropic/claude-haiku-4.5's 77.7 is one case collapsing, not a weakness spread across the run: 100.0 ondialog-uobkh, 98.9 ongreatec-maybank, 34.3 onplantation-mbsb, and the low case fails the same way on all three trials. Its output holds the schema shape throughout. It names a company insubject, setsreport_typetocompany, and fillsshare_price6.03 andtarget_price7.00, which is the failure the 30.7 stddev is pointing at.x-ai/grok-4.6's whole deficit is one character. It wroteEPEfor the first major shareholder ondialog-uobkhon all three trials, and lost nothing else anywhere in the run.x-ai/grok-4.6was served 99,456 cached prompt tokens despitecache_bustbeing on, against 1,152 forx-ai/grok-4.5and double digits for the twoz-aitargets. Its cost and latency are the highest in the run with that discount already applied.
Conclusion
Six targets lost no field on any trial, so the pick falls to cost and latency.
openai/gpt-5.6-luna takes it at $0.0254 for the run at 4812ms, roughly a
tenth of the $0.2597 and $0.2479 that x-ai/grok-4.5 and openai/gpt-5.6-terra
spend for the same perfect score. google/gemini-3.7-flash is the alternative at $0.0311 and 6811ms if
throughput matters, at 139 tok/s against luna's 71. Below the clean group,
google/gemini-3.5-flash-lite is the interesting one: 98.3 at $0.0156 and
2093ms, the cheapest and by far the fastest target in the run, and its only
loss is a currency string.
The failures split three ways. Flash-lite, qwen and muse-glimmer are fixable by
a prompt that names the currency format, and for flash-lite that alone would
close the gap to the leaders. Haiku is the unsafe read: its mean of 77.7 is two
clean cases averaged with one that fails identically every time, and a pipeline
sampling one case would see either 100 or 34 with nothing in between to warn
it. The two z-ai targets are unusable rather than weak, because a consumer
keying off score alone will read them as unable to extract from these PDFs when
what they cannot do is return the requested shape.