Skip to main content

What are Dividends?

Dividends are distributions of organizational profits to members. In tontines and savings groups, dividends reward members for their participation and savings, returning a share of the organization’s earnings directly to member equity accounts.
How it works: Dividends transfer funds from organizational retained earnings to individual member savings accounts. This reduces organization equity and increases member equity by the same amount - total equity remains unchanged.

Why Distribute Dividends?

Key benefits:
  • Reward members for participation and loyalty
  • Share organizational success with membership
  • Incentivize savings and active membership
  • Demonstrate financial health and profitability
  • Fulfill member expectations (many join tontines expecting dividends)
  • Maintain member engagement and retention
  • Provide tangible return on savings
  • Build trust through transparent profit-sharing

How Dividends Work in Agatabo

1. Create Dividend Pool (Draft)

Set up a dividend distribution for a specific period: Required information:
  • Period Label: Human-readable name (e.g., “Q1 2026”, “Annual Dividend 2025”)
  • Period Start: Beginning of dividend period (e.g., 2026-01-01)
  • Period End: End of dividend period (e.g., 2026-03-31)
  • Amount: Total to be distributed to all eligible members
Status: Pool starts as draft (journalEntryId = null) Validation:
  • Period end must be on or before last closed accounting period
  • Period cannot overlap with existing dividend pools
  • Amount must be at least 0.01
Draft state: Draft pools are like proposals - they calculate allocations and show what each member would receive, but don’t actually distribute funds until you mark them as distributed.

2. Calculate Individual Shares (Automatic)

Agatabo automatically calculates each member’s dividend based on configured distribution method: Distribution Methods: Time-Weighting (optional):
  • Can be enabled for either method
  • Accounts for membership duration during period
  • Prevents new members from getting full dividend
  • Adjusts allocation based on participation days
Eligibility Criteria:
  • ✅ Member must be active (isActive = true)
  • NO minimum savings balance required
  • NO loan status restrictions
  • NO minimum tenure requirements (time-weighting handles this)

3. Distribute Dividends (Execution)

When ready, mark pool as distributed: What happens:
  1. Creates DIVIDEND_DISTRIBUTION journal entry
  2. Debits RETAINED_EARNINGS (organization)
  3. Credits each member’s SAVINGS account (individual allocations)
  4. Updates pool status to “distributed” (journalEntryId populated)
  5. Permanent - cannot be undone (only reversed via delete operation)
Payment method: Dividends are automatically credited to member savings accounts - no cash withdrawal, checks, or bank transfers. Requirements:
  • Distribution date must be after last closed accounting period
  • Requires idempotency key (prevents duplicate distributions)
  • Organization must have sufficient retained earnings
Important constraints:
  • Accounting period: Dividend period end must fall within a closed accounting period
  • Distribution timing: Distribution date must be after the last closed period
  • No overlapping periods: Cannot create pools with overlapping date ranges
  • Permanent action: Distribution cannot be undone (only reversed by deleting pool)
  • No approval workflow: Direct transition from draft to distributed (no intermediate approval step)

Common Dividend Periods

Frequency trade-offs:
  • Quarterly: Keeps members engaged, more administrative work
  • Annual: Larger impactful payouts, less frequent distribution effort
  • Recommendation: Start quarterly, move to annual if administrative burden too high

Distribution Methods Explained

Method 1: Equal Distribution

How it works: Total amount ÷ Number of eligible members = Each member’s share Formula:
Example:
Best for:
  • Small groups where everyone participates equally
  • Cooperative ownership models
  • Simple, easy-to-explain approach
  • Groups with similar savings levels
Advantages:
  • Simple to understand and explain
  • Perceived as fair (everyone equal)
  • No disputes about calculations
Disadvantages:
  • Doesn’t reward higher savings
  • May discourage large savers

Method 2: Distribution by Contribution

How it works: Member’s dividend = (Member savings ÷ Total savings) × Pool amount Formula:
Example:
Best for:
  • Groups with varying member savings levels
  • When fairness means “more contribution = more reward”
  • Incentivizing higher savings
  • Larger organizations with diverse membership
Advantages:
  • Rewards members who save more
  • Incentivizes higher savings
  • Mathematically proportional
Disadvantages:
  • More complex to explain
  • Large savers get disproportionately large dividends
  • May discourage small savers

Time-Weighting (Optional Enhancement)

Applies to both methods: Can enable time-weighting for equal OR contribution-based distribution How it works: Adjusts allocation based on how long member was active during period Equal + Time-Weighted Example:
Contribution + Time-Weighted Example:
Best for:
  • Groups with frequent new member joins
  • Preventing “last-minute joiners” from getting full dividend
  • Fairness when membership changes during period
  • Sophisticated organizations with technical capacity

Dividend Pool Status

Pools have two states:
No intermediate approval: Agatabo does not have a formal approval workflow. Pools go directly from draft to distributed when you execute distribution. If your organization requires approval, implement it outside Agatabo (e.g., board approval before distribution).

Payment Method

Single payment method: Credit to Savings Account When dividends are distributed:
  • Each member’s SAVINGS account is credited automatically
  • NO cash withdrawal
  • NO checks issued
  • NO bank transfers
  • NO manual payment required
Member access:
  • Members can view increased savings balance immediately
  • Members can withdraw from savings if desired (separate operation)
  • Or leave dividend in savings to continue earning
No tax withholding: Agatabo does NOT withhold taxes or any deductions from dividend distributions. The full amount is credited to member savings accounts. Members are responsible for their own tax obligations on dividend income.

Accounting Treatment

When dividends are distributed, Agatabo creates a DIVIDEND_DISTRIBUTION journal entry: Journal Entry:
Effect:
  • Organization’s retained earnings decrease by total pool amount
  • Each member’s savings balance increases by their allocation
  • Total organization equity unchanged (internal transfer from org to members)
Example:

Integration with Other Features

Retained Earnings

Dividends are paid from retained earnings (accumulated profit over time). Source of funds:
  • Net income from Profit & Loss accumulates in retained earnings
  • Must have sufficient retained earnings to create dividend pool
  • System validates balance before distribution
Calculation:
Learn about profit & loss →

Member Savings

For contribution-based dividends, Agatabo uses member savings balances to calculate proportional shares. Balance used:
  • Without time-weighting: Current savings balance at period end
  • With time-weighting: Average daily balance during period (time-weighted calculation)
Savings accounts:
  • Each member has one SAVINGS ledger account
  • Balance tracked through journal entries (deposits, withdrawals, dividends)
  • Dividend credits increase savings balance automatically
Learn about deposits & savings →

Reserves

Many organizations set aside a dividend reserve before creating pools, ensuring funds are available for distribution. Best practice workflow:
  1. Close accounting period and calculate net income
  2. Allocate portion of profit to reserves (emergency, loan loss, etc.)
  3. Allocate remaining amount to dividend reserve
  4. Create dividend pool using dividend reserve amount
  5. Distribute dividends
Example:
Learn about reserves →

Accounting Periods

Critical constraint: Dividend distribution requires closed accounting periods. Period requirements:
  • Pool period end must be on or before last closed period end
  • Distribution date must be after last closed period end
  • Cannot distribute dividends for periods not yet closed
Example:
Why this constraint:
  • Ensures profit calculations are finalized
  • Prevents distributing profits before period close
  • Maintains accounting integrity
Learn about period closing →

Validation and Constraints

Input Validation

Period Label:
  • ✅ Must be non-empty string
  • ✅ Descriptive name for the period
  • ❌ Cannot be blank
Period Start/End:
  • ✅ Must be valid ISO dates
  • ✅ End must be after start
  • ✅ End must be on or before last closed period
  • ❌ Cannot overlap with existing dividend pools
Amount:
  • ✅ Must be at least 0.01
  • ✅ Must match organization’s currency decimal places
  • ❌ Cannot be negative or zero
  • ❌ Cannot exceed available retained earnings (unless skipNegativeBalanceCheck)

Business Logic Validation

Period Overlap Check:
  • System checks for existing pools with overlapping date ranges
  • Error if overlap found: “A dividend pool already exists for overlapping period:
Accounting Period Constraint:
  • Pool end date must be within closed accounting period
  • Distribution date must be after last closed period
  • Error if violated
Retained Earnings Check:
  • Validates sufficient retained earnings before distribution
  • Can skip with skipNegativeBalanceCheck: true (requires special permission)
Eligibility Validation:
  • At least one active member must exist
  • Error if no active members: “No active organizationUsers eligible for dividend distribution”
Idempotency:
  • All distribution operations require idempotency key (header: x-idempotency-key)
  • Prevents duplicate distributions from retries
  • Safe for network failures

Best Practices

Dividend management tips:Policy & Planning:
  • Establish consistent dividend schedule (e.g., quarterly on last day of quarter)
  • Document dividend policy in bylaws (method, frequency, eligibility)
  • Communicate policy clearly to members before they join
  • Reserve 50-60% of profit for dividends, rest for reserves and growth
Reserve Management:
  • Set aside dividend reserve before creating pools
  • Don’t distribute 100% of profit (maintain reserves)
  • Common split: 50% dividends, 30% reserves, 20% retained for growth
Approval & Governance:
  • Get board/committee approval for dividend pools before distribution
  • For large pools (> 2M RWF), consider full member vote
  • Document approval in meeting minutes
  • Implement external approval workflow if needed (Agatabo doesn’t have built-in approval)
Communication:
  • Notify members before distribution (explain allocation method)
  • Allow time for members to verify calculations
  • Communicate dividend distribution clearly
  • Celebrate milestone dividends with members
Timing:
  • Create draft pools early (members can see projected allocations)
  • Distribute within 30 days of period close
  • Avoid delays (members expect timely distributions)
Method Selection:
  • Use equal for small, homogeneous groups
  • Use contribution-based for diverse savings levels
  • Enable time-weighting if frequent new member joins
  • Be consistent - don’t change method frequently

Example Dividend Policy

Provide to members for transparency:

Permissions Required

Typical roles:
  • Administrators and Accountants have dividends:write
  • Members have dividends:read with SELF scope (can view their own dividends only)
  • Board members may have dividends:read with ANY scope

Creating Dividend Pools

Set up dividend distributions

Distributing Dividends

Mark pools as distributed

Dividend Reporting

View dividend history and analytics

Profit & Loss

Calculate net income for dividends

Reserves

Set aside funds for dividends

Period Closing

Close periods before distribution