Skip to main content

What are Reserves?

Reserves (also called Reserve Allocations) are designated portions of your organization’s retained earnings set aside for specific future purposes. Think of them as internal accounting designations that earmark funds within your organization’s equity for particular goals or contingencies.
Key concept: Reserves are accounting designations, not separate bank accounts. The actual cash remains in your bank accounts - reserves simply track how much of your retained earnings is earmarked for specific purposes through ledger account entries.

Why Create Reserves?

Key benefits:
  • Plan for future major expenses (building fund, equipment replacement)
  • Set aside emergency contingency funds
  • Demonstrate financial prudence to members and auditors
  • Track progress toward specific savings goals
  • Separate operational funds from designated savings
  • Ensure funds are available when needed for specific purposes
  • Protect important initiatives from being spent on day-to-day operations
  • Create accountability for special-purpose funds

Common Reserve Types

Reserve NamePurposeTypical Target
Emergency ReserveUnexpected expenses, cash flow problems, economic downturns3-6 months operating expenses
Equipment ReplacementFuture purchase of computers, furniture, vehiclesBased on equipment lifecycle
Building FundSaving toward purchasing or constructing office spaceProject cost estimate
Loan Loss ReserveCover potential bad debts from loan defaults5-10% of loans outstanding
Dividend ReserveFunds designated for future member dividend paymentsPlanned dividend amount
Expansion FundGrowth initiatives, new branches, additional servicesExpansion plan budget
Statutory ReserveLegally required reserves (varies by country)Per regulations
Naming tip: Choose descriptive names that clearly indicate the reserve’s purpose. Reserve names must be unique within your organization.

How Reserves Work

Reserves operate through a ledger-based accounting system:

Reserve Structure

Each reserve allocation:
  • Has a unique ReserveAllocationMeta record (database metadata)
  • Gets a dedicated Ledger Account with role RESERVE_ALLOCATION (tracks balance)
  • Uses scope key format: reserve:{reserveAllocationId} (links ledger account to specific reserve)
  • Appears as EQUITY on the balance sheet (like retained earnings)

Creating a Reserve

When you create a new reserve:
  1. Name the reserve: “Emergency Fund”, “Building Fund”, etc. (unique per organization)
  2. Add description (optional): Purpose, goals, target amount
  3. Set active status: Active reserves can receive allocations (default: true)
  4. System creates ledger account: Automatic RESERVE_ALLOCATION ledger account with zero balance
Initial state: New reserves start with balance of zero - no funds allocated yet.

Allocating to Reserves (Top Up)

When you allocate money to a reserve: Journal Entry Created:
Kind: RESERVE_TOP_UP
Date: Allocation date

Dr RETAINED_EARNINGS       Amount
   Cr RESERVE_ALLOCATION   Amount
      (scopeKey: reserve:{reserveId})
What happens:
  • Funds transfer from Retained Earnings to the Reserve (accounting designation)
  • Total organization equity remains unchanged (money moved within equity, not created)
  • Reserve balance increases by the allocation amount
  • Retained earnings (undesignated) decreases by the allocation amount
Requirements:
  • Organization must have sufficient retained earnings
  • Reserve must be active (isActive: true)
  • Amount must be at least 0.01
Important: This does NOT move physical cash between bank accounts. It’s a pure accounting entry that designates a portion of your retained earnings for a specific purpose.

Releasing from Reserves (Withdrawal)

When you release money from a reserve back to general use: Journal Entry Created:
Kind: RESERVE_RELEASE
Date: Release date

Dr RESERVE_ALLOCATION      Amount
   (scopeKey: reserve:{reserveId})
   Cr RETAINED_EARNINGS    Amount
What happens:
  • Funds transfer from Reserve back to Retained Earnings
  • Total organization equity remains unchanged
  • Reserve balance decreases by the release amount
  • Retained earnings (undesignated) increases
  • Funds become available for general use (no longer earmarked)
Requirements:
  • Reserve must have sufficient balance
  • Reserve must be active
  • Amount must be at least 0.01
When to release:
  • Reserve purpose completed (e.g., building purchased)
  • Reserve no longer needed
  • Transferring funds to different reserve (release + top up other reserve)
  • Converting reserved funds to general use

Reserve-Funded Expenses

Agatabo supports spending directly from reserves for expenses, creating a two-journal-entry pattern: Pattern: Reserve-Funded Expense When you record an expense and specify a reserve allocation: Entry 1: RESERVE_RELEASE (Parent)
Kind: RESERVE_RELEASE
Date: Expense date

Dr RESERVE_ALLOCATION                Amount + BankCharges
   Cr RETAINED_EARNINGS              Amount + BankCharges
Entry 2: RESERVE_EXPENSE (Child)
Kind: RESERVE_EXPENSE
Date: Expense date
Parent: Entry 1 (RESERVE_RELEASE)

Dr OPERATING_EXPENSE                 Amount
   Cr CASH (Bank Account)            Amount
If bank charges included:
Entry 3: BANK_CHARGE (Child)
Parent: Entry 2 (RESERVE_EXPENSE)

Dr BANK_CHARGE_EXPENSE               BankChargeAmount
   Cr CASH (Bank Account)            BankChargeAmount
What happens:
  • Reserve balance decreases (funds released)
  • Bank account balance decreases (cash spent)
  • Expense recorded on Profit & Loss
  • Parent-child relationship links reserve release to expense
Requirements:
  • Reserve must have sufficient balance for expense + bank charges
  • Creates two linked journal entries automatically
  • Atomic transaction (both entries succeed or both fail)
Learn about reserve-funded expenses →

What You CANNOT Do with Reserves

Reserves do NOT support:
  • ❌ Funding loan disbursements (loans cannot be funded from reserves)
  • ❌ Creating separate physical bank accounts (reserves are accounting only)
  • ❌ Direct cash withdrawals (use release + expense, not reserve withdrawal)
  • ❌ Partial deletion (delete requires zero balance and no transaction history)
  • ❌ Negative balances (unless explicitly skipped via skipNegativeBalanceCheck)

Reserve Information

Each reserve allocation includes:

Required Fields

Name:
  • Descriptive name (e.g., “Emergency Fund”, “Building Fund”)
  • Must be unique within the organization
  • Can be updated after creation
  • Used in ledger account name: ” Reserve Allocation”

Optional Fields

Description:
  • Purpose and goals
  • Target amount information
  • Usage guidelines
  • Any relevant policies
Active Status (isActive):
  • Boolean flag: true (active) or false (inactive)
  • Active reserves can receive top-ups and releases
  • Inactive reserves reject balance operations
  • Can be toggled without deleting the reserve

Automatically Generated

ID: Unique identifier (UUID) Ledger Account: Automatically created linked account
  • Role: RESERVE_ALLOCATION
  • Scope Key: reserve:{reserveId}
  • Account Type: EQUITY
  • Balance: Calculated from journal entries
Balance: Current amount allocated to this reserve
  • Calculated from ledger account balance
  • Updated automatically via journal entries
  • Cannot be set directly (use top-up/release operations)
Transaction History: All top-ups, releases, and expenses
  • Queryable via /reserve-allocations/:id/transactions endpoint
  • Includes running balance for each transaction
  • Filterable by transaction type and date range
Created At / Updated At: Timestamps

Reserve Operations

What You Can Do

Create Reserve

Set up new reserve allocations

Top Up (Allocate)

Add funds to reserves from retained earnings

Release (Withdraw)

Release funds back to retained earnings

Fund Expenses

Spend directly from reserve for expenses

View Transactions

View reserve balances and transaction history

Update Reserve

Edit name, description, or active status

Delete Constraints

You can delete a reserve allocation only if:
  • ✅ Balance is exactly zero (no funds allocated)
  • ✅ No transaction history (no posted journal entries)
  • ✅ You have reserves:write permission
Otherwise, deletion is rejected with error message. Best practice: Deactivate reserves instead of deleting them (preserves historical records).

Integration with Other Features

Retained Earnings

Reserves draw from retained earnings (accumulated profit over time): Relationship:
Total Retained Earnings = Designated Reserves + Undesignated Retained Earnings

Example:
Total Retained Earnings:    10,000,000 RWF
Emergency Reserve:          -2,000,000 RWF
Building Fund:              -1,500,000 RWF
Equipment Reserve:          -  500,000 RWF
---------------------------------------------
Undesignated (Available):    6,000,000 RWF
Requirement: You must have positive retained earnings to allocate to reserves. Learn about profit & loss →

Expenses

Reserve-funded expenses create two journal entries:
  1. RESERVE_RELEASE: Moves funds from reserve to retained earnings
  2. RESERVE_EXPENSE: Spends from cash (linked to release entry)
Benefits:
  • Track which expenses came from which reserves
  • Prevent overspending reserve allocations
  • Better reserve fund reporting
  • Separate restricted from unrestricted spending
Learn about expenses →

Balance Sheet

Reserves appear on the Balance Sheet under Equity section: Example Balance Sheet (Equity Section):
EQUITY
  Opening Equity:                    5,000,000
  Retained Earnings:                 6,000,000  (undesignated)
  Reserve Allocations:
    Emergency Reserve:               2,000,000
    Building Fund:                   1,500,000
    Equipment Reserve:                 500,000
  Total Reserve Allocations:         4,000,000
  Other Equity:                      1,000,000
---------------------------------------------
TOTAL EQUITY:                       16,000,000
Note: Total equity includes both designated (reserves) and undesignated (retained earnings) portions. Learn about balance sheet →

Budget Planning

Use reserves as part of annual budget planning: Strategy examples:
  • Allocate 10% of monthly profit to emergency reserve
  • Schedule quarterly equipment replacement allocations
  • Set annual dividend reserve targets
  • Track progress toward building fund goal

Validation and Constraints

Input Validation

Name:
  • ✅ Must be non-empty string
  • ✅ Must be unique within organization
  • ❌ Cannot be blank
  • ❌ Cannot duplicate existing reserve name
Amount (for top-up/release):
  • ✅ Must be at least 0.01
  • ✅ Must match organization’s currency decimal places
  • ❌ Cannot be negative or zero
Active Status:
  • ✅ Must be boolean (true or false)
  • Reserve must be active for balance operations

Business Logic Validation

Top-Up Constraints:
  • Must have sufficient retained earnings
  • Reserve must be active
  • Validates amount against monetary policy
Release Constraints:
  • Must have sufficient reserve balance (unless skipNegativeBalanceCheck: true)
  • Reserve must be active
  • Amount cannot exceed current balance
Expense Constraints:
  • Reserve must have sufficient balance for expense amount + bank charges
  • Creates two linked journal entries atomically
Delete Constraints:
  • Balance must be exactly zero
  • No transaction history (no posted journal entries)
  • Only reserves with no activity can be deleted
Idempotency:
  • All balance operations require idempotency key (header: x-idempotency-key)
  • Prevents duplicate top-ups/releases from retries
  • Safe for network failures and refreshes

Reserve vs. Expense vs. Bank Account

Common confusion clarified:
ScenarioWhere to RecordWhy
Setting aside money for future building purchaseReserve Top-Up (allocate to Building Fund)Designates retained earnings for specific future use
Actually paying for building constructionExpense (optionally from reserve) or Fixed AssetActual spending of cash
Moving cash from current account to savings accountBank Transfer (manual journal entry)Physical movement of cash between accounts
Profit at year-end that is unallocatedRetained Earnings (automatic)Not automatically reserved
Spending from emergency fund on repairsReserve-Funded ExpenseLinks expense to reserve purpose
Critical distinction:
  • Reserve = Accounting designation within equity (no physical cash movement)
  • Bank Account = Actual cash held in a financial institution
  • Expense = Money spent and consumed
Creating a reserve does NOT:
  • Create a separate bank account
  • Move cash between bank accounts
  • Spend any money
  • Change your total organization equity
Creating a reserve ONLY:
  • Designates portion of retained earnings for specific purpose
  • Creates ledger account to track reserve balance
  • Helps with financial planning and accountability

Example Reserve Strategy

Small tontine (50 members, 10M RWF total assets, 8M RWF retained earnings):

Year 1 Plan

  1. Emergency Reserve: Target 2,000,000 RWF (3 months operating expenses)
    • Allocate 200,000 RWF monthly for 10 months
    • Use only for unexpected operational emergencies
    • Examples: Equipment breakdown, bank fees spike, cash flow gap
  2. Loan Loss Reserve: Target 500,000 RWF (5% of 10M loan portfolio)
    • Allocate 50,000 RWF monthly for 10 months
    • Release when writing off bad debts (optional)
    • Demonstrates prudent risk management
  3. Equipment Reserve: Target 1,000,000 RWF (planned computer upgrade)
    • Allocate 100,000 RWF monthly for 10 months
    • Release when purchasing computers and furniture
    • Ensures funds available when needed
Monthly allocations: 350,000 RWF total (200k + 50k + 100k) Annual allocations: 3,500,000 RWF total After Year 1:
Total Retained Earnings:         8,000,000 RWF

Reserve Allocations:
  Emergency Reserve:             2,000,000 RWF
  Loan Loss Reserve:               500,000 RWF
  Equipment Reserve:             1,000,000 RWF
Total Reserved:                  3,500,000 RWF

Undesignated Retained Earnings:  4,500,000 RWF (available for general use)

Usage Example

Scenario: Emergency equipment repair costs 150,000 RWF Option 1: Reserve-Funded Expense
Record expense with reserveAllocationId = Emergency Reserve

Entry 1 (RESERVE_RELEASE):
Dr RESERVE_ALLOCATION (Emergency)  150,000
   Cr RETAINED_EARNINGS            150,000

Entry 2 (RESERVE_EXPENSE):
Dr OPERATING_EXPENSE (Repairs)     150,000
   Cr CASH (Bank Account)          150,000

Result:
- Emergency Reserve: 1,850,000 RWF (decreased)
- Retained Earnings: 4,650,000 RWF (increased by release, but...)
- Cash: -150,000 RWF (spent)
- Net equity: Unchanged (release + expense offset)
Option 2: Release + Separate Expense
Step 1: Release from reserve
Dr RESERVE_ALLOCATION (Emergency)  150,000
   Cr RETAINED_EARNINGS            150,000

Step 2: Record expense (no reserve)
Dr OPERATING_EXPENSE (Repairs)     150,000
   Cr CASH (Bank Account)          150,000

Result: Same as Option 1, but not automatically linked

Best Practices

Reserve management tips:Creation:
  • Create 3-5 main reserves (not too many to track effectively)
  • Use clear, descriptive names indicating purpose
  • Document reserve policies in bylaws or financial guidelines
  • Set target amounts based on organizational needs
Targets:
  • Emergency reserve: 3-6 months of operating expenses
  • Loan loss reserve: 5-10% of total loans outstanding
  • Equipment reserve: Based on replacement cycle and costs
  • Building fund: Based on purchase/construction estimates
Allocation frequency:
  • Allocate regularly (monthly or quarterly) rather than sporadically
  • Consistent small allocations easier than large lump sums
  • Build allocation into monthly budget process
  • Treat as priority expense (pay yourself first)
Monitoring:
  • Review reserve balances quarterly
  • Compare actual vs. target balances
  • Adjust allocation amounts based on progress
  • Report reserve balances to members at meetings
Usage:
  • Release from reserves only when using funds for stated purpose
  • Document reason for releases (especially large amounts)
  • Get committee approval for releases over threshold (e.g., 500,000 RWF)
  • Use reserve-funded expenses to maintain audit trail
Maintenance:
  • Deactivate reserves that are no longer needed (don’t delete - preserves history)
  • Only delete reserves with zero balance and no transaction history
  • Update descriptions annually to reflect current goals
  • Review reserve strategy annually and adjust as needed

Permissions Required

ActionPermissionScope
View reservesreserves:readANY
Create reservereserves:writeANY
Top up reservereserves:writeANY
Release from reservereserves:writeANY
Update reservereserves:writeANY
Delete reservereserves:writeANY
View transactionsreserves:readANY
Typical roles: Administrators and Accountants usually have reserves:write. Regular members typically have reserves:read (view only) or no access.

Creating Reserves

Set up new reserve allocations

Reserve Allocations

Add funds to reserves (Top Up)

Reserve Withdrawals

Release funds from reserves

Reserve Reporting

View reserve balances and transaction history

Reserve-Funded Expenses

Spend directly from reserves

Balance Sheet

View reserves on financial reports