Skip to main content
Every member in Save App has a credit score — a single number between 300 and 850 that reflects how reliably they contribute, repay loans, and complete cycles. New members start at 500. The score rises when members honor their commitments and falls when they miss payments or default on loans. At the moment a new cycle starts, the payout queue is built by sorting all members from highest score to lowest, so members who have consistently paid on time receive their payout earlier in the round.

Score Range and Starting Point

These boundaries and the starting value are configurable by admins via PUT /api/config (min_credit_score, max_credit_score, starting_credit_score). Scores are clamped to the configured range — they can never go below the minimum or above the maximum.

How the Score is Calculated

The score is computed from the starting value by applying a weight for each recorded event in the member’s history:
This formula is evaluated and re-run every time a relevant event is recorded for a member.

Score Impact Events

Consistently repaying loans on time is the fastest way to improve your score. A single on-time loan repayment (+15) outweighs three on-time contribution payments (+15 total) in one event.
A loan default costs −50 points — the largest single negative event. At the default starting score of 500, two defaults would put a member at 400, placing them near the bottom of every payout queue until they rebuild their history.

Reliability Labels

The app also maps numeric scores to a human-readable reliability label used in the member dashboard: Members with a score below 60 are also ineligible for loans.

API Endpoints

View your own credit score

GET /api/credit-scores/me — Any authenticated member Returns the full credit score record for the currently logged-in user.

View all member rankings

GET /api/credit-scores/rankingsAdmin only Returns all active members sorted from highest score to lowest, along with their numeric rank. This is the same ordering used to build the payout queue when a new cycle starts.

View a specific member’s credit score

GET /api/credit-scores/{member_id}Admin only Returns the full credit score record for any member by their ID. Useful for investigating a specific member’s history before approving a loan.

CreditScoreResponse Fields

Configuring Score Weights

Admins can adjust any weight via PUT /api/config. All weight fields are optional — only the fields you include are changed.
Weight changes take effect on the next score recalculation event. Existing scores are not retroactively adjusted until a new payment, loan event, or cycle completion is recorded for a member.