# Carl Gt Eval

> carl-gt-eval

- Skill: `qhjqhj00/carl-gt-eval` (Agent Skill)
- Install (CLI): `npx skillmds@latest add qhjqhj00/carl-gt-eval`
- Raw SKILL.md: https://api.skillmd.com/api/skills/qhjqhj00/carl-gt-eval/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: qhjqhj00 (https://skillmd.com/u/qhjqhj00)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/qhjqhj00/carl-gt-eval

---


# carl-gt-eval

> CARL-GT: Evaluating Causal Reasoning Capabilities of Large Language Models — Tu et al. (2024) (arXiv:2412.17970, 2024)

## What this evaluates

Evaluates large language models' causal reasoning capabilities across three task categories: causal graph reasoning (adjacency matrix, d-separation, causal direction), knowledge discovery from tabular data, and decision-making under interventions and counterfactuals.

## Datasets

- **CARL-GT** — total ?; splits: test (-1); repo https://github.com/TURuibo/CauTabBench

## Metrics

- `F1 score` **(primary)** — range: [0, 1]
  - Harmonic mean of precision and recall: 2 * (precision * recall) / (precision + recall). Used for adjacency matrix and causal direction estimation.
- `AUC` — range: [0, 1]
  - Area under the Receiver Operating Characteristic curve. Used for d-separation estimation (binary classification of d-separated vs d-connected).
- `Accuracy` — range: [0, 1]
  - Proportion of correctly predicted causal directions in knowledge discovery tasks.
- `MAE` — range: [0, ∞)
  - Mean Absolute Error between predicted float values and ground-truth expectations for intervention and counterfactual inference.

## Input / output format

**Input**: Text prompts containing serialized causal graphs (node/edge lists) and/or tabular data (Markdown format, 20/50/100 rows), followed by task-specific questions (e.g., d-separation queries, causal direction questions, or intervention/counterfactual value requests).

**Output**: Free-form natural language responses from the LLM, which are subsequently processed by a second LLM prompt to extract structured answers (e.g., neighbor lists, yes/no, or float numbers).

## Scoring recipe

```python
def score(predictions, gold, task):
    if task in ['adjacency', 'direction']:
        pred_set = extract_neighbors(predictions)
        gold_set = gold['edges']
        tp = len(pred_set & gold_set)
        fp = len(pred_set - gold_set)
        fn = len(gold_set - pred_set)
        prec = tp / (tp + fp) if (tp + fp) > 0 else 0
        rec = tp / (tp + fn) if (tp + fn) > 0 else 0
        f1 = 2 * prec * rec / (prec + rec) if (prec + rec) > 0 else 0
        return {'precision': prec, 'recall': rec, 'f1': f1}
    elif task == 'd-separation':
        labels = [1 if d_sep else 0 for d_sep in gold['is_d_sep']]
        scores = [float(p) for p in predictions]
        return compute_auc(labels, scores)
    elif task in ['intervention', 'counterfactual']:
        preds = [float(p) for p in predictions]
        golds = [float(g) for g in gold['true_expectation']]
        return mean_absolute_error(preds, golds)
```

## Common pitfalls

- LLMs frequently fail to answer knowledge discovery questions, requiring fallback to random yes/no or skipping the instance, which can bias metrics.
- Hardware constraints force different input row limits per model (e.g., Gemma2 restricted to 20 rows, Mixtral excluded), complicating direct performance comparison.
- The two-step evaluation (generation then extraction) can propagate errors if the extraction prompt misinterprets the model's free-form output.

## Evidence (verbatim from paper)

> As for adjacency matrix and causal direction estimation, LLMs are required to recover 10 causal graphs. The metrics are F1 scores, recall, and precision. As for d-separation estimation, LLMs classify d-separated and d-connected relationships chosen from 10 causal graphs. And the metric is the AUC of ROC curves.

## Citation

```bibtex
@misc{tu2024carlgt,
  title={CARL-GT: Evaluating Causal Reasoning Capabilities of Large Language Models},
  author={Tu et al. (2024)},
  year={2024},
  note={arXiv:2412.17970}
}
```

- arXiv: 2412.17970

