Composite Scoring with Jev
Break a broad judgment into atomic scores and combine normalized results with explicit weights.
On this page
Decompose “is this a good lead?”Keep weights in codeWhy the components matterCalibrate to the outcomeCommon mistakesDecompose “is this a good lead?”
A single broad label hides the reason for a decision. Ask separate Scores for company fit, purchase intent, urgency, and technical match. Each rubric needs a consistent scale and clear level descriptions. Missing evidence should not silently become a neutral score.
Keep weights in code
weights = {"fit": 0.35, "intent": 0.30, "urgency": 0.15, "technical_match": 0.20}
def combine(answers, level_counts):
if any(a.confidence < 0.8 for a in answers.values()):
return {"route": "review"} # illustrative threshold
normalized = {k: answers[k].score / (level_counts[k] - 1) for k in weights}
total = sum(normalized[k] * weights[k] for k in weights)
return {"route": "rank", "score": total, "components": normalized}
The code assumes raw level indices start at zero, as in the direct HTTP API. Normalize each rubric by its maximum index before combining different lengths. A one-to-five business scale needs an explicit mapping rather than an accidental mix with zero-based values.
Why the components matter
A strong technical fit with weak purchase intent is operationally different from the inverse, even if the weighted total matches. Return the component values to sales or review rather than hiding them behind one total.
Calibrate to the outcome
Choose weights against labeled outcomes and business costs. These example weights are educational, not official recommendations. Hold out examples when tuning; otherwise the chosen policy may simply fit the labels you used to invent it.
Common mistakes
Do not ask the model to calculate the weighted sum. Do not treat Score as exact numeric regression. Do not combine correlated dimensions without considering double-counting. Monitor missing evidence and language differences; a low-confidence component can matter even when the final total looks stable.