Skip to content
osmods
Firefly III

Envelope rollover

Unspent budget rolls into next month, the way paper envelopes always worked.

View upstream
AuthorAndrés Quilapán
PublishedJul 2026
LicenseAGPL-3.0
Installs74

Why it exists

Firefly budgets reset each month, which is the right default and the wrong behavior for the way many people actually save: put money in an envelope, let it accumulate, spend it when the moment comes.

This mod adds per-budget rollover with a cap, so the eating-out envelope can grow for three months before a celebration without turning into a loophole.

What it does

  • Per-budget rollover, on or off per envelope
  • Optional cap on accumulated rollover
  • History shows carried amounts explicitly

The spec

These acceptance criteria were written with the person who requested the mod, then locked in as its tests. The mod has to pass them on every new release train before it rides along.

  • A month with no spending carries the full budget forward, capped as configured
  • Disabling rollover returns the budget to stock behavior without losing history

mods/envelope-rollover/tests/RolloverCapTest.php

public function test_rollover_respects_the_cap(): void
{
    $budget = $this->budget("eating out", monthly: 120, cap: 300);
    $this->skipMonths(4);  // nothing spent
assertEquals(300, $budget->available());
}