File size: 707 Bytes
6f63a9a
4776e50
4f47b69
579b95c
6f63a9a
 
 
 
 
4f47b69
6f63a9a
 
4776e50
6f63a9a
 
21c0a92
6f63a9a
 
 
 
579b95c
6f63a9a
 
579b95c
 
6f63a9a
 
579b95c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
from datetime import datetime
import random

def score_opportunity(data):
    score = (
        data["lead_score"] * 0.5 +
        data["emails_last_7_days"] * 3 +
        data["meetings_last_30_days"] * 5
    )

    try:
        close_date = datetime.strptime(data["close_date"], "%Y-%m-%d")
        days_to_close = (close_date - datetime.today()).days
    except:
        days_to_close = 30

    if days_to_close > 30:
        score -= 10
    elif days_to_close < 5:
        score += 5

    score = max(0, min(100, round(score)))
    confidence = round(random.uniform(0.7, 0.95) if score >= 60 else random.uniform(0.4, 0.7), 2)

    return {
        "score": score,
        "confidence": confidence
    }