{% extends "base.html" %} {% block title %}Charts · {{ project.title }} · Projects · {{ project.owner }}{% endblock %} {% block mainclass %} class="wide"{% endblock %} {% block content %}
From the board's own history: when each card joined each column. No estimates; the forecasts sample the weeks the board has had.
| Cards | Left | 50% done by | 85% done by | |||
|---|---|---|---|---|---|---|
| {{ f.scope }} | {{ f.remaining }} | {% match f.p50 %}{% when Some(d) %}{{ d }} | {% when None %}no forecast: no card has reached Done in the weeks it draws from | {% endmatch %} {% if let Some(d) = f.p85 %}{{ d }} | {% else if f.p50.is_some() %}beyond ten years | {% endif %}|
From {{ f.weeks_of_history }} week{% if f.weeks_of_history != 1 %}s{% endif %} of throughput (cards reaching Done each week), sampled {{ crate::web::board_charts::TRIALS_SHOWN }} times; the same history gives the same dates all day.
{% endif %}No iterations yet, and no open card with a milestone. Start an iteration on the board, or give cards milestones, and they appear here.
{% else %}{{ timeline_svg|safe }}{% if let Some((l, s)) = days.last() %}{{ l }} left of {{ s }} after {{ days.len() }} day{% if days.len() != 1 %}s{% endif %}{% endif %}.
{{ m }} d median · {% if let Some(p) = c.cycle_p85_days %}{{ p }}{% endif %} d 85th percentile
From leaving the first column to reaching Done, over {{ c.cycle_finished }} finished card{% if c.cycle_finished != 1 %}s{% endif %}.
{% when None %}No card has gone from started to Done yet.
{% endmatch %}| Week from | Done |
|---|---|
| {{ w }} | {{ n }} |
Cards in each column at the end of each day. A band that keeps widening is where work waits.
| Day | {% for name in c.columns %}{{ name }} | {% endfor %}
|---|---|
| {{ d }} | {% for n in row %}{{ n }} | {% endfor %}