Docs › Fundamentals › Scoring
Scoring
A score from 0 to 1000, with reasons.
What you get
POST /v1/score with entity_id (and consent_id in production) returns:
- A headline score from 0 to 1000. Higher is stronger on the data PACIN has seen.
- A risk band for sorting.
- A short narrative, and factor lines naming what helped or hurt.
json
{
"score_id": "scr_01JXXXXXXXXXXXXXXXXXXX",
"entity_id": "pac_KE_0001",
"score": 812,
"score_range": { "min": 0, "max": 1000 },
"risk_band": "very_low",
"narrative": "Income has been regular. There is a usable buffer.",
"environment": "sandbox"
}What it looks at
PACIN reads financial behaviour already on the record: how regularly money comes in, how stable flows are, whether there is a buffer, and repayment history when you have supplied it.
How those pieces are combined is PACIN’s model. It is not published here. Treat the score and the explanation as the contract.
Not enough data
If the history is too short or too sparse, PACIN does not estimate a number. The score and risk_band fields are returned as null, and the narrative explains what is missing.
json
{
"score_id": "scr_01JXXXXXXXXXXXXXXXXXX2",
"entity_id": "pac_KE_0002",
"score": null,
"risk_band": null,
"narrative": "Not enough transaction history to produce a reliable score."
}Explain
Use GET /v1/score/{score_id}/explain when you need the structured reasons for a score you already hold.
Last updated 14 September 2026
