Fix product performance grouped JSON build

This commit is contained in:
M_Kececi
2026-07-06 18:01:34 +03:00
parent 1448dab9d7
commit 289f204752
3 changed files with 72 additions and 6 deletions
+28 -2
View File
@@ -6282,8 +6282,8 @@ func productPerformanceProductScore(suffix string, salesUSD, salesIndex, margin,
score := 0.30*productPerformanceMarginComponentScore(margin) +
0.20*productPerformanceRatioScore(stockTurnover, productPerformanceStockTurnoverTarget(suffix)) +
0.20*revenueScore +
0.15*productPerformanceRatioScore(marketCount, 8) +
0.15*productPerformanceRatioScore(customerCount, 25)
0.15*productPerformanceRatioScore(marketCount, productPerformanceMarketSpreadTarget(suffix)) +
0.15*productPerformanceRatioScore(customerCount, productPerformanceCustomerSpreadTarget(suffix))
return productPerformanceRoundScore(score)
}
@@ -6291,6 +6291,32 @@ func productPerformanceStockTurnoverTarget(suffix string) float64 {
return 4
}
func productPerformanceMarketSpreadTarget(suffix string) float64 {
switch suffix {
case "90d":
return 3
case "180d":
return 5
case "365d":
return 6
default:
return 8
}
}
func productPerformanceCustomerSpreadTarget(suffix string) float64 {
switch suffix {
case "90d":
return 8
case "180d":
return 15
case "365d":
return 18
default:
return 25
}
}
func productPerformanceCustomerScore(suffix string, salesUSD, margin, productGroupCount, salesQty float64) float64 {
if salesUSD <= 0 {
return 1
+28 -2
View File
@@ -962,11 +962,37 @@ func productPerformanceExcelProductScore(suffix string, salesUSD, stockTurnover,
score := 0.30*productPerformanceExcelMarginScore(margin) +
0.20*productPerformanceExcelRatioScore(stockTurnover, 4) +
0.20*revenueScore +
0.15*productPerformanceExcelRatioScore(marketCount, 8) +
0.15*productPerformanceExcelRatioScore(customerCount, 25)
0.15*productPerformanceExcelRatioScore(marketCount, productPerformanceExcelMarketSpreadTarget(suffix)) +
0.15*productPerformanceExcelRatioScore(customerCount, productPerformanceExcelCustomerSpreadTarget(suffix))
return productPerformanceExcelRoundScore(score)
}
func productPerformanceExcelMarketSpreadTarget(suffix string) float64 {
switch suffix {
case "90d":
return 3
case "180d":
return 5
case "365d":
return 6
default:
return 8
}
}
func productPerformanceExcelCustomerSpreadTarget(suffix string) float64 {
switch suffix {
case "90d":
return 8
case "180d":
return 15
case "365d":
return 18
default:
return 25
}
}
func productPerformanceExcelProductRevenueTarget(suffix string) float64 {
switch suffix {
case "180d":