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 }