Overview
The Shares Report displays each member’s savings balance and their percentage ownership of total member savings, providing a clear view of equity distribution in the organization.Permission required:
reports:readThis report is generated from member SAVINGS ledger accounts and shows ownership distribution at a specific point in time.API Endpoint
Get shares report:| Parameter | Type | Required | Description |
|---|---|---|---|
asOfDate | string (ISO date) | No | Snapshot date for share calculation. Defaults to current date. |
Response Structure
| Field | Type | Description |
|---|---|---|
asOfDate | string (ISO datetime) | Report snapshot date |
totalShares | number | Total of all member savings balances |
rows | array | Individual member share records (sorted by amount descending) |
rows[].organizationUserId | string | Organization user ID |
rows[].name | string | Member name |
rows[].accountNumber | string | Savings account number |
rows[].amount | number | Member’s savings balance |
rows[].percentage | number | Ownership percentage (amount ÷ totalShares × 100) |
- Sorted by amount: Rows are ordered by savings balance, highest to lowest
- Positive balances only: Members with zero or negative balances are excluded
- Current balances: Calculated from all journal entries posted up to
asOfDate - SAVINGS accounts: Data comes from ledger accounts with role
SAVINGSand scopeorganizationUser:{id}
What is a Share?
In Agatabo’s tontine model: Share = Member’s total savings balance Share percentage = (Member’s savings ÷ Total all member savings) × 100 Example:- Dividend allocation (if distributed by contribution)
- Ownership stake in organization equity
- Proportional interest in organization assets
How It Works
The shares report:-
Finds all member SAVINGS accounts
- Query:
SELECT * FROM ledger_accounts WHERE role = 'SAVINGS' - Each member has one SAVINGS account (scope:
organizationUser:{id})
- Query:
-
Calculates balance up to asOfDate
- Sum all journal entry lines for each account
- SAVINGS is LIABILITY type: CREDIT increases balance, DEBIT decreases balance
- Formula:
balance += (side === 'CREDIT' ? amount : -amount) - Only includes POSTED journal entries up to and including
asOfDate
-
Filters positive balances
- Excludes accounts with zero or negative balances
- Only active members with savings are shown
-
Calculates percentages
- Sum all balances to get
totalShares - For each member:
percentage = (amount / totalShares) × 100 - Rounded to 2 decimal places
- Sum all balances to get
-
Sorts by amount
- Rows ordered by
amountdescending - Largest shareholders appear first
- Rows ordered by
Use Cases
Dividend Distribution Planning
Preview dividend allocation before distribution:- John Doe (12.00%): 60,000 RWF
- Jane Smith (10.00%): 50,000 RWF
- Peter Kalisa (8.00%): 40,000 RWF
Member Equity Tracking
Show members their ownership stake: At Annual General Meeting, present shares report to demonstrate:- Each member’s current savings balance
- Ownership percentage of total organization savings
- How ownership has changed over the year (compare to prior year report)
Financial Transparency
Answer “How much do I own?” questions: The shares report provides clear, auditable answers:- “You have 500,000 RWF in savings”
- “That represents 5.00% ownership”
- “If we distributed all savings today, you would receive 5% of the total”
Board Reporting
Present ownership structure at meetings: Use shares report to show:- Ownership concentration: Are savings distributed evenly or concentrated?
- Member engagement: How many members actively contribute?
- Growth trends: Compare total shares to prior periods
Understanding Share Changes
Shares increase when:- Member makes deposits
- Interest credited to savings (if applicable)
- Dividends added to savings
- Member makes withdrawals (if allowed by organization rules)
- Fees deducted from savings
Comparing Periods
Track ownership changes over time:- Change in individual member balances
- Change in share percentages
- Total shares (organization growth)
- New members added
- Members who withdrew or left (no longer in report)
| Member | May Balance | May % | June Balance | June % | Change |
|---|---|---|---|---|---|
| John Doe | 1,100,000 | 11.00% | 1,200,000 | 12.00% | +1.00% |
| Jane Smith | 1,000,000 | 10.00% | 1,000,000 | 10.00% | 0.00% |
| Peter Kalisa | 750,000 | 7.50% | 800,000 | 8.00% | +0.50% |
- John Doe increased savings and ownership percentage (deposited 100,000 RWF)
- Jane Smith’s balance and percentage unchanged (no activity)
- Peter Kalisa increased savings and ownership percentage (deposited 50,000 RWF)
Key Metrics
Calculate from shares report data: Average share per member:Relationship to Other Reports
Balance Sheet:- Total shares = “Member Savings” liability on Balance Sheet
- Shares report breaks down this total by individual member
- When distributing dividends “by contribution”, shares report shows the basis
- Each member receives: (Total dividend × member’s percentage)
Data Source
Shares report is generated from: SAVINGS ledger accounts:Best Practices
Generating shares reports:Timing:
- ✅ Generate after period close for accurate historical snapshots
- ✅ Run before dividend distribution to calculate allocations
- ✅ Review quarterly to track ownership trends
- ✅ Present at Annual General Meetings for transparency
- ✅ Ensure all deposits and withdrawals are posted before generating report
- ✅ Verify
totalSharesmatches “Member Savings” on Balance Sheet - ✅ Spot-check member balances against individual statements
- ✅ Investigate any unexpected percentage changes
- ✅ Compare to prior period to identify trends
- ✅ Calculate average share to understand typical member savings
- ✅ Monitor ownership concentration for equity distribution
- ✅ Track member participation rate (active savers ÷ total members)
- ✅ Share report with members at quarterly meetings
- ✅ Explain how percentages are calculated
- ✅ Show relationship to dividend distribution
- ✅ Address questions about share changes openly
Common Questions
Q: Why do shares not match total contributions? A: Shares = current balance, not total contributions. Balance may differ due to:- Withdrawals made (reduces balance)
- Interest credited to savings (increases balance)
- Dividends added to savings (increases balance)
- Fees deducted (reduces balance)
- One member, one vote: Share percentage irrelevant for voting
- Weighted voting: Votes proportional to ownership percentage
- New member who hasn’t deposited yet
- Member withdrew all savings
- Data entry error (check member statements)
- Users with
reports:readpermission can view all members’ shares - Typically: Administrators, Accountants, Treasurers, Board Members
- Regular members: May only see their own balance (via member statements)
Example: Quarterly Analysis
Scenario: Compare Q1 and Q2 shares to identify trends API calls:| Metric | Q1 (Mar 31) | Q2 (Jun 30) | Change |
|---|---|---|---|
| Total Shares | 9,500,000 | 10,000,000 | +5.26% |
| Number of Members | 24 | 25 | +1 member |
| Average Share | 395,833 | 400,000 | +1.05% |
| Largest Share | 1,150,000 (12.11%) | 1,200,000 (12.00%) | +50,000 |
- Organization grew by 500,000 RWF in savings (healthy growth)
- One new member joined
- Average share per member increased (existing members saving more)
- Largest shareholder increased balance but percentage slightly decreased (good - less concentration)
Related Topics
Dividends
Distribute profits by ownership percentage
Deposits & Savings
Track member savings contributions
Balance Sheet
Total shares = Member Savings liability
Member Statements
Individual account activity and balances