{% if not campaigns %}

No Campaigns Yet

Campaigns group related experiment runs under a shared question and hypothesis.

Create one with: bth campaign create "my-campaign"

{% else %} {% for campaign in campaigns %} {% endfor %}
ID Name Mode Status Started Runs
{{ campaign.id_short }} {{ campaign.name }} {{ campaign.mode or '—' }} {% if campaign.status == 'active' %} {{ campaign.status }} {% elif campaign.status == 'concluded' %} {{ campaign.status }} {% elif campaign.status == 'failed' %} {{ campaign.status }} {% else %} {{ campaign.status or '—' }} {% endif %} {{ campaign.started_at or '—' }} {{ campaign.run_count }}

Research Context

{% if campaign.question %}
Question
{{ campaign.question }}
{% endif %} {% if campaign.hypothesis %}
Hypothesis
{{ campaign.hypothesis }}
{% endif %} {% if campaign.conclusion %}
Conclusion
{{ campaign.conclusion }}
{% endif %} {% if campaign.outcome_label %}
Outcome Label
{{ campaign.outcome_label }}
{% endif %} {% if campaign.concluded_at %}
Concluded At
{{ campaign.concluded_at }}
{% endif %} {% if campaign.parent_campaign_id %}
Parent Campaign
{{ campaign.parent_campaign_id[:8] }}
{% endif %}

Outcome Distribution

{% if campaign.outcome_distribution %} {% for label, count in campaign.outcome_distribution.items() %} {% endfor %}
Outcome Count
{% if label == 'pass' %} {{ label }} {% elif label == 'fail' %} {{ label }} {% elif label == 'marginal' %} {{ label }} {% else %} {{ label }} {% endif %} {{ count }}
Residual Rate
{{ "%.1f"|format(campaign.residual_rate * 100) }}%
Bypass Rate
{{ "%.1f"|format(campaign.bypass_rate * 100) }}%
Unknown Rate
{{ "%.1f"|format(campaign.unknown_rate * 100) }}%
{% else %}

No outcome data yet.

{% endif %}
{% if campaign.anomalies %}

Anomalies

    {% for anomaly in campaign.anomalies %}
  • {{ anomaly }}
  • {% endfor %}
{% endif %}
{% endif %}