{% extends "base.html" %} {% block title %}Sync Log - Fin{% endblock %} {% block content %}

Sync Log

Data provenance and sync history

Data Retention Policy

fin persists all data locally. Sync operations are append-only: new records are inserted, existing records may be updated, but nothing is deleted. You control your data retention.

Data Overview

{{ stats.total_txns | int | string | replace(",", "") if stats.total_txns else '0' }}
Total Transactions
{{ stats.earliest[:10] if stats.earliest else 'N/A' }}
Earliest Transaction
{{ stats.latest[:10] if stats.latest else 'N/A' }}
Latest Transaction
{{ runs | length }}
Total Syncs (last 50)

Sync History

{% if runs %} {% for run in runs %} {% endfor %}
When Fetched New Updated
{{ run.ran_at[:16].replace('T', ' ') if run.ran_at else 'Unknown' }} {{ run.txns_fetched }} +{{ run.txns_inserted }} {{ run.txns_updated }}
{% else %}
No sync history available.
{% endif %}

Recently Added Transactions

{% if recent_inserts %} {% for txn in recent_inserts %} {% set amount = txn.amount_cents / 100 %} {% endfor %}
First Seen Date Payee Amount Account
{{ txn.created_at[:16].replace('T', ' ') if txn.created_at else '' }} {{ txn.posted_at[:10] if txn.posted_at else '' }} {{ txn.payee[:40] }} ${{ "%.2f"|format(amount|abs) }} {{ txn.account_name }}
{% else %}
No transactions synced yet.
{% endif %}

Recently Updated Transactions

{% if recent_updates %} {% for txn in recent_updates %} {% set amount = txn.amount_cents / 100 %} {% endfor %}
Updated Date Payee Amount Account
{{ txn.updated_at[:16].replace('T', ' ') if txn.updated_at else '' }} {{ txn.posted_at[:10] if txn.posted_at else '' }} {{ txn.payee[:40] }} ${{ "%.2f"|format(amount|abs) }} {{ txn.account_name }}
{% else %}

No transactions have been updated since they were first synced.

{% endif %}
{% endblock %}