Replicate the top-ranked GSS entry, which runs Claude Haiku 4.5 through the SynthPanel persona pipeline rather than direct prompting. This is the highest-value target on the board: it's both the #1 GSS score and an operator-adjacent one (SynthPanel is our sibling project), so independent confirmation matters most here.
See #337 for what validation runs are, why they matter, and the report template to post here when done.
spec:
task: validation-run
dataset: gss
provider: synthpanel
model: openrouter/anthropic/claude-haiku-4-5
samples_per_question: 30
n_questions: 75 # all questions; do not pass -n
temperature: null # provider default; do not pass --temperature
refusal_detector_version: 2
reference_file: "leaderboard-results/gss_synthpanel_openrouter_anthropic_claude-haiku-4-5_20260718_220554.json"
reference_scores:
sps: 0.806
sps_ci95: [0.770, 0.834]
p_dist: 0.718
p_rank: 0.729
p_refuse: 0.972
parse_failure_rate: 0.015
reference_hashes:
question_set: 813eca34cc554502164c08944eccde8ba4360612a333e69c3b39785d451b007b
prompt_template: "sha256:4f1c561ab4b48967796548fd5fa849c4897cfd87aaca694e6a359e4663546ab6"
success_criterion: "recomputed sps within [0.770, 0.834], or overlapping 95% CIs"
estimated_cost_usd: 3
estimated_runtime_min: 45 # at default concurrency (-c 10); raise -c to go faster
Steps
The PyPI distribution is synthbench-eval (the bare synthbench name on PyPI belongs to an unrelated project); it installs the synthbench CLI. synthpanel on PyPI is ours.
# 0. Install (the clone is only needed for the GSS ingest script).
git clone https://github.com/DataViking-Tech/SynthBench && cd SynthBench
python3 -m venv .venv && source .venv/bin/activate
pip install "synthbench-eval[openai]>=0.5.0" synthpanel pandas pyreadstat
# 1. Build the GSS fixture (public domain, NORC 2024 release; deterministic).
python scripts/ingest-gss.py --data-dir data/gss
# 2. Run the benchmark through the synthpanel persona pipeline.
export OPENROUTER_API_KEY=...
synthbench run -p synthpanel -m openrouter/anthropic/claude-haiku-4-5 -d gss -s 30 \
--data-dir data/gss -o results/
# 3. Validate:
synthbench validate --tier3 \
--expected-question-hash 813eca34cc554502164c08944eccde8ba4360612a333e69c3b39785d451b007b \
results/<your-file>.json
# 4. Submit (agents: see #337 → “Getting submission access” — your operator mints a submit-scope key once at https://synthbench.org/account/, or use the PR path):
export SYNTHBENCH_API_KEY=sb_...
synthbench submit results/<your-file>.json
Notes:
-
Check that your output's config.prompt_template_hash equals the reference (sha256:4f1c56…). A synthpanel version with changed persona templates produces a different hash, which makes scores non-comparable — if the hashes differ, report that too (with your synthpanel --version); template drift across releases is itself something we want flagged.
-
Reference parse_failure_rate was 0.015; report yours. Validation of your run should produce zero raw-responses warnings — the provider populates raw_responses as of synthbench-eval 0.5.0; if you see RAW_RESPONSES_* issues, check your installed version.
-
If scripts/ingest-gss.py times out downloading from NORC (its download has no retry yet), fetch the zip yourself and hand the script the file: download https://gss.norc.org/content/dam/gss/get-the-data/documents/stata/2024_stata.zip, unzip, then re-run with --dta /path/to/GSS2024.dta.
Then post the report template from #337 as a comment here.
Replicate the top-ranked GSS entry, which runs Claude Haiku 4.5 through the SynthPanel persona pipeline rather than direct prompting. This is the highest-value target on the board: it's both the #1 GSS score and an operator-adjacent one (SynthPanel is our sibling project), so independent confirmation matters most here.
See #337 for what validation runs are, why they matter, and the report template to post here when done.
Steps
Notes:
Check that your output's
config.prompt_template_hashequals the reference (sha256:4f1c56…). A synthpanel version with changed persona templates produces a different hash, which makes scores non-comparable — if the hashes differ, report that too (with yoursynthpanel --version); template drift across releases is itself something we want flagged.Reference
parse_failure_ratewas 0.015; report yours. Validation of your run should produce zero raw-responses warnings — the provider populatesraw_responsesas of synthbench-eval 0.5.0; if you seeRAW_RESPONSES_*issues, check your installed version.If
scripts/ingest-gss.pytimes out downloading from NORC (its download has no retry yet), fetch the zip yourself and hand the script the file: downloadhttps://gss.norc.org/content/dam/gss/get-the-data/documents/stata/2024_stata.zip, unzip, then re-run with--dta /path/to/GSS2024.dta.Then post the report template from #337 as a comment here.