j.jevmanual.
ExampleChecked 2026-09-21·jev-1.13.0

Composite Scoring with Jev

Break a broad judgment into atomic scores and combine normalized results with explicit weights.

On this pageDecompose “is this a good lead?”Keep weights in codeWhy the components matterCalibrate to the outcomeCommon mistakes

Decompose “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.

Search the manual