Report Extract

2026-08-14 05:21 UTC

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 withheld
  • greatec-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 withheld
  • plantation-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

13/13 targets scored · 9 trials each · $2.26 total · show

Cost vs latencymost attractive quadrant
Latency & costsort by
TargetScoreStddevLatencyTok/sCostErrors
bestOpenAIgpt-5.6-luna@openai100.00.04.8s71.3best$0.02540/9
Geminigemini-3.7-flash100.00.06.8s139.3$0.03110/9
Geminigemini-3.6-flash@google-ai-studio100.00.07.3s174.7$0.06670/9
Geminigemini-3.5-flash@google-ai-studio100.00.011.4s143.6$0.17890/9
OpenAIgpt-5.6-terra@openai100.00.0best4.1s56.9$0.24790/9
Grokgrok-4.5@xai100.00.010.7s62.8$0.25970/9
Grokgrok-4.6@xai3 field missesdialog-uobkh: major_shareholders.0.name (3/3)98.91.528.8s71.6$0.48750/9
Geminigemini-3.5-flash-lite@google-ai-studio5 field missesdialog-uobkh: currency (2/3)plantation-mbsb: currency (3/3)98.31.52.1s132.8$0.01560/9
Qwenqwen3.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.94.631.9s45.6$0.15830/9
Metamuse-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.38.257.9s52.0$0.16750/9
Claudeclaude-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.730.74.6s49.2$0.18070/9
Z.aiglm-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.98.1211s36.5$0.19780/9
Z.aiglm-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.513.532.7s82.1$0.24462/9

Score by case

Every cell is that target's mean over the case's trials, and ✕ marks a reply that was never a document, whatever it scored.

Targetdialog-uobkhgreatec-maybankplantation-mbsb
Geminigemini-3.5-flash@google-ai-studio100100100
Geminigemini-3.6-flash@google-ai-studio100100100
Geminigemini-3.7-flash100100100
OpenAIgpt-5.6-luna@openai100100100
OpenAIgpt-5.6-terra@openai100100100
Grokgrok-4.5@xai100100100
Grokgrok-4.6@xai97100100
Geminigemini-3.5-flash-lite@google-ai-studio9810097
Qwenqwen3.7-plus@alibaba9210095
Metamuse-glimmer-30b879078
Claudeclaude-haiku-4.5@anthropic1009934
Z.aiglm-4.6v@z-ai262335
Z.aiglm-5v-turbo@z-ai19435

Note

  • z-ai/glm-4.6v and z-ai/glm-5v-turbo scored on shape rather than on reading. Both answered with their own key names and nesting, report_metadata wrapping source and date in one, analyst, rating and a target_price object carrying value and currency in 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-turbo lost 2 of its 9 trials to a 400 from the provider, Failed to parse doc.pdf, on dialog-uobkh and plantation-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 currency miss in the run is the same one. google/gemini-3.5-flash-lite, qwen/qwen3.7-plus and meta/muse-glimmer-30b wrote RM where 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 on dialog-uobkh, 98.9 on greatec-maybank, 34.3 on plantation-mbsb, and the low case fails the same way on all three trials. Its output holds the schema shape throughout. It names a company in subject, sets report_type to company, and fills share_price 6.03 and target_price 7.00, which is the failure the 30.7 stddev is pointing at.
  • x-ai/grok-4.6's whole deficit is one character. It wrote EPE for the first major shareholder on dialog-uobkh on all three trials, and lost nothing else anywhere in the run.
  • x-ai/grok-4.6 was served 99,456 cached prompt tokens despite cache_bust being on, against 1,152 for x-ai/grok-4.5 and double digits for the two z-ai targets. 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.