Skip to main content

fava-envelope-airmail

A fork of memst/fava-envelope (itself a fork of polarmutex/fava-envelope) that adds several enhancements for envelope budgeting in Fava/Beancount.

I'm open to merging these changes upstream, but the original repos haven't seen much merge activity lately, so I decided to publish this fork separately in case anyone else finds the enhancements useful.

What's New in This Fork

Budget Statistics Page

A new Stats view accessible from the budget page header that provides:

  • Overall summary cards: total periods tracked, total/average income, total budgeted vs. spent, and overall budget adherence rate
  • Per-envelope statistics: period counts, under/over budget breakdowns, adherence percentages, average activity, and standard deviation
  • Categorization of envelopes into "Well-Managed" (>80% adherence) and "Needs Attention" (<50% adherence)
  • Color-coded stats table rows by adherence rate

Scheduled Transaction Tracking

  • Transactions flagged with X (e.g., upcoming/scheduled bills) are now tracked per envelope
  • A badge appears next to envelope names showing the count and total of scheduled transactions for that month (e.g., 2X)

Account Ignore Directive

A new ignore directive to exclude accounts from envelope budgeting (e.g., taxes, 401k contributions). Ignored accounts are treated as income deductions rather than being completely skipped:

2020-01-01 custom "envelope" "ignore" "Expenses:Taxes:.*"

Color-Coded Budget Table

  • Envelope rows are color-coded based on account type and available balance:
    • Expenses: green (under budget), yellow (exactly zero), red (overspent)
    • Assets: blue (negative/receivable), green (positive)
    • Liabilities: treated like expenses
  • Income "To be budgeted" row is color-coded: green (surplus), red (deficit), yellow (zero)
  • Individual amounts within rows show positive/negative coloring
  • Full dark mode support

Other Improvements

  • Envelopes are now sorted alphabetically
  • Default month view is the current month (instead of the last available month)
  • Redundant "Amount" column is hidden when only one currency is configured
  • Rolled-over allowance column shows positive/negative coloring

Inherited Features (from memst/fava-envelope)

  • No pandas dependency (faster)
  • Cached envelope results until source files change
  • Multi-currency support
  • Simplified budgeting table
  • Proper ACCOUNT types in directive parsing
  • Advanced directives: allocate fill, income override, allow negative rollover, include starting balance, repeat-until metadata

Please check the changelog for full details.

Installation

From PyPI

pip install fava-envelope-airmail

From Source

git clone https://github.com/stenius/fava-envelope-airmail.git
cd fava-envelope-airmail
pip install -e .

Usage

Load the Extension

Add this to your beancount journal, and start fava as normal:

2000-01-01 custom "fava-extension" "fava_envelope" "{}"

You should now see 'Envelope' in your fava sidebar. You must set up a budget (see below), or Fava will report a 404 error.

Setting Up a Budget

Start date

2020-01-01 custom "envelope" "start date" "2020-01"

Budget months ahead

Show future months for budgeting ahead (default is 0):

2020-01-01 custom "envelope" "months ahead" "2"

Budget accounts

Specify the Assets and Liabilities included in your budget (supports regex):

2020-01-01 custom "envelope" "budget account" "Assets:Checking"
2020-01-01 custom "envelope" "budget account" "Liabilities:Credit-Cards:.*"

Mappings

Map sub-accounts to a parent envelope:

2020-01-01 custom "envelope" "mapping" "Expenses:Food:.*" Expenses:Food

Ignore accounts

Exclude accounts from budgeting (e.g., taxes deducted from paychecks):

2020-01-01 custom "envelope" "ignore" "Expenses:Taxes:.*"

Allocate money to an envelope

2020-01-31 custom "envelope" "allocate" Expenses:Food 100.00 USD

Operating currency

The extension reads the operating currency from beancount options (defaults to USD):

option "operating_currency" "EUR"

License

MIT

Metadata

Release files for fava-envelope-airmail 2026.2.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fava-envelope-airmail 2026.2.9
File Size Uploaded
fava_envelope_airmail-2026.2.9.tar.gz 21.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fava-envelope-airmail 2026.2.9
File Interpreter ABI Platform
fava_envelope_airmail-2026.2.9-py3-none-any.whl Python 3 none any Details

Total release size: 44.5 kB

Release files / fava_envelope_airmail-2026.2.9.tar.gz

Download URL fava_envelope_airmail-2026.2.9.tar.gz
Size 21.0 kB
Tags Source
SHA-256 checksum
How to use checksums
1e4b0ea10f4c4e43bed2dce8c19a8038f2abaea4a23d66aafa11a7970d8b6da2
BLAKE2b-256 checksum
How to use checksums
1560563a57192acb76ba852e5a4fdbdc8b5028e58dbd44adc8538be3bb1146a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.8

Release files / fava_envelope_airmail-2026.2.9-py3-none-any.whl

Download URL fava_envelope_airmail-2026.2.9-py3-none-any.whl
Size 23.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3d608607e5b89c78ba69c8120a906c595b114f0c9a186285cb9257909eabd963
BLAKE2b-256 checksum
How to use checksums
d66e731f071691f442256c29d8e9816336e10482272631735caf3eace3a27456
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.8

Release history Release notifications | RSS feed

This release

2026.2.9 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page