The Ledger
Payday Session · {{ today }}
{% include 'includes/ledger_nav.html' %}
{% with messages = get_flashed_messages(with_categories=true) %} {% for category, message in messages %}
{{ message }}
{% endfor %} {% endwith %}
{# ===== 1. CHECKING NOW ===== #}

1 · Checking now

{% if expected_checking is not none %}
Expected ${{ '{:,.2f}'.format(expected_checking) }}
{% else %}
No prior snapshot yet — this is your first.
{% endif %}
{# ===== 2. PENDING AUTOPAYS ===== #} {% if pending %}

2 · Pending autopay confirmations

Check that what you expected to clear, cleared. This is confirmation, not logging.

{% for p in pending %}
{{ p.account_name }} · {{ p.tx_date }} ${{ '{:,.2f}'.format(p.amount) }}
{% endfor %}
{% endif %} {# ===== 3. WHAT CAME IN ===== #}

3 · What came in

{# template row for + add #}
{# ===== 4. MANUAL DEBT PAYMENTS ===== #}

4 · Manual debt payments

Anything you're paying on top of autopay this payday — typically the attack on the primary target.

{# ===== 5. OTHER BALANCE CHANGES ===== #}

5 · Other balance changes (optional)

Snapshot any account whose balance moved unexpectedly — new charge, interest hit, dispute resolved.

{# ===== 6. EXTRA TO ALLOCATE / RECOMMENDATION ===== #}

6 · Extra to allocate

{% if budget.current_target and runway.free_to_attack and runway.free_to_attack > 0 %}
${{ '{:,.2f}'.format(runway.free_to_attack) }} free to attack → {{ budget.current_target.name }}

Avalanche default. Cuts {{ budget.current_target.name }} from ${{ '{:,.2f}'.format(budget.current_target.current_balance or 0) }} to ${{ '{:,.2f}'.format([0, (budget.current_target.current_balance or 0) - runway.free_to_attack]|max) }}.

{% else %}

Awaiting checking snapshot and confirmed autopays before the recommendation lands.

{% endif %}

When ready, add the recommended amount as a manual payment row above and save.

{# ===== 7. AI ASSISTANT ===== #}

7 · Payday assistant (optional)

Single-shot recommendations with cited math. Advice, not action — nothing reaches a bank.

{# ===== 8. CLOSE SESSION ===== #}
Cancel
{% include 'includes/today_panel.html' ignore missing %} {% include 'includes/active_timer_strip.html' ignore missing %}