Skip to main content

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.

Prefer using the web app?

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

warning

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

ParameterLocationRequiredDescription
customerIdpathYesUnique customer identifier
jobIdqueryNoFilter the risk calculation to a specific enrichment job

Example Request

curl -X GET "https://api.walkerstdata.com.au/v1/customer/{customerId}/risk" \
-H "x-api-key: YOUR_API_KEY"

Filtering by Job

curl -X GET "https://api.walkerstdata.com.au/v1/customer/{customerId}/risk?jobId={jobId}" \
-H "x-api-key: YOUR_API_KEY"

Response Fields

Score and Rating

FieldDescription
valueNumeric risk score. May be null if insufficient data is available
ratingNamed risk band derived from the score value
pdConfidenceScoreProbability of default confidence score
pdConfidenceRatingNamed confidence band for the PD score

Model Features

The features object contains the input signals used by the risk model:

FieldDescription
arbAverage running balance
averageSalesAverage sales or income amounts
dishonourCountNumber of dishonoured transactions in the assessment period
averageTaxPaymentAverage tax payment amounts
averageFinancialCountAverage count of financial transactions

Explainability

FieldDescription
shapleyValuesMap 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:

FieldDescription
startDateStart of the time series window
endDateEnd of the time series window
frequencyTime interval for each data point
valuesArray of risk values across the time window

Error Information

FieldDescription
errorCodesList of codes returned when the model cannot produce a score — for example, due to insufficient transaction volume

Interpreting Results for Credit

  • Treat value and rating as one signal in a broader decision framework — always combine with Completeness and Aggregations
  • Use shapleyValues to understand which features drove the score, supporting audit trails and decision explainability
  • A null value or populated errorCodes indicates the model did not have sufficient data — escalate these cases for manual assessment
  • Review pdConfidenceRating alongside rating — a low confidence score means the result should be weighted accordingly

Common Errors

StatusCause
400customerId is invalid or no transactions are found for the customer
403Missing 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