{% from "_macros.html" import empty, chart, demo_context, kpi, pnl, pnl_cls, pc, px, source_note %} {% macro mv(x) %}{% if x is not none and x|abs >= 0.0005 %}{{ "▲" if x > 0 else "▼" }} {{ "%.1f"|format(x|abs * 100) }}{% endif %}{% endmacro %} {# --- status strip --- #}
Updates at session ends (UTC), each from the model's stage run once the session's data is in. Quotes are reset to the latest fair at every update, and the book closes at lights out.{% if snap.note %} {{ snap.note|join("; ") }}.{% endif %}
{# --- the headline numbers --- #} {% set w = (groups|selectattr("kind", "equalto", "race_win")|first) %}{% set winner = (w.markets|selectattr("outcome")|first) if w and snap.done else none %}| # | Driver | Team | {% if snap.classification.rows[0].best is defined %}Best lap | {% endif %}
|---|---|---|---|
| {{ r.pos or "–" }} | {{ r.driver }} | {{ r.team or "" }} | {% if r.best is defined %}{% if r.best %}{{ "%d:%06.3f"|format(r.best // 60000, (r.best % 60000) / 1000) }}{% endif %} | {% endif %}
No session run yet: priced from the season so far.
{% endif %}| Driver | {% if maker %}Fair | Move | {% endif %}Bid / ask |
|---|---|---|---|
| {{ m.subject }} | {% if maker %}{{ pc(m.fair) }} | {{ mv(m.move) }} | {% endif %}{% if m.bid is none and m.ask is none %}not quoted{% else %}{{ px(m.bid) }} / {{ px(m.ask) }}{% endif %} |
Top 10 by {{ "fair value" if maker else "price" }}; every market is under Markets.
| Market | Shares (YES) | Value | P&L |
|---|---|---|---|
| {{ p.subject }} {{ p.kind }} | {{ "%+.0f"|format(p.inv) }} | {% if p.settled %}{{ "YES" if p.value else "NO" }}{% else %}{{ pc(p.value) }}{% endif %} | {{ pnl(p.pnl) }} |
| UTC | Crowd | Market | Price | Shares |
|---|---|---|---|---|
| {{ (f.ts or "")[5:16]|replace("T", " ") }} | {{ "bought YES" if f.side == 'buy' else "sold YES" }} | {{ f.subject }} {{ f.kind }} | {{ px(f.price) }} | {{ "%.0f"|format(f.shares) }} |
| {{ empty("No fills yet: the crowd trades between updates.") }} | ||||
{{ cr.bettors }} have bet: {{ cr.up }} up, {{ cr.down }} down · median {{ cr.median|money(true) }} · best {{ cr.best|money(true) }} · worst {{ cr.worst|money(true) }} · together {{ cr.total|money(true) }}{{ " (settled)" if snap.done else " (marked to fair)" }}
{% endif %}Some exchange prices are more than {{ stale_min }} minutes old, so they may be out of sync with the fair values above: the exchange's recorder may be behind.
{% endif %}Live exchange prices are shown as a compact check against the model; the main narrative and the live forecast remain the focus. Each price shows when the exchange sync last wrote it.
| {{ "Pair (YES: first ahead)" if g.kind == 'race_h2h' else ("Team" if g.kind == 'race_constructor_top' else ("Prop (YES: happens in the race)" if g.kind == 'race_props' else "Driver")) }} | {% if maker %}Fair | Move | {% endif %}Bid / ask | {% if maker %}Maker (YES) | {% endif %}|
|---|---|---|---|---|---|
| {{ m.subject }} | {% if maker %}{{ pc(m.fair) }} | {{ mv(m.move) }} | {% endif %}{% if m.bid is none and m.ask is none %}not quoted{% else %}{{ px(m.bid) }} / {{ px(m.ask) }}{% endif %} | {% if maker %}{{ "%+.0f"|format(m.inv) if m.inv else "" }} | {% endif %}{% if m.outcome is not none %}{{ "YES" if m.outcome else "NO" }}{% endif %} |