{% extends "base.html" %} {% block title %}Stats{% endblock %} {# Column chart in plain HTML so labels stay readable at any width. values: numbers; labels: x labels (shown where label_every divides the index); tips: tooltip text. #} {% macro columns(values, labels, tips, ymax, ticks, label_every=1) -%} {%- endmacro %} {% block content %}

Stats

How your searches are doing. Everything here stays on this computer.

{% for r in ranges %}{{ r }} days{% endfor %}
Finds, {{ days }} days{{ "{:,}".format(total) }}{% if change %}{{ change.text }} vs the {{ days }} days before{% else %}Too new to compare with the {{ days }} days before{% endif %}
Finds today{{ today }}Since midnight, your time
Alerts sent{{ "{:,}".format(sent) }}{% if places_sent %}Across {{ places_sent }} {{ "place" if places_sent == 1 else "places" }}{% else %}Nothing sent yet{% endif %}
Alerts delivered{% if delivered_pct is not none %}{{ "%g"|format(delivered_pct) }}%{% else %}–{% endif %}{% if failed %}{{ failed }} failed{% else %}None failed{% endif %}

Finds per day

{{ "All searches" if search is none else "One search" }}, {{ range_text }}

{% call columns(finds_per_day, day_labels, day_tips, ymax, ticks, label_every) %}Column chart of finds per day, {{ range_text }}. {{ total }} in all, highest {{ finds_per_day|max }} in one day, {{ finds_per_day[-1] }} today.{% endcall %}
Show as a table
{% for v in finds_per_day %}{% endfor %}
DayFinds
{{ day_tips[loop.index0]|striptags|replace(v ~ " finds", "") }}{{ v }}

When new listings turn up

Finds by weekday and hour, your time

{% if has_heat %}

Busiest: {{ busiest }}. Checking every minute then pays off most.

{% else %}

Shows up once there are finds in this period.

{% endif %}

Typical price per search

Middle price with fees of what each search saw in the last 14 days. The same number its own page shows.

{% if prices %}
{% for p in prices %}
{{ p.name }} {{ p.label }}
{% endfor %}
{% else %}

Shows up once a search has seen about 15 listings with prices.

{% endif %}

Delivery

Alerts that reached each place

{% if delivery %}
{% for d in delivery %}
{{ ui.dest_icon(d.kind) }}{{ d.name }} {% if d.pct is none %} Nothing sent yet {% else %} {# Green when nearly everything arrives, amber when some doesn't, red when much doesn't. #} {% if d.pct < 80 %}{{ ui.icon("circle-alert", "i-xs") }} {% endif %}{{ "{:,}".format(d.sent) }} of {{ "{:,}".format(d.sent + d.failed) }} {% endif %}
{% endfor %}
{% if delivery|selectattr("failed")|list %}

Some alerts failed. Send a test on Alerts to see why.

{% endif %} {% else %}

Add a place for alerts to see how delivery goes.

{% endif %}
{% endblock %}