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
- 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:| Method | How it Works | Best For |
|---|---|---|
| Equal Distribution | Every eligible member gets same amount | Small groups with similar contributions |
| By Contribution | Proportional to savings balance | Groups with varying savings levels |
- 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
- ✅ 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:- Creates DIVIDEND_DISTRIBUTION journal entry
- Debits RETAINED_EARNINGS (organization)
- Credits each member’s SAVINGS account (individual allocations)
- Updates pool status to “distributed” (journalEntryId populated)
- Permanent - cannot be undone (only reversed via delete operation)
- Distribution date must be after last closed accounting period
- Requires idempotency key (prevents duplicate distributions)
- Organization must have sufficient retained earnings
Common Dividend Periods
| Period | Frequency | Use Case | Example |
|---|---|---|---|
| Quarterly | Every 3 months | Active tontines with regular profits | Mar 31, Jun 30, Sep 30, Dec 31 |
| Semi-Annual | Every 6 months | Medium-activity groups | Jun 30, Dec 31 |
| Annual | Once per year | Conservative groups, formal organizations | Dec 31 |
| Project-Based | Ad-hoc | One-time distributions after successful projects | After building sale, special event |
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:- Small groups where everyone participates equally
- Cooperative ownership models
- Simple, easy-to-explain approach
- Groups with similar savings levels
- Simple to understand and explain
- Perceived as fair (everyone equal)
- No disputes about calculations
- 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:- Groups with varying member savings levels
- When fairness means “more contribution = more reward”
- Incentivizing higher savings
- Larger organizations with diverse membership
- Rewards members who save more
- Incentivizes higher savings
- Mathematically proportional
- 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:- 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:| Status | Determination | Meaning | Actions Available |
|---|---|---|---|
| Draft | journalEntryId = null | Allocations calculated but not distributed | View, Edit, Delete, Distribute |
| Distributed | journalEntryId ≠ null | Funds distributed to members | View, Delete (reverses) |
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
- Members can view increased savings balance immediately
- Members can withdraw from savings if desired (separate operation)
- Or leave dividend in savings to continue earning
Accounting Treatment
When dividends are distributed, Agatabo creates a DIVIDEND_DISTRIBUTION journal entry: Journal Entry:- 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)
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
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)
- Each member has one SAVINGS ledger account
- Balance tracked through journal entries (deposits, withdrawals, dividends)
- Dividend credits increase savings balance automatically
Reserves
Many organizations set aside a dividend reserve before creating pools, ensuring funds are available for distribution. Best practice workflow:- Close accounting period and calculate net income
- Allocate portion of profit to reserves (emergency, loan loss, etc.)
- Allocate remaining amount to dividend reserve
- Create dividend pool using dividend reserve amount
- Distribute dividends
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
- Ensures profit calculations are finalized
- Prevents distributing profits before period close
- Maintains accounting integrity
Validation and Constraints
Input Validation
Period Label:- ✅ Must be non-empty string
- ✅ Descriptive name for the period
- ❌ Cannot be blank
- ✅ 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
- ✅ 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: ”
- Pool end date must be within closed accounting period
- Distribution date must be after last closed period
- Error if violated
- Validates sufficient retained earnings before distribution
- Can skip with
skipNegativeBalanceCheck: true(requires special permission)
- At least one active member must exist
- Error if no active members: “No active organizationUsers eligible for dividend distribution”
- 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
- 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
- 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)
- Notify members before distribution (explain allocation method)
- Allow time for members to verify calculations
- Communicate dividend distribution clearly
- Celebrate milestone dividends with members
- Create draft pools early (members can see projected allocations)
- Distribute within 30 days of period close
- Avoid delays (members expect timely distributions)
- 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
| Action | Permission | Scope |
|---|---|---|
| View dividend pools | dividends:read | ANY or SELF |
| Create dividend pool | dividends:write | ANY |
| Distribute pool | dividends:write | ANY |
| Delete pool | dividends:write | ANY |
| View member dividends | dividends:read | SELF or ANY |
| View analytics | dividends:read | ANY |
Typical roles:
- Administrators and Accountants have
dividends:write - Members have
dividends:readwith SELF scope (can view their own dividends only) - Board members may have
dividends:readwith ANY scope
Related Topics
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