Report each engagement as it lands. Read back a score whose every movement has a stated cause.
Vendor performance lives in spreadsheets, inboxes and the memory of whoever managed the last contract. When they leave, the signal leaves with them.
Procurement decisions therefore get made on the most recent anecdote rather than on the record.
And when a number does exist, nobody can say what moved it, so nobody trusts it enough to act on.
$ curl -X POST https://api.credda.io/api/v1/events \
-H "Authorization: Bearer $CREDDA_API_KEY" \
-H "Idempotency-Key: po-2210-delivered" \
-H "Content-Type: application/json" \
-d '{"userId":"vendor_17","eventType":"CONTRACT_FULFILLED",
"stakeLevel":"HIGH","isVerified":true,"transactionValue":12000}'
$ curl https://api.credda.io/api/v1/users/vendor_17/score/delta \
-H "Authorization: Bearer $CREDDA_API_KEY"
{ "scoreDelta": 1.8, "direction": "up",
"topDriver": { "factor": "OTR", "improved": true } }Full request and response shapes are in the API reference.