> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kaireonai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Decisioning Recipes

> Operator playbooks — copy-paste payloads for the patterns we exercise most in production pilots. Each recipe ends in a verifiable outcome you can read off a decision trace.

These recipes are the operator-facing companion to the [scoring strategies](/decisioning/scoring-strategies) and [contact policies](/decisioning/contact-policies) reference. They're tested patterns — every one is exercised in the platform's proof bundle and verified against live engine behavior.

Each recipe has the same shape: **what it solves → why you'd use it → the exact payloads → what to expect in the decision trace**. The payloads are deliberately copy-pastable.

## Available recipes

<CardGroup cols={2}>
  <Card title="A/B test with holdout" icon="flask" href="/decisioning/recipes/ab-test-holdout">
    Split traffic between champion and challenger; reserve a true holdout for causal uplift.
  </Card>

  <Card title="Per-category PRIE split" icon="sliders" href="/decisioning/recipes/per-category-prie-split">
    Route Cards candidates through one scoring profile, Loans through another — same flow.
  </Card>

  <Card title="Atomic channel coupling" icon="link" href="/decisioning/recipes/atomic-channel-coupling">
    Email digests where the hero placement and body placements stand or fall together.
  </Card>

  <Card title="Frequency caps" icon="gauge-high" href="/decisioning/recipes/frequency-caps">
    Cap per-day, per-week, per-category, per-channel — and verify with traces.
  </Card>

  <Card title="Fairness hard-gate" icon="scale-balanced" href="/decisioning/recipes/fairness-hard-gate">
    Block publish on disparate impact; configure thresholds + four-eyes override.
  </Card>
</CardGroup>

## Reading the traces

Every recipe ends by pointing at the decision trace fields that prove the pattern worked:

* `candidateCount` / `afterQualification` / `afterSuppression` / `afterContactPolicy` / `finalCount` — the funnel.
* `qualificationResults[]` — which rules fired and on which candidate.
* `contactPolicyResults[]` — which policies suppressed which candidate.
* `scoringResults[]` — per-offer score, model type, and (when SHAP is on) per-feature contribution.
* `selectedOffers[]` — final ranked + placement-assigned output.
* `channelCoupling[]` — for atomic coupling: which channels cascaded.

Pull them via `GET /api/v1/decision-traces?customerId={id}&limit=N` or open the trace card in Studio → Decision Traces.
