{% extends "base.html" %} {% block content %}
🧾🦀 TaxClaw
{{ status_label }}
Your taxes. Your machine. Your data.
docs {{ stats.total }} need review {{ stats.needs_review }} processed {{ stats.processed }} ready to export {{ stats.ready_to_export }}

Workflow

4 steps. Local-first by default.
① Upload
Drop your PDF
② Extract
AI reads the form fields automatically.
No action needed.
③ Review
Verify fields and flag anything for your CPA.
④ Export
Export extracted data or all original files.

🤖 Your agent can do this too

Agent-friendly
You don't need to open this UI at all. Just send your agent a tax document and say: “Add this to TaxClaw” or “Extract this 1099”.
Your agent will call:
taxclaw ingest <file> --filer <you> --year 2025
Everything lands here automatically. You review, your agent extracted. Local. Private. Fast.
{% if stats.crypto_docs and stats.crypto_docs > 0 %}
🪙 You have {{ stats.crypto_docs }} crypto tax document(s).
Cost basis reconciliation may be needed.
Learn about your options →
{% endif %}
⚠️ New 1099‑DA? Don't file without cost basis.
TaxClaw extracts proceeds (step 1). Cost basis is step 2 — and it's what most crypto filers are missing.
Check cost basis →

Recent documents

View all →
{% if recent_docs|length == 0 %}
No documents yet — upload your first PDF or send one to your agent.
{% else %}
{% for d in recent_docs %} {% endfor %}
Document Type Filer Year Status Confidence
{% if d.display_name %}
{{ d.display_name }}
{{ d.id[:8] }}
{% else %} {{ d.id[:8] }} {% endif %}
{{ d.doc_type or 'unknown' }} {{ d.filer or '' }} {{ d.tax_year or '' }} {% if d.status == 'processed' %} processed {% elif d.status == 'needs_review' %} needs_review {% else %} {{ d.status }} {% endif %} {{ '%.2f'|format(d.overall_confidence or 0) }}
{% endif %}
{% endblock %}