Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion src/lib/lightweightRiskModel.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,11 @@ const NORMALIZATION = {
* @returns {Object} Risk analysis result
*/
export function calculateRiskScore(metrics) {
if (!metrics || typeof metrics !== 'object') {
console.error('calculateRiskScore: metrics must be a non-null object');
return fallbackRiskCalculation({});
}

try {
// Normalize features to 0-1 range
const normalizedFeatures = normalizeFeatures(metrics);
Expand Down Expand Up @@ -295,7 +300,11 @@ export function getDataQualityScore(metrics) {
if (metrics.totalPayments > 10) qualityScore += 25;
if (metrics.uniqueCounterparties > 3) qualityScore += 25;
if (metrics.assetDiversity > 1) qualityScore += 25;
if (metrics.totalPayments > 0) qualityScore += 25;
// Award the final 25 points only when there is BOTH payment activity
// AND counterparty diversity — the original code checked totalPayments > 0
// which is always true when totalPayments > 10 is already satisfied,
// making it impossible to ever score less than 50 via this path.
if (metrics.totalPayments > 0 && metrics.uniqueCounterparties > 0) qualityScore += 25;

return {
score: qualityScore,
Expand Down