Ledger

Bills and subscriptions, parsed from your inbox
Sign-in is handled by Cloudflare Access — nothing to enter here but the URL.
Due this month
Paid this month
Active vendors
Unrecognized emails
VendorTypeSubjectDateDueStatusAmount

Recurring monthly estimate

Based on each vendor's expected amount and billing cycle, normalized to a monthly figure. Vendors with "count in monthly expense tracking" turned off are excluded.

CategoryMonthly equivalent
Total

Actual monthly totals

Sum of real bills received, grouped by month, from vendors counted toward expenses.

MonthTotal

Add a vendor

Utility: fallback due date if no due-date regex matches. Recurring: the day each month's bill gets generated.
Matched against the From address, case-insensitive. Not needed for Recurring vendors — those don't depend on email at all.
If set, at least one must appear in the subject or body
First capture group becomes the amount

Emails that arrived but didn't match any vendor rule. Add a vendor covering the sender, or dismiss.