alialp207/TR-DataAnalystBench
TR-DataAnalystBench A Turkish-language benchmark for evaluating whether language models can perform data-analyst style reasoning over tables and charts: reading a value, finding the maximum/minimum, comparing two years, computing an average or a (signed) percentage change, ranking, summarizing a trend, and — importantly — abstaining when the data does not contain the answer. Gold answers are computed and verified with Python (not produced by a language model), so the benchmark… See the full description on the dataset page: https://huggingface.co/datasets/alialp207/TR-DataAnalystBench.
TR-DataAnalystBench
A Turkish-language benchmark for evaluating whether language models can perform data-analyst style reasoning over tables and charts: reading a value, finding the maximum/minimum, comparing two years, computing an average or a (signed) percentage change, ranking, summarizing a trend, and — importantly — abstaining when the data does not contain the answer.
Gold answers are computed and verified with Python (not produced by a language model), so the benchmark is reproducible and auditable. An automatic evaluator scores numeric (tolerance), categorical (trend), and abstention tasks.
Why this benchmark
Many models are fluent in Turkish yet still fail at numerical reasoning, table understanding, and chart interpretation. TR-DataAnalystBench isolates those abilities with verifiable gold answers and a transparent scoring contract.
The suite (1,436 examples, seven tiers)
Splits are table-disjoint (the questions sharing a table/chart never cross a split boundary).
chart_read_v01 is the only tier whose charts carry no data labels, so it measures reading values off the axes/gridlines rather than label OCR. Its exact-scored tasks (which year? / compare / count / trend) need only the chart's shape, while value_estimate is scored with an ±8% estimation tolerance.
Task types
Input formats: table_only, chart_only (chart image, no table — prevents table leakage), and table_and_chart.
Data fields
Each example is a JSON object with, among others:
id,dataset_version,language(tr),domain,splitquestion_type,difficulty,input_format,chart_type,chart_pathtable:{ "columns": [...], "rows": [[...], ...] }question,answer(human-readable gold)answer_type:numeric|numeric_with_label|text(trend) |abstentionnumeric_answer(ornull),trend_class(for trends),target_column,unitcalculation(how the gold was derived)real_pilotonly:source_name,source_url,license,country
How to evaluate a model
- Build prompts from the dataset (a prompt for each example; for
chart_onlythe model is given the chart image, not the table). - Collect answers into a CSV with columns
id,predicted_numeric_answer, andprediction_text(used for trend words andveri yok). - Score with the repository's evaluator:
python scripts/08_evaluate_predictions_file.py \
--dataset data/processed/real_pilot.jsonl \
--predictions your_predictions.csv --split testThe evaluator reports overall accuracy plus per-kind accuracy (numeric tolerance, trend label, abstention) broken down by task, input format, and domain. Running it on the provided oracle predictions yields 100%, confirming the scoring pipeline.
Baselines
The ChatGPT number is a small, manually collected illustration, not a full leaderboard entry. The repository includes a free manual evaluation kit (scripts/16_create_manual_kit.py) so anyone can reproduce/extend it without an API.
Limitations
- In the synthetic/real tiers, charts carry printed data labels, so their
chart_onlyitems partly measure label OCR. Thechart_read_v01tier removes labels to isolate genuine chart reading; expand it to make visual reading a larger share of the suite. real_pilotuses real, well-known figures, so it can partly reward recall rather than table reading; thereal_anon_v01tier controls for this by removing the country/years and rescaling each series. Both are kept so users can compare authentic-value vs contamination-controlled settings.- With a few hundred examples, overall rankings are stable but fine-grained per-subgroup numbers carry meaningful confidence intervals.
- Trends are labeled by a deterministic rule (monotonic, or net change ≥5% with a dominant direction, else
dalgalı); some borderline series are debatable.
Licensing and provenance
- Datasets: CC-BY-4.0.
real_pilotis derived from World Bank Open Data and CDIAC emissions data (ODC-PDDL-1.0 / CC-BY-4.0); per-source provenance and licenses are indata/sources_real/provenance.json. Synthetic tiers are original work. - Code: MIT (see
LICENSE).
Citation
@misc{harac2026trdataanalystbench,
title = {TR-DataAnalystBench: A Turkish Table and Chart Reasoning Benchmark},
author = {Hara\c{c}, Ali Alp},
year = {2026},
howpublished = {\url{https://github.com/alialp5959/TR-DataAnalystBench}}
}