{% extends "base.html" %} {% block content %}

{{ title }}

{% for tl in timelines %}

{{ tl.date.strftime('%a %d %b %Y') }}{% if tl.is_today %} Today{% endif %}

Completed Running Scheduled
{% for h in tl.hours %} {{ '%02d' % h }} {% endfor %}
{% for h in tl.hours %} {% endfor %} {% if tl.now_pct is not none %} {% endif %} {% if tl.entries | length == 0 %}
No jobs
{% else %} {% for e in tl.entries %} {{ e.name }} {% endfor %} {% endif %}
{% endfor %}
{# ── Metrics mini-reports ─────────────────────────────── #} {% set m = metrics %}

Job Outcomes

✓ Done✗ FailedRunningPendingSuccess
Today {{ m.jobs.today.completed }} {{ m.jobs.today.failed }} {{ m.jobs.today.running }} {{ m.jobs.today.created }} {% if m.jobs.success_rate_today is not none %}{{ '%.0f' % m.jobs.success_rate_today }}%{% else %}—{% endif %}
Yesterday {{ m.jobs.yesterday.completed }} {{ m.jobs.yesterday.failed }} {{ m.jobs.yesterday.running }} {{ m.jobs.yesterday.created }} {% if m.jobs.success_rate_yesterday is not none %}{{ '%.0f' % m.jobs.success_rate_yesterday }}%{% else %}—{% endif %}
Last 7 days {{ m.jobs.week.completed }} {{ m.jobs.week.failed }} {{ m.jobs.week.running }} {{ m.jobs.week.created }} {% if m.jobs.success_rate_week is not none %}{{ '%.0f' % m.jobs.success_rate_week }}%{% else %}—{% endif %}
All time {{ m.jobs.total.completed }} {{ m.jobs.total.failed }} {{ m.jobs.total.running }} {{ m.jobs.total.created }} {% if m.jobs.success_rate_total is not none %}{{ '%.0f' % m.jobs.success_rate_total }}%{% else %}—{% endif %}

Active Configs

{{ m.configs.active }} of {{ m.configs.total }} total
    {% for freq, n in m.configs.by_frequency %}
  • {{ freq }}{{ n }}
  • {% endfor %}
  • Drafts{{ m.configs.draft }}
  • {% if m.configs.archived %}
  • Archived{{ m.configs.archived }}
  • {% endif %}

Performance — Today

  • Avg duration{{ m.performance.avg_duration_today or '—' }}
  • Longest run {{ m.performance.longest_today_duration or '—' }}
  • {% if m.performance.longest_today_name %}
  • ↳ {{ m.performance.longest_today_name }}
  • {% endif %}
  • On-time start {% if m.performance.on_time_rate_today is not none %} {{ '%.0f' % m.performance.on_time_rate_today }}% ({{ m.performance.on_time }}/{{ m.performance.on_time + m.performance.late }}) {% else %}—{% endif %}

Match Quality

  • Matched (today){{ '{:,}'.format(m.match_quality.matched_today) }}
  • Unmatched (today){{ '{:,}'.format(m.match_quality.unmatched_today) }}
  • Match rate (today) {% if m.match_quality.match_rate_today is not none %}{{ '%.1f' % m.match_quality.match_rate_today }}%{% else %}—{% endif %}
  • Match rate (7d) {% if m.match_quality.match_rate_week is not none %}{{ '%.1f' % m.match_quality.match_rate_week }}%{% else %}—{% endif %}

Recent Failures

{% if m.recent_failures %} {% else %}

No recent failures 🎉

{% endif %}

Upcoming Today

{% if m.upcoming_today %} {% else %}

Nothing scheduled for the rest of today.

{% endif %}
{% endblock %}