{"data":{"kind":"file","path":"README.md","version_id":"kzon76awy1faj5m27zso958m","entry":{"name":"README.md","path":"README.md","is_directory":false,"size":2599,"modified_at":"2026-06-05T19:44:18.185000","content_hash":"9a9a256b1656b5cfaa6238ce4e0719e06b63997a97c184c972dcbeb97260a191"},"entries":[],"content":"# meta-data-analysis-lite\n\n`meta-data-analysis-lite` is a deterministic Verifiers environment for small\ntabular arithmetic questions.\n\nEach example contains a generated CSV with rows for region, product, channel,\nunits, returns, net units, unit price, and revenue. The model answers one\nquestion by returning exactly one JSON object inside a `<result>...</result>`\ntag:\n\n```text\n<result>{\"answer\": 123}</result>\n```\n\nThe initial v0.1 task families are:\n\n- total `net_units` by region\n- total `revenue` by product\n- filtered row counts\n- highest-revenue region with deterministic tie-breaking\n- product revenue differences\n- average `unit_price` by channel\n\nThe reward is deterministic and shaped:\n\n- answer correctness, including numeric closeness for arithmetic mistakes\n- schema adherence for the single required `answer` key\n- format credit for valid JSON inside exactly one result tag\n- penalties for multiple candidates, repeated tags, code fences, or very long\n  outputs\n\nBy default the environment uses no tools, no sandbox, and no judge model.\nVersion 0.2.1 can also run with `tools=true`, which exposes a cheap\ndeterministic `analyze_table(csv_text, question)` helper. The tool computes the\nanswer from the CSV text and exact generated question, then the model must still\nfinish with one `<result>...</result>` answer. This is meant to test whether\ntool access improves computation without hurting final-answer coherence.\n\nVersion 0.3.0 adds an explicit tool-routing mix. In addition to the base\naggregation tasks, `task_families=\"base,tool_routing\"` includes direct row\nlookups and row comparisons where `analyze_table` is intentionally unsupported.\nThese examples are labeled with `tool_policy=\"avoid\"` and receive a small\npenalty for unnecessary tool calls, while base aggregation examples are labeled\n`tool_policy=\"recommended\"`. Optional distractor columns make the CSVs longer\nwithout changing the deterministic answer.\n\n## Usage\n\n```python\nfrom verifiers import load_environment\n\nenv = load_environment(\n    \"meta-data-analysis-lite\",\n    seed=20260603,\n    num_examples=128,\n    min_rows=8,\n    max_rows=12,\n)\n```\n\nTool mode:\n\n```python\nenv = load_environment(\n    \"meta-data-analysis-lite\",\n    seed=20260603,\n    num_examples=128,\n    min_rows=8,\n    max_rows=12,\n    tools=True,\n    max_tool_turns=3,\n)\n```\n\nTool-routing mix:\n\n```python\nenv = load_environment(\n    \"meta-data-analysis-lite\",\n    seed=20260603,\n    num_examples=128,\n    min_rows=14,\n    max_rows=20,\n    task_families=\"base,tool_routing\",\n    tools=True,\n    max_tool_turns=3,\n    distractor_columns=True,\n)\n```\n","encoding":"utf-8","truncated":false,"total_bytes":2599},"status":null}