{{title}}

This report shows outcomes and their associated epics. For each epic, we forecast a completion date based on the expected number of stories in the epic, the historical or predicted throughput of that team delivering the epic, and the number of stories completed to date.

Configuration »

{% if story_query_template %} {% endif %} {% if epic_deadline_field %} {% endif %} {% if epic_team_field %} {% endif %} {% if epic_min_stories_field %} {% endif %} {% if epic_max_stories_field %} {% endif %}
Story query template: {{story_query_template}}
Epic deadline field: {{epic_deadline_field}}
Epic team field: {{epic_team_field}}
Epic min stories field: {{epic_min_stories_field}}
Epic max stories field: {{epic_max_stories_field}}
Teams {% for team in teams %} {% if team.min_throughput %} {% else %} {% endif %} {% endfor %}
Name Throughput Epic WIP
{{ team.name }}{{ team.min_throughput }} – {{ team.max_throughput }} stories/week Historical data {%- if team.throughput_samples_window %} over {{ team.throughput_samples_window }} weeks {% endif -%} {% if team_charts[team.name]['scatterplot'] %} {% endif %} {% if team_charts[team.name]['cfd'] %} {% endif %} {% if team_charts[team.name]['throughput'] %} {% endif %} {{ team.wip }}

{% for idx, outcome in enumerate(outcomes) %} {% if outcome.name %}

{{ outcome.name }} »

{% endif %}

Epics query: {{ outcome.epic_query }}

{% if epic_deadline_field %} {% endif %} {% for epic in outcome.epics %} {% if epic_deadline_field %} {% endif %} {% endfor %}
Epic Team StoriesDeadline Forecast
{{ epic.key }}: {{ epic.summary }} {{ epic.team.name }} {% if epic.min_stories %}
{{ epic.stories_done }} of {{ epic.min_stories }} {% if epic.max_stories and epic.max_stories != epic.min_stories %} – {{ epic.max_stories }} {% endif %} stories completed
({{ percent_complete(epic) }}%) {% if epic_charts[epic.key]['scatterplot'] %} {% endif %} {% if epic_charts[epic.key]['cfd'] %} {% endif %} {% else %} Forecast not available {% endif %}
{% if epic.deadline %} {{ epic.deadline.strftime("%d %b %Y") }} {% else %} N/A {% endif %} {% if epic.forecast %} {% if epic.forecast.deadline_quantile is not none %} {% if epic.forecast.deadline_quantile > 0.95 %} > 95% {% elif epic.forecast.deadline_quantile < 0.1 %} < 10% {% else %} {{ (epic.forecast.deadline_quantile * 100) | round | int }}% {% endif %} {% endif %} {% endif %} {% if epic.forecast %} {% for quantile, weeks in epic.forecast.quantiles %}
{{ future_date(weeks).strftime("%d %b %Y") }} @ {{ (quantile * 100) | round | int }}%
{% endfor %} {% endif %}
{% endfor %}
{% for team in teams %} {% if team_charts[team.name]['cfd'] %}
Cumulative Flow Diagram of historical samples for {{ team.name }}
Close
{% endif %} {% if team_charts[team.name]['throughput'] %}
Historical weekly throughput for {{ team.name }}
Close
{% endif %} {% if team_charts[team.name]['scatterplot'] %}
Cycle time scatter plot for {{ team.name }}
Close
{% endif %} {% endfor %} {% for outcome in outcomes %} {% for epic in outcome['epics'] %} {% if epic_charts[epic.key]['cfd'] %}
Cumulative Flow Diagram for {{ epic.summary }}
Close
{% endif %} {% if epic_charts[epic.key]['scatterplot'] %}
Cycle time scatter plot for {{ epic.summary }}
Close
{% endif %} {% endfor %} {% endfor %}