Risk Score
Risk Score provides a risk signal derived from customer transaction and account data. It is designed to support underwriting decisions by offering a consistent, explainable assessment of a customer’s probability of default over time.
When you submit transaction data in the Walker Street Data sandbox application, and your API key has the customer:riskscore scope, a risk score is automatically calculated. This guide details the equivalent workflow using the API.
Prerequisites
- Valid
customerId— see Create a Customer - Enriched transactions available for that customer — see Extract Bank Statement Transactions or Classify Transactions
- API scope:
customer:riskscore
Check Completeness before requesting Risk Score. Insufficient or gappy transaction data can reduce model accuracy and lower confidence in the output.
Endpoint
GET https://api.walkerstdata.com.au/v1/customer/{customerId}/risk
Request Parameters
| Parameter | Location | Required | Description |
|---|---|---|---|
customerId | path | Yes | Unique customer identifier |
jobId | query | No | Filter the risk calculation to a specific enrichment job |
Example Request
- cURL
- JavaScript
curl -X GET "https://api.walkerstdata.com.au/v1/customer/{customerId}/risk" \
-H "x-api-key: YOUR_API_KEY"
const customerId = 'your-customer-id';
const response = await fetch(
`https://api.walkerstdata.com.au/v1/customer/${customerId}/risk`,
{
method: 'GET',
headers: { 'x-api-key': 'YOUR_API_KEY' },
}
);
const result = await response.json();
console.log(result.data.value, result.data.rating);
Filtering by Job
- cURL
- JavaScript
curl -X GET "https://api.walkerstdata.com.au/v1/customer/{customerId}/risk?jobId={jobId}" \
-H "x-api-key: YOUR_API_KEY"
const customerId = 'your-customer-id';
const jobId = 'your-job-id';
const response = await fetch(
`https://api.walkerstdata.com.au/v1/customer/${customerId}/risk?jobId=${jobId}`,
{
method: 'GET',
headers: { 'x-api-key': 'YOUR_API_KEY' },
}
);
const result = await response.json();
console.log(result.data.value, result.data.rating);
Response Fields
Score and Rating
| Field | Description |
|---|---|
value | Numeric risk score. May be null if insufficient data is available |
rating | Named risk band derived from the score value |
pdConfidenceScore | Probability of default confidence score |
pdConfidenceRating | Named confidence band for the PD score |
Model Features
The features object contains the input signals used by the risk model:
| Field | Description |
|---|---|
arb | Average running balance |
averageSales | Average sales or income amounts |
dishonourCount | Number of dishonoured transactions in the assessment period |
averageTaxPayment | Average tax payment amounts |
averageFinancialCount | Average count of financial transactions |
Explainability
| Field | Description |
|---|---|
shapleyValues | Map of feature names to their model contribution values. Use these to explain the key drivers of the risk score |
Time Series
The timeSeries object provides a temporal breakdown of the risk signal:
| Field | Description |
|---|---|
startDate | Start of the time series window |
endDate | End of the time series window |
frequency | Time interval for each data point |
values | Array of risk values across the time window |
Error Information
| Field | Description |
|---|---|
errorCodes | List of codes returned when the model cannot produce a score — for example, due to insufficient transaction volume |
Interpreting Results for Credit
- Treat
valueandratingas one signal in a broader decision framework — always combine with Completeness and Aggregations - Use
shapleyValuesto understand which features drove the score, supporting audit trails and decision explainability - A null
valueor populatederrorCodesindicates the model did not have sufficient data — escalate these cases for manual assessment - Review
pdConfidenceRatingalongsiderating— a low confidence score means the result should be weighted accordingly
Common Errors
| Status | Cause |
|---|---|
400 | customerId is invalid or no transactions are found for the customer |
403 | Missing API scope customer:riskscore |
Next Steps
- Aggregations — Complement risk assessment with cashflow and affordability analysis
- Completeness — Review data coverage if the score is null or confidence is low
- API Reference — Full endpoint schema and parameter details