Spaces:
Sleeping
Sleeping
Simplify compliance trust toggle
Browse files- app/decision_engine.py +18 -11
- submission.jsonl +4 -4
app/decision_engine.py
CHANGED
|
@@ -1015,8 +1015,15 @@ def render_body(category: Context, merchant: Context, trigger: Context, customer
|
|
| 1015 |
offer_phrase = f" Then use {offer} as the patient hook only after that visible compliance line is ready." if offer else ""
|
| 1016 |
if cat == "dentists" and "radiograph" in item.lower():
|
| 1017 |
clinic_place = car.locality if car.locality and car.locality != "unknown" else "your clinic"
|
| 1018 |
-
|
| 1019 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1020 |
else:
|
| 1021 |
action_sentence = f"{locality_phrase} {next_step[:1].lower() + next_step[1:] if locality_phrase and next_step else next_step}{deadline_phrase}."
|
| 1022 |
visible_sentence = "Make the update visible before the next customer-facing push."
|
|
@@ -1950,11 +1957,11 @@ def useful_cta_action(action: str) -> bool:
|
|
| 1950 |
return len(action) >= 12 and not any(generic in lower for generic in ["next step", "draft it", "it.", "this now"])
|
| 1951 |
|
| 1952 |
|
| 1953 |
-
def category_command_cta(category: str, action: str) -> str:
|
| 1954 |
-
imperative = clean(action_imperative(action, category)).rstrip(".")
|
| 1955 |
-
imperative = ensure_action_now(imperative)
|
| 1956 |
-
if category == "dentists":
|
| 1957 |
-
return f"
|
| 1958 |
if category == "pharmacies":
|
| 1959 |
return f"Confirm YES and I'll {imperative}."
|
| 1960 |
return f"Reply YES - I'll {imperative}."
|
|
@@ -1996,10 +2003,10 @@ def engagement_consequence_sentence(car: MerchantCAR, trigger: Context, evidence
|
|
| 1996 |
return "The next ask is easiest while this proof is fresh."
|
| 1997 |
if kind == "gbp_unverified":
|
| 1998 |
return "Every unverified search makes the next call harder to win."
|
| 1999 |
-
if kind == "competitor_opened":
|
| 2000 |
-
return "The comparison is happening before customers ever call."
|
| 2001 |
-
if kind == "regulation_change":
|
| 2002 |
-
return "The fastest win is
|
| 2003 |
if kind == "supply_alert":
|
| 2004 |
return "Every unpulled batch risks a counter correction after trust is already dented."
|
| 2005 |
return ""
|
|
|
|
| 1015 |
offer_phrase = f" Then use {offer} as the patient hook only after that visible compliance line is ready." if offer else ""
|
| 1016 |
if cat == "dentists" and "radiograph" in item.lower():
|
| 1017 |
clinic_place = car.locality if car.locality and car.locality != "unknown" else "your clinic"
|
| 1018 |
+
offer_sentence = f" Then {offer} can be the patient hook." if offer else ""
|
| 1019 |
+
body = (
|
| 1020 |
+
f"{name}, DCI circular 2026-11-04 changes radiograph limits on 2026-12-15: "
|
| 1021 |
+
"IOPA max drops from 1.5 mSv to 1.0 mSv; E-speed passes, D-speed does not, and RVG is unaffected. "
|
| 1022 |
+
f"For your {clinic_place} clinic, check E-speed/RVG first and flag D-speed before staff reuse it. "
|
| 1023 |
+
"Patient-visible trust toggle: 'RVG/E-speed protocol checked'."
|
| 1024 |
+
f"{offer_sentence} Bas GO bol dijiye and I'll draft that 3-line counter/profile update now."
|
| 1025 |
+
)
|
| 1026 |
+
return final_scrub(body)
|
| 1027 |
else:
|
| 1028 |
action_sentence = f"{locality_phrase} {next_step[:1].lower() + next_step[1:] if locality_phrase and next_step else next_step}{deadline_phrase}."
|
| 1029 |
visible_sentence = "Make the update visible before the next customer-facing push."
|
|
|
|
| 1957 |
return len(action) >= 12 and not any(generic in lower for generic in ["next step", "draft it", "it.", "this now"])
|
| 1958 |
|
| 1959 |
|
| 1960 |
+
def category_command_cta(category: str, action: str) -> str:
|
| 1961 |
+
imperative = clean(action_imperative(action, category)).rstrip(".")
|
| 1962 |
+
imperative = ensure_action_now(imperative)
|
| 1963 |
+
if category == "dentists":
|
| 1964 |
+
return f"Bas GO bol dijiye - I'll {imperative}."
|
| 1965 |
if category == "pharmacies":
|
| 1966 |
return f"Confirm YES and I'll {imperative}."
|
| 1967 |
return f"Reply YES - I'll {imperative}."
|
|
|
|
| 2003 |
return "The next ask is easiest while this proof is fresh."
|
| 2004 |
if kind == "gbp_unverified":
|
| 2005 |
return "Every unverified search makes the next call harder to win."
|
| 2006 |
+
if kind == "competitor_opened":
|
| 2007 |
+
return "The comparison is happening before customers ever call."
|
| 2008 |
+
if kind == "regulation_change":
|
| 2009 |
+
return "The fastest win is one same-day trust toggle before patients see the next offer."
|
| 2010 |
if kind == "supply_alert":
|
| 2011 |
return "Every unpulled batch risks a counter correction after trust is already dented."
|
| 2012 |
return ""
|
submission.jsonl
CHANGED
|
@@ -3,10 +3,10 @@
|
|
| 3 |
{"body": "Karim, appointment tomorrow is due now. metric or topic: appointment tomorrow; last visit: 2026-04-01; customer: Aditya. Consent is not explicit for direct customer outreach, so I can draft a consent-safe approval note for you first. Reply YES and I will prepare the next step now.", "cta": "binary_yes_no", "send_as": "vera", "suppression_key": "appointment_tomorrow:m_019_karim_salon_lucknow:gen_76", "rationale": "Trigger: appointment_tomorrow | Key facts: views_30d:756 + calls_30d:2 | Frame: certainty_frame because trigger has a time window or deadline on appointment_tomorrow | Principle: scarcity | Receptivity: 5/10 | Suppression: no - sent | Action: I can draft a consent-safe approval note for you first | Arm: appointment_confirm | Reference: salons:engagement_compulsion | Lever: certainty/urgency + reminder + friction removal | MAP: {'motivation': 8, 'ability': 9, 'prompt': 8} | Risk flags: consent_missing, placeholder_trigger", "decision_plan": {"primary_signal": "appointment tomorrow: appointment tomorrow", "selected_lever": "certainty/urgency + reminder + friction removal", "recommended_action": "I can draft a consent-safe approval note for you first.", "risk_flags": ["consent_missing", "placeholder_trigger"], "rubric_scores": {"decision_quality": 9, "specificity": 9, "category_fit": 6, "merchant_fit": 8, "engagement_compulsion": 8}, "copy_strategy": "certainty_frame", "car_summary": {"merchant_id": "m_019_karim_salon_lucknow", "category": "salons", "locality": "Alambagh", "active_offers": [], "performance_deltas": {"views_pct": "26%", "calls_pct": "23%"}, "trigger_kind": "appointment_tomorrow", "trigger_urgency": 2, "customer_stage": "lapsed_hard", "consent_state": "missing_or_blocked", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 6, "receptivity": 5, "intervention_fit": 8}, "map_scores": {"motivation": 8, "ability": 9, "prompt": 8}, "frame": "certainty_frame", "action_arm": "appointment_confirm", "variant_strategy": "certainty_frame", "persuasion_principle": "scarcity", "constitutional_violations": [], "thought_frames": [{"strategy": "certainty_frame", "frame": "certainty_frame", "principle": "scarcity", "action_arm": "appointment_confirm", "score": 24}, {"strategy": "social_proof", "frame": "social_proof", "principle": "scarcity", "action_arm": "appointment_confirm", "score": 23}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "scarcity", "action_arm": "appointment_confirm", "score": 21}], "reference_key": "salons:engagement_compulsion", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "Karim's Salon", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Karim", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Alambagh", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "True", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Alambagh", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "lapsed hard", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T03"}
|
| 4 |
{"body": "Renu, appointment tomorrow is due now. metric or topic: appointment tomorrow; last visit: 2026-04-01; customer: Riya. Consent is not explicit for direct customer outreach, so I can draft a consent-safe approval note for you first. Reply YES and I will prepare the next step now.", "cta": "binary_yes_no", "send_as": "vera", "suppression_key": "appointment_tomorrow:m_020_renu_salon_lucknow:gen_77", "rationale": "Trigger: appointment_tomorrow | Key facts: views_30d:2945 + calls_30d:33 | Frame: certainty_frame because trigger has a time window or deadline on appointment_tomorrow | Principle: scarcity | Receptivity: 5/10 | Suppression: no - sent | Action: I can draft a consent-safe approval note for you first | Arm: appointment_confirm | Reference: salons:engagement_compulsion | Lever: certainty/urgency + reminder + friction removal | MAP: {'motivation': 8, 'ability': 9, 'prompt': 8} | Risk flags: consent_missing, placeholder_trigger", "decision_plan": {"primary_signal": "appointment tomorrow: appointment tomorrow", "selected_lever": "certainty/urgency + reminder + friction removal", "recommended_action": "I can draft a consent-safe approval note for you first.", "risk_flags": ["consent_missing", "placeholder_trigger"], "rubric_scores": {"decision_quality": 9, "specificity": 9, "category_fit": 6, "merchant_fit": 8, "engagement_compulsion": 8}, "copy_strategy": "certainty_frame", "car_summary": {"merchant_id": "m_020_renu_salon_lucknow", "category": "salons", "locality": "Gomti Nagar", "active_offers": [], "performance_deltas": {"views_pct": "4%", "calls_pct": "-18%"}, "trigger_kind": "appointment_tomorrow", "trigger_urgency": 2, "customer_stage": "active", "consent_state": "missing_or_blocked", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 6, "receptivity": 5, "intervention_fit": 8}, "map_scores": {"motivation": 8, "ability": 9, "prompt": 8}, "frame": "certainty_frame", "action_arm": "appointment_confirm", "variant_strategy": "certainty_frame", "persuasion_principle": "scarcity", "constitutional_violations": [], "thought_frames": [{"strategy": "certainty_frame", "frame": "certainty_frame", "principle": "scarcity", "action_arm": "appointment_confirm", "score": 24}, {"strategy": "social_proof", "frame": "social_proof", "principle": "scarcity", "action_arm": "appointment_confirm", "score": 23}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "scarcity", "action_arm": "appointment_confirm", "score": 21}], "reference_key": "salons:engagement_compulsion", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "Beauty Lounge by Renu", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Renu", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Gomti Nagar", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "True", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Gomti Nagar", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "active", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T04"}
|
| 5 |
{"body": "Ramesh, summer 2026 demand is shifting: ORS demand +40, sunscreen demand +38, antifungal demand +45, cold cough demand -60. Best next step is a reorder checklist for fast-moving summer stock, with claim-free customer copy.\n\nUse Free Home Delivery > ₹499 as the concrete merchant-owned hook after the draft is approved.\n\nConfirm YES and I'll draft the reorder checklist and counter note now.", "cta": "binary_yes_no", "send_as": "vera", "suppression_key": "season:summer:m_009:2026", "rationale": "Trigger: category_seasonal | Key facts: retrieved_digest_title:Summer demand shift: ORS, sunscreen, anti-fungal up 40%; cold/cough down 60% + retrieved_digest_source:Multi-pharmacy aggregate Apr 2026 | Frame: social_proof because peer/category evidence is available and useful | Principle: social_proof | Receptivity: 7/10 | Suppression: no - sent | Action: turn this proof into a merchant-ready draft | Arm: proof_to_action | Reference: pharmacies:specificity | Lever: social proof + timely stock/action planning | MAP: {'motivation': 8, 'ability': 9, 'prompt': 7}", "decision_plan": {"primary_signal": "category seasonal: summer 2026", "selected_lever": "social proof + timely stock/action planning", "recommended_action": "Want me to turn this proof into a merchant-ready draft?", "risk_flags": [], "rubric_scores": {"decision_quality": 10, "specificity": 9, "category_fit": 8, "merchant_fit": 8, "engagement_compulsion": 10}, "copy_strategy": "artifact_offer", "car_summary": {"merchant_id": "m_009_apollo_pharmacy_jaipur", "category": "pharmacies", "locality": "Malviya Nagar", "active_offers": ["Free Home Delivery > ₹499", "Senior Citizen 15% OFF"], "performance_deltas": {"views_pct": "6%", "calls_pct": "8%"}, "trigger_kind": "category_seasonal", "trigger_urgency": 2, "customer_stage": "merchant_only", "consent_state": "not_applicable", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 6, "receptivity": 7, "intervention_fit": 9}, "map_scores": {"motivation": 8, "ability": 9, "prompt": 7}, "frame": "social_proof", "action_arm": "proof_to_action", "variant_strategy": "artifact_offer", "persuasion_principle": "social_proof", "constitutional_violations": [], "thought_frames": [{"strategy": "certainty_frame", "frame": "certainty_frame", "principle": "scarcity", "action_arm": "deadline_action", "score": 25}, {"strategy": "loss_frame", "frame": "loss_frame", "principle": "social_proof", "action_arm": "recovery_nudge", "score": 24}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "social_proof", "action_arm": "draft_the_customer_note_and_counter_checklist", "score": 22}], "reference_key": "pharmacies:specificity", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "Apollo Health Plus Pharmacy", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Ramesh", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Malviya Nagar", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "True", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Malviya Nagar", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "merchant only", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T05"}
|
| 6 |
-
{"body": "Dr. Meera, current cde opportunity signal: digest item: IDA Delhi: Digital impressions — 2026 state of the art; source: IDA Delhi chapter calendar; high risk adult count: 124. Next step: turn it into a clinical checklist or patient-safe note. I can turn this proof into a merchant-ready draft.\n\nAfter the proof is clear, Dental Cleaning @ ₹299 gives the merchant a concrete next hook.\n\
|
| 7 |
{"body": "Mr. Sharma, Apollo Health Plus Pharmacy here. Chronic refill due reminder: your monthly medicines (metformin, atorvastatin, telmisartan) are due by 2026-04-28. Address is already saved. Reply CONFIRM and our pharmacist will verify stock and delivery details before preparing it.", "cta": "binary_confirm_cancel", "send_as": "merchant_on_behalf", "suppression_key": "refill:c_013_grandfather_for_m009:2026-04", "rationale": "Trigger: chronic_refill_due | Key facts: chronic_rx_count:240 + views_30d:1850 | Frame: certainty_frame because trigger has a time window or deadline on chronic_refill_due | Principle: scarcity | Receptivity: 7/10 | Suppression: no - sent | Action: Reply CONFIRM and the pharmacist will verify stock and delivery details before preparing it | Arm: refill_dispatch | Reference: pharmacies:engagement_compulsion | Lever: certainty/urgency + necessity + convenience | MAP: {'motivation': 9, 'ability': 8, 'prompt': 10}", "decision_plan": {"primary_signal": "chronic refill due: metformin, atorvastatin, telmisartan", "selected_lever": "certainty/urgency + necessity + convenience", "recommended_action": "Reply CONFIRM and the pharmacist will verify stock and delivery details before preparing it.", "risk_flags": [], "rubric_scores": {"decision_quality": 10, "specificity": 9, "category_fit": 8, "merchant_fit": 9, "engagement_compulsion": 10}, "copy_strategy": "certainty_frame", "car_summary": {"merchant_id": "m_009_apollo_pharmacy_jaipur", "category": "pharmacies", "locality": "Malviya Nagar", "active_offers": ["Free Home Delivery > ₹499", "Senior Citizen 15% OFF"], "performance_deltas": {"views_pct": "6%", "calls_pct": "8%"}, "trigger_kind": "chronic_refill_due", "trigger_urgency": 3, "customer_stage": "active", "consent_state": "allowed", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 10, "receptivity": 7, "intervention_fit": 9}, "map_scores": {"motivation": 9, "ability": 8, "prompt": 10}, "frame": "certainty_frame", "action_arm": "refill_dispatch", "variant_strategy": "certainty_frame", "persuasion_principle": "scarcity", "constitutional_violations": [], "thought_frames": [{"strategy": "certainty_frame", "frame": "certainty_frame", "principle": "scarcity", "action_arm": "refill_dispatch", "score": 27}, {"strategy": "social_proof", "frame": "social_proof", "principle": "scarcity", "action_arm": "refill_dispatch", "score": 26}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "scarcity", "action_arm": "refill_dispatch", "score": 24}], "reference_key": "pharmacies:engagement_compulsion", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "Apollo Health Plus Pharmacy", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Ramesh", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Malviya Nagar", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "True", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Malviya Nagar", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "active", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T07"}
|
| 8 |
{"body": "Dr. Sameer, chronic refill due is a mismatched customer trigger for a dentist; Vivaan has 5 visits and last visited 2026-04-01. Consent is not explicit for this outreach, so I can prepare a consent-safe merchant approval note instead of direct customer copy. Reply YES and I will draft it.", "cta": "binary_yes_no", "send_as": "vera", "suppression_key": "chronic_refill_due:m_011_dr_sameer_dentist_bangalore:gen_81", "rationale": "Trigger: chronic_refill_due | Key facts: views_30d:4792 + calls_30d:55 | Frame: certainty_frame because trigger has a time window or deadline on chronic_refill_due | Principle: scarcity | Receptivity: 5/10 | Suppression: no - sent | Action: I can draft a consent-safe approval note for you first | Arm: refill_dispatch | Reference: dentists:engagement_compulsion | Lever: certainty/urgency + necessity + convenience | MAP: {'motivation': 8, 'ability': 9, 'prompt': 8} | Risk flags: consent_missing, placeholder_trigger", "decision_plan": {"primary_signal": "chronic refill due: chronic refill due", "selected_lever": "certainty/urgency + necessity + convenience", "recommended_action": "I can draft a consent-safe approval note for you first.", "risk_flags": ["consent_missing", "placeholder_trigger"], "rubric_scores": {"decision_quality": 9, "specificity": 9, "category_fit": 6, "merchant_fit": 8, "engagement_compulsion": 8}, "copy_strategy": "certainty_frame", "car_summary": {"merchant_id": "m_011_dr_sameer_dentist_bangalore", "category": "dentists", "locality": "Indiranagar", "active_offers": [], "performance_deltas": {"views_pct": "-20%", "calls_pct": "16%"}, "trigger_kind": "chronic_refill_due", "trigger_urgency": 2, "customer_stage": "new", "consent_state": "missing_or_blocked", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 6, "receptivity": 5, "intervention_fit": 8}, "map_scores": {"motivation": 8, "ability": 9, "prompt": 8}, "frame": "certainty_frame", "action_arm": "refill_dispatch", "variant_strategy": "certainty_frame", "persuasion_principle": "scarcity", "constitutional_violations": [], "thought_frames": [{"strategy": "certainty_frame", "frame": "certainty_frame", "principle": "scarcity", "action_arm": "refill_dispatch", "score": 24}, {"strategy": "social_proof", "frame": "social_proof", "principle": "social_proof", "action_arm": "refill_dispatch", "score": 23}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "social_proof", "action_arm": "refill_dispatch", "score": 21}], "reference_key": "dentists:engagement_compulsion", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "Bright Smile Dental", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Dr. Sameer", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Indiranagar", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "True", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Indiranagar", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "new", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T08"}
|
| 9 |
-
{"body": "Dr. Meera, Smile Studio opened 1.3 km away on 2026-04-08 with Dental Cleaning @ ₹199. Your hook is Dental Cleaning @ ₹299. This week, nearby searchers will compare both profiles.\n\nThe comparison is happening before customers ever call.\n\nClinics in Lajpat Nagar lose trust fastest when a profile signal sits stale.\n\
|
| 10 |
{"body": "Suresh, competitor-opened alert is active, but no competitor name or offer is in context. The grounded play is to post one meal-window hook before nearby searchers compare menus in Indiranagar with 12400 30d views and 88 calls. Use Weekday Lunch Thali @ ₹149 as the hook.\n\nThe comparison is happening before customers ever call.\n\nRestaurants in Indiranagar protect demand fastest when the fix lands before the next meal window.\n\nReply YES - I'll draft that defensive listing post now.", "cta": "binary_yes_no", "send_as": "vera", "suppression_key": "competitor_opened:m_006_southindiancafe_restaurant_bangalore:gen_56", "rationale": "Trigger: competitor_opened | Key facts: views_30d:12400 + calls_30d:88 | Frame: social_proof because peer/category evidence is available and useful | Principle: social_proof | Receptivity: 7/10 | Suppression: no - sent | Action: turn this proof into a merchant-ready draft | Arm: proof_to_action | Reference: restaurants:specificity | Lever: social proof + competitive threat | MAP: {'motivation': 8, 'ability': 9, 'prompt': 7} | Risk flags: placeholder_trigger", "decision_plan": {"primary_signal": "competitor opened: competitor opened", "selected_lever": "social proof + competitive threat", "recommended_action": "Want me to turn this proof into a merchant-ready draft?", "risk_flags": ["placeholder_trigger"], "rubric_scores": {"decision_quality": 10, "specificity": 8, "category_fit": 7, "merchant_fit": 8, "engagement_compulsion": 10}, "copy_strategy": "artifact_offer", "car_summary": {"merchant_id": "m_006_southindiancafe_restaurant_bangalore", "category": "restaurants", "locality": "Indiranagar", "active_offers": ["Weekday Lunch Thali @ ₹149"], "performance_deltas": {"views_pct": "5%", "calls_pct": "2%"}, "trigger_kind": "competitor_opened", "trigger_urgency": 2, "customer_stage": "merchant_only", "consent_state": "not_applicable", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 5, "receptivity": 7, "intervention_fit": 9}, "map_scores": {"motivation": 8, "ability": 9, "prompt": 7}, "frame": "social_proof", "action_arm": "proof_to_action", "variant_strategy": "artifact_offer", "persuasion_principle": "social_proof", "constitutional_violations": [], "thought_frames": [{"strategy": "certainty_frame", "frame": "certainty_frame", "principle": "scarcity", "action_arm": "deadline_action", "score": 25}, {"strategy": "loss_frame", "frame": "loss_frame", "principle": "social_proof", "action_arm": "recovery_nudge", "score": 24}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "social_proof", "action_arm": "draft_the_banner/menu_note", "score": 22}], "reference_key": "restaurants:specificity", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "Mylari South Indian Cafe", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Suresh", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Indiranagar", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "True", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Indiranagar", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "merchant only", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T10"}
|
| 11 |
{"body": "Lakshmi, current curious ask due signal: active offer: Haircut @ ₹99; active offer: Hair Spa @ ₹499. Next step: turn it into a slot-led service message. I can Reply with the one service customers asked for most this week; I will turn it into a post and reply draft; Reply YES.", "cta": "open_ended", "send_as": "vera", "suppression_key": "curious_ask:m_003:2026-W17", "rationale": "Trigger: curious_ask_due | Key facts: retrieved_digest_title:'Walk-in available' tag on GBP boosting calls 23% in metros + lapsed_90d_plus:220 | Frame: gain_frame because positive signal can be converted into the next merchant action on curious_ask_due | Principle: social_proof | Receptivity: 7/10 | Suppression: no - sent | Action: Reply with the one service customers asked for most this week; I will turn it into a post and reply draft | Arm: momentum_amplifier | Reference: salons:engagement_compulsion | Lever: gain/momentum + asking the merchant | MAP: {'motivation': 8, 'ability': 6, 'prompt': 6}", "decision_plan": {"primary_signal": "curious ask due: what service in demand this week", "selected_lever": "gain/momentum + asking the merchant", "recommended_action": "Reply with the one service customers asked for most this week; I will turn it into a post and reply draft.", "risk_flags": [], "rubric_scores": {"decision_quality": 10, "specificity": 9, "category_fit": 8, "merchant_fit": 8, "engagement_compulsion": 10}, "copy_strategy": "gain_frame", "car_summary": {"merchant_id": "m_003_studio11_salon_hyderabad", "category": "salons", "locality": "Kapra", "active_offers": ["Haircut @ ₹99", "Hair Spa @ ₹499"], "performance_deltas": {"views_pct": "14%", "calls_pct": "20%", "ctr_pct": "5%"}, "trigger_kind": "curious_ask_due", "trigger_urgency": 1, "customer_stage": "merchant_only", "consent_state": "not_applicable", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 4, "receptivity": 7, "intervention_fit": 9}, "map_scores": {"motivation": 8, "ability": 6, "prompt": 6}, "frame": "gain_frame", "action_arm": "momentum_amplifier", "variant_strategy": "gain_frame", "persuasion_principle": "social_proof", "constitutional_violations": [], "thought_frames": [{"strategy": "loss_frame", "frame": "loss_frame", "principle": "social_proof", "action_arm": "recovery_nudge", "score": 20}, {"strategy": "gain_frame", "frame": "gain_frame", "principle": "social_proof", "action_arm": "momentum_amplifier", "score": 20}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "social_proof", "action_arm": "draft_the_WhatsApp/post_and_hold_a_slot", "score": 18}], "reference_key": "salons:engagement_compulsion", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "Studio11 Family Salon", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Lakshmi", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Kapra", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "True", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Kapra", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "merchant only", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T11"}
|
| 12 |
{"body": "Suresh, this curious ask due alert has limited detail, so I will keep the action conservative and grounded in Indiranagar with 12400 30d views and 88 calls. Use Weekday Lunch Thali @ ₹149 as the hook. Reply YES and I'll draft one approval-ready note.", "cta": "open_ended", "send_as": "vera", "suppression_key": "curious_ask_due:m_006_southindiancafe_restaurant_bangalore:gen_96", "rationale": "Trigger: curious_ask_due | Key facts: retrieved_trend_query:weekday lunch thali 34% YoY + views_30d:12400 | Frame: social_proof because peer/category evidence is available and useful | Principle: social_proof | Receptivity: 7/10 | Suppression: no - sent | Action: Reply with the one service customers asked for most this week; I will turn it into a post and reply draft | Arm: proof_to_action | Reference: restaurants:specificity | Lever: social proof + asking the merchant | MAP: {'motivation': 8, 'ability': 6, 'prompt': 6} | Risk flags: placeholder_trigger", "decision_plan": {"primary_signal": "curious ask due: curious ask due", "selected_lever": "social proof + asking the merchant", "recommended_action": "Reply with the one service customers asked for most this week; I will turn it into a post and reply draft.", "risk_flags": ["placeholder_trigger"], "rubric_scores": {"decision_quality": 10, "specificity": 9, "category_fit": 7, "merchant_fit": 8, "engagement_compulsion": 10}, "copy_strategy": "artifact_offer", "car_summary": {"merchant_id": "m_006_southindiancafe_restaurant_bangalore", "category": "restaurants", "locality": "Indiranagar", "active_offers": ["Weekday Lunch Thali @ ₹149"], "performance_deltas": {"views_pct": "5%", "calls_pct": "2%"}, "trigger_kind": "curious_ask_due", "trigger_urgency": 1, "customer_stage": "merchant_only", "consent_state": "not_applicable", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 3, "receptivity": 7, "intervention_fit": 9}, "map_scores": {"motivation": 8, "ability": 6, "prompt": 6}, "frame": "social_proof", "action_arm": "proof_to_action", "variant_strategy": "artifact_offer", "persuasion_principle": "social_proof", "constitutional_violations": [], "thought_frames": [{"strategy": "loss_frame", "frame": "loss_frame", "principle": "social_proof", "action_arm": "recovery_nudge", "score": 20}, {"strategy": "gain_frame", "frame": "gain_frame", "principle": "social_proof", "action_arm": "momentum_amplifier", "score": 20}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "social_proof", "action_arm": "draft_the_banner/menu_note", "score": 18}], "reference_key": "restaurants:specificity", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "Mylari South Indian Cafe", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Suresh", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Indiranagar", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "True", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Indiranagar", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "merchant only", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T12"}
|
|
@@ -21,10 +21,10 @@
|
|
| 21 |
{"body": "Suresh, current ipl match today signal: match: DC vs MI; match time: 2026-04-26T19:30:00+05:30. Next step: turn it into a meal-window post or menu/banner line. I can turn this proof into a merchant-ready draft.\n\nUse Buy 1 Pizza Get 1 Free (Tue-Thu) as the ready hook for this timing window.\n\nReply YES - I'll draft the meal-window version now.", "cta": "binary_yes_no", "send_as": "vera", "suppression_key": "ipl:m_005:2026-04-26", "rationale": "Trigger: ipl_match_today | Key facts: views_30d:2200 + calls_30d:12 | Frame: social_proof because peer/category evidence is available and useful | Principle: social_proof | Receptivity: 7/10 | Suppression: no - sent | Action: turn this proof into a merchant-ready draft | Arm: proof_to_action | Reference: restaurants:specificity | Lever: social proof + timely local event + judgment | MAP: {'motivation': 9, 'ability': 9, 'prompt': 8}", "decision_plan": {"primary_signal": "ipl match today: DC vs MI", "selected_lever": "social proof + timely local event + judgment", "recommended_action": "Want me to turn this proof into a merchant-ready draft?", "risk_flags": [], "rubric_scores": {"decision_quality": 10, "specificity": 9, "category_fit": 7, "merchant_fit": 8, "engagement_compulsion": 10}, "copy_strategy": "ask_merchant", "car_summary": {"merchant_id": "m_005_pizzajunction_restaurant_delhi", "category": "restaurants", "locality": "Sant Nagar", "active_offers": ["Buy 1 Pizza Get 1 Free (Tue-Thu)"], "performance_deltas": {"views_pct": "8%", "calls_pct": "10%"}, "trigger_kind": "ipl_match_today", "trigger_urgency": 3, "customer_stage": "merchant_only", "consent_state": "not_applicable", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 7, "receptivity": 7, "intervention_fit": 9}, "map_scores": {"motivation": 9, "ability": 9, "prompt": 8}, "frame": "social_proof", "action_arm": "proof_to_action", "variant_strategy": "ask_merchant", "persuasion_principle": "social_proof", "constitutional_violations": [], "thought_frames": [{"strategy": "certainty_frame", "frame": "certainty_frame", "principle": "scarcity", "action_arm": "deadline_action", "score": 27}, {"strategy": "loss_frame", "frame": "loss_frame", "principle": "social_proof", "action_arm": "recovery_nudge", "score": 26}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "social_proof", "action_arm": "draft_the_banner/menu_note", "score": 24}], "reference_key": "restaurants:specificity", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "SK Pizza Junction", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Suresh", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Sant Nagar", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "False", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Sant Nagar", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "merchant only", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T21"}
|
| 22 |
{"body": "Suresh, review count is 145, only 5 away from 150 in Indiranagar. Tie it to Weekday Lunch Thali @ ₹149 while customers are happy. The clean play is to ask the next happy customers at billing, not create a discount.\n\nThe next 5 is easiest while this proof is fresh.\n\nRestaurants in Indiranagar protect demand fastest when the fix lands before the next meal window.\n\nReply YES - I'll draft the 2-line review ask now.", "cta": "binary_yes_no", "send_as": "vera", "suppression_key": "milestone:m_006:reviews_150", "rationale": "Trigger: milestone_reached | Key facts: views_30d:12400 + calls_30d:88 | Frame: social_proof because peer/category evidence is available and useful | Principle: social_proof | Receptivity: 7/10 | Suppression: no - sent | Action: turn this proof into a merchant-ready draft | Arm: proof_to_action | Reference: restaurants:specificity | Lever: social proof + near-miss motivation | MAP: {'motivation': 8, 'ability': 9, 'prompt': 6}", "decision_plan": {"primary_signal": "milestone reached: review count", "selected_lever": "social proof + near-miss motivation", "recommended_action": "Want me to turn this proof into a merchant-ready draft?", "risk_flags": [], "rubric_scores": {"decision_quality": 10, "specificity": 8, "category_fit": 7, "merchant_fit": 8, "engagement_compulsion": 10}, "copy_strategy": "artifact_offer", "car_summary": {"merchant_id": "m_006_southindiancafe_restaurant_bangalore", "category": "restaurants", "locality": "Indiranagar", "active_offers": ["Weekday Lunch Thali @ ₹149"], "performance_deltas": {"views_pct": "5%", "calls_pct": "2%"}, "trigger_kind": "milestone_reached", "trigger_urgency": 1, "customer_stage": "merchant_only", "consent_state": "not_applicable", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 4, "receptivity": 7, "intervention_fit": 9}, "map_scores": {"motivation": 8, "ability": 9, "prompt": 6}, "frame": "social_proof", "action_arm": "proof_to_action", "variant_strategy": "artifact_offer", "persuasion_principle": "social_proof", "constitutional_violations": [], "thought_frames": [{"strategy": "gain_frame", "frame": "gain_frame", "principle": "social_proof", "action_arm": "momentum_amplifier", "score": 23}, {"strategy": "social_proof", "frame": "social_proof", "principle": "social_proof", "action_arm": "proof_to_action", "score": 23}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "social_proof", "action_arm": "draft_the_banner/menu_note", "score": 21}], "reference_key": "restaurants:specificity", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "Mylari South Indian Cafe", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Suresh", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Indiranagar", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "True", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Indiranagar", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "merchant only", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T22"}
|
| 23 |
{"body": "Mukesh, this milestone reached alert has limited detail, so I will keep the action conservative and grounded in Aundh with 787 30d views and 5 calls.\n\nThe next ask is easiest while this proof is fresh.\n\nRestaurants in Aundh protect demand fastest when the fix lands before the next meal window.\n\nReply YES - I'll draft one approval-ready note now.", "cta": "binary_yes_no", "send_as": "vera", "suppression_key": "milestone_reached:m_032_mukesh_restaurant_pune:gen_41", "rationale": "Trigger: milestone_reached | Key facts: views_30d:787 + calls_30d:5 | Frame: social_proof because peer/category evidence is available and useful | Principle: social_proof | Receptivity: 7/10 | Suppression: no - sent | Action: turn this proof into a merchant-ready draft | Arm: proof_to_action | Reference: restaurants:specificity | Lever: social proof + near-miss motivation | MAP: {'motivation': 8, 'ability': 9, 'prompt': 6} | Risk flags: placeholder_trigger", "decision_plan": {"primary_signal": "milestone reached: milestone reached", "selected_lever": "social proof + near-miss motivation", "recommended_action": "Want me to turn this proof into a merchant-ready draft?", "risk_flags": ["placeholder_trigger"], "rubric_scores": {"decision_quality": 10, "specificity": 8, "category_fit": 6, "merchant_fit": 8, "engagement_compulsion": 9}, "copy_strategy": "artifact_offer", "car_summary": {"merchant_id": "m_032_mukesh_restaurant_pune", "category": "restaurants", "locality": "Aundh", "active_offers": [], "performance_deltas": {"views_pct": "14%", "calls_pct": "-24%"}, "trigger_kind": "milestone_reached", "trigger_urgency": 1, "customer_stage": "merchant_only", "consent_state": "not_applicable", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 2, "receptivity": 7, "intervention_fit": 8}, "map_scores": {"motivation": 8, "ability": 9, "prompt": 6}, "frame": "social_proof", "action_arm": "proof_to_action", "variant_strategy": "artifact_offer", "persuasion_principle": "social_proof", "constitutional_violations": [], "thought_frames": [{"strategy": "gain_frame", "frame": "gain_frame", "principle": "social_proof", "action_arm": "momentum_amplifier", "score": 23}, {"strategy": "social_proof", "frame": "social_proof", "principle": "social_proof", "action_arm": "proof_to_action", "score": 23}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "social_proof", "action_arm": "draft_the_banner/menu_note", "score": 21}], "reference_key": "restaurants:specificity", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "Pizza Spot", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Mukesh", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Aundh", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "True", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Aundh", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "merchant only", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T23"}
|
| 24 |
-
{"body": "Dr. Bharat, calls are 4 vs 12 baseline: 8 calls below baseline before Pro renewal in 12 days. GBP is unverified and there is no live offer, so patients in Andheri West will not see a fresh reason to call back.\n\nThat is 8 calls below baseline; the gap is still open this week.\n\nClinics in Andheri West lose trust fastest when a profile signal sits stale.\n\
|
| 25 |
{"body": "Sushma, this perf dip alert has limited detail, so I will keep the action conservative and grounded in Baner with 2547 30d views and 22 calls. I'll keep it slot-led around your busiest hour.\n\nThe gap is fixable today, but it gets colder next cycle.\n\nSalons in Baner win the next booking by making the slot feel saved, not discounted.\n\nReply YES - I'll draft one approval-ready note now.", "cta": "binary_yes_no", "send_as": "vera", "suppression_key": "perf_dip:m_023_sushma_salon_pune:gen_31", "rationale": "Trigger: perf_dip | Key facts: views_30d:2547 + calls_30d:22 | Frame: certainty_frame because trigger has a time window or deadline on perf_dip | Principle: scarcity | Receptivity: 7/10 | Suppression: no - sent | Action: draft the recovery/retention message | Arm: deadline_action | Reference: salons:engagement_compulsion | Lever: certainty/urgency + loss aversion + recovery action | MAP: {'motivation': 9, 'ability': 9, 'prompt': 9} | Risk flags: placeholder_trigger", "decision_plan": {"primary_signal": "perf dip: perf dip", "selected_lever": "certainty/urgency + loss aversion + recovery action", "recommended_action": "Want me to draft the recovery/retention message?", "risk_flags": ["placeholder_trigger"], "rubric_scores": {"decision_quality": 10, "specificity": 8, "category_fit": 7, "merchant_fit": 9, "engagement_compulsion": 10}, "copy_strategy": "certainty_frame", "car_summary": {"merchant_id": "m_023_sushma_salon_pune", "category": "salons", "locality": "Baner", "active_offers": [], "performance_deltas": {"views_pct": "8%", "calls_pct": "2%"}, "trigger_kind": "perf_dip", "trigger_urgency": 3, "customer_stage": "merchant_only", "consent_state": "not_applicable", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 6, "receptivity": 7, "intervention_fit": 8}, "map_scores": {"motivation": 9, "ability": 9, "prompt": 9}, "frame": "certainty_frame", "action_arm": "deadline_action", "variant_strategy": "certainty_frame", "persuasion_principle": "scarcity", "constitutional_violations": [], "thought_frames": [{"strategy": "certainty_frame", "frame": "certainty_frame", "principle": "scarcity", "action_arm": "deadline_action", "score": 27}, {"strategy": "loss_frame", "frame": "loss_frame", "principle": "social_proof", "action_arm": "recovery_nudge", "score": 26}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "social_proof", "action_arm": "draft_the_WhatsApp/post_and_hold_a_slot", "score": 24}], "reference_key": "salons:engagement_compulsion", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "The Beauty Bar", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Sushma", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Baner", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "True", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Baner", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "merchant only", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T25"}
|
| 26 |
{"body": "Padma, this perf spike signal is active now: metric: calls; delta: 15%. This is worth one small move now. I can draft the class/challenge message.\n\nUse First Month @ ₹499 as the concrete merchant-owned hook after the draft is approved.\n\nReply YES - I'll draft the class/challenge message now.", "cta": "binary_yes_no", "send_as": "vera", "suppression_key": "perf_spike:m_008:calls:2026-W17", "rationale": "Trigger: perf_spike | Key facts: total_active_members:95 + views_30d:880 | Frame: effort_externalization because context is thin or action cost needs to feel small | Principle: social_proof | Receptivity: 7/10 | Suppression: no - sent | Action: draft the class/challenge message | Arm: draft_the_class/challenge_message | Reference: gyms:merchant_fit | Lever: effort externalization + amplify what is working | MAP: {'motivation': 6, 'ability': 9, 'prompt': 6}", "decision_plan": {"primary_signal": "perf spike: calls", "selected_lever": "effort externalization + amplify what is working", "recommended_action": "Want me to draft the class/challenge message?", "risk_flags": [], "rubric_scores": {"decision_quality": 10, "specificity": 8, "category_fit": 8, "merchant_fit": 8, "engagement_compulsion": 10}, "copy_strategy": "effort_externalization", "car_summary": {"merchant_id": "m_008_zenyoga_gym_chennai", "category": "gyms", "locality": "Mylapore", "active_offers": ["First Month @ ₹499", "Free Body Composition Analysis"], "performance_deltas": {"views_pct": "10%", "calls_pct": "15%"}, "trigger_kind": "perf_spike", "trigger_urgency": 1, "customer_stage": "merchant_only", "consent_state": "not_applicable", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 4, "receptivity": 7, "intervention_fit": 9}, "map_scores": {"motivation": 6, "ability": 9, "prompt": 6}, "frame": "effort_externalization", "action_arm": "draft_the_class/challenge_message", "variant_strategy": "effort_externalization", "persuasion_principle": "social_proof", "constitutional_violations": [], "thought_frames": [{"strategy": "gain_frame", "frame": "gain_frame", "principle": "social_proof", "action_arm": "momentum_amplifier", "score": 23}, {"strategy": "social_proof", "frame": "social_proof", "principle": "social_proof", "action_arm": "proof_to_action", "score": 23}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "social_proof", "action_arm": "draft_the_class/challenge_message", "score": 21}], "reference_key": "gyms:merchant_fit", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "Zen Yoga Studio", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Padma", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Mylapore", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "True", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Mylapore", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "merchant only", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T26"}
|
| 27 |
{"body": "Vikas, a performance-spike alert is active with 720 30d views and 14 calls, but the driver is not in context. Capture the momentum with one evidence-light, approval-ready post for Gomti Nagar. Calm, clear, and claim-free.\n\nConfirm YES and I'll turn this proof into a merchant-ready draft now.", "cta": "binary_yes_no", "send_as": "vera", "suppression_key": "perf_spike:m_010_sunrisepharm_pharmacy_lucknow:gen_36", "rationale": "Trigger: perf_spike | Key facts: chronic_rx_count:60 + views_30d:720 | Frame: social_proof because peer/category evidence is available and useful | Principle: social_proof | Receptivity: 7/10 | Suppression: no - sent | Action: turn this proof into a merchant-ready draft | Arm: proof_to_action | Reference: pharmacies:specificity | Lever: social proof + amplify what is working | MAP: {'motivation': 8, 'ability': 9, 'prompt': 6} | Risk flags: placeholder_trigger", "decision_plan": {"primary_signal": "perf spike: perf spike", "selected_lever": "social proof + amplify what is working", "recommended_action": "Want me to turn this proof into a merchant-ready draft?", "risk_flags": ["placeholder_trigger"], "rubric_scores": {"decision_quality": 9, "specificity": 8, "category_fit": 6, "merchant_fit": 8, "engagement_compulsion": 10}, "copy_strategy": "artifact_offer", "car_summary": {"merchant_id": "m_010_sunrisepharm_pharmacy_lucknow", "category": "pharmacies", "locality": "Gomti Nagar", "active_offers": [], "performance_deltas": {"views_pct": "2%", "calls_pct": "5%"}, "trigger_kind": "perf_spike", "trigger_urgency": 1, "customer_stage": "merchant_only", "consent_state": "not_applicable", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 3, "receptivity": 7, "intervention_fit": 8}, "map_scores": {"motivation": 8, "ability": 9, "prompt": 6}, "frame": "social_proof", "action_arm": "proof_to_action", "variant_strategy": "artifact_offer", "persuasion_principle": "social_proof", "constitutional_violations": [], "thought_frames": [{"strategy": "gain_frame", "frame": "gain_frame", "principle": "social_proof", "action_arm": "momentum_amplifier", "score": 23}, {"strategy": "social_proof", "frame": "social_proof", "principle": "social_proof", "action_arm": "proof_to_action", "score": 23}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "social_proof", "action_arm": "draft_the_customer_note_and_counter_checklist", "score": 21}], "reference_key": "pharmacies:specificity", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "Sunrise Medicos", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Vikas", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Gomti Nagar", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "False", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Gomti Nagar", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "merchant only", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T27"}
|
| 28 |
{"body": "Hi Priya, Dr. Meera's Dental Clinic here. recall due is due now. slots: Wed 5 Nov, 6pm or Thu 6 Nov, 5pm; slots: Wed 5 Nov, 6pm, Thu 6 Nov, 5pm; service due: 6 month cleaning. Reply YES to confirm, or send a better time. Reply 1/2 for the slot, or suggest a time.", "cta": "multi_choice_slot", "send_as": "merchant_on_behalf", "suppression_key": "recall:c_001_priya_for_m001:6mo", "rationale": "Trigger: recall_due | Key facts: high_risk_adult_count:124 + lapsed_180d_plus:78 | Frame: certainty_frame because trigger has a time window or deadline on recall_due | Principle: scarcity | Receptivity: 7/10 | Suppression: no - sent | Action: Reply YES to confirm, or send a better time | Arm: appointment_confirm | Reference: dentists:engagement_compulsion | Lever: certainty/urgency + specific appointment/recall | MAP: {'motivation': 9, 'ability': 8, 'prompt': 10}", "decision_plan": {"primary_signal": "recall due: 6 month cleaning", "selected_lever": "certainty/urgency + specific appointment/recall", "recommended_action": "Reply YES to confirm, or send a better time.", "risk_flags": [], "rubric_scores": {"decision_quality": 10, "specificity": 9, "category_fit": 7, "merchant_fit": 10, "engagement_compulsion": 10}, "copy_strategy": "certainty_frame", "car_summary": {"merchant_id": "m_001_drmeera_dentist_delhi", "category": "dentists", "locality": "Lajpat Nagar", "active_offers": ["Dental Cleaning @ ₹299"], "performance_deltas": {"views_pct": "18%", "calls_pct": "-5%", "ctr_pct": "2%"}, "trigger_kind": "recall_due", "trigger_urgency": 3, "customer_stage": "lapsed_soft", "consent_state": "allowed", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 10, "receptivity": 7, "intervention_fit": 9}, "map_scores": {"motivation": 9, "ability": 8, "prompt": 10}, "frame": "certainty_frame", "action_arm": "appointment_confirm", "variant_strategy": "certainty_frame", "persuasion_principle": "scarcity", "constitutional_violations": [], "thought_frames": [{"strategy": "certainty_frame", "frame": "certainty_frame", "principle": "scarcity", "action_arm": "appointment_confirm", "score": 27}, {"strategy": "social_proof", "frame": "social_proof", "principle": "scarcity", "action_arm": "appointment_confirm", "score": 26}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "scarcity", "action_arm": "appointment_confirm", "score": 24}], "reference_key": "dentists:engagement_compulsion", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "Dr. Meera's Dental Clinic", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Meera", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Lajpat Nagar", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "True", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Lajpat Nagar", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "lapsed soft", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T28"}
|
| 29 |
{"body": "Padma, recall due is due now. metric or topic: recall due; last visit: 2026-04-01; customer: Diya. Consent is not explicit for direct customer outreach, so I can draft a consent-safe approval note for you first. Reply YES and I will prepare the next step now.", "cta": "binary_yes_no", "send_as": "vera", "suppression_key": "recall_due:m_008_zenyoga_gym_chennai:gen_66", "rationale": "Trigger: recall_due | Key facts: total_active_members:95 + views_30d:880 | Frame: certainty_frame because trigger has a time window or deadline on recall_due | Principle: scarcity | Receptivity: 5/10 | Suppression: no - sent | Action: I can draft a consent-safe approval note for you first | Arm: appointment_confirm | Reference: gyms:engagement_compulsion | Lever: certainty/urgency + specific appointment/recall | MAP: {'motivation': 9, 'ability': 9, 'prompt': 9} | Risk flags: consent_missing, placeholder_trigger", "decision_plan": {"primary_signal": "recall due: recall due", "selected_lever": "certainty/urgency + specific appointment/recall", "recommended_action": "I can draft a consent-safe approval note for you first.", "risk_flags": ["consent_missing", "placeholder_trigger"], "rubric_scores": {"decision_quality": 10, "specificity": 9, "category_fit": 6, "merchant_fit": 8, "engagement_compulsion": 10}, "copy_strategy": "certainty_frame", "car_summary": {"merchant_id": "m_008_zenyoga_gym_chennai", "category": "gyms", "locality": "Mylapore", "active_offers": ["First Month @ ₹499", "Free Body Composition Analysis"], "performance_deltas": {"views_pct": "10%", "calls_pct": "15%"}, "trigger_kind": "recall_due", "trigger_urgency": 3, "customer_stage": "lapsed_soft", "consent_state": "missing_or_blocked", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 9, "receptivity": 5, "intervention_fit": 9}, "map_scores": {"motivation": 9, "ability": 9, "prompt": 9}, "frame": "certainty_frame", "action_arm": "appointment_confirm", "variant_strategy": "certainty_frame", "persuasion_principle": "scarcity", "constitutional_violations": [], "thought_frames": [{"strategy": "certainty_frame", "frame": "certainty_frame", "principle": "scarcity", "action_arm": "appointment_confirm", "score": 26}, {"strategy": "social_proof", "frame": "social_proof", "principle": "social_proof", "action_arm": "appointment_confirm", "score": 25}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "social_proof", "action_arm": "appointment_confirm", "score": 23}], "reference_key": "gyms:engagement_compulsion", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "Zen Yoga Studio", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Padma", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Mylapore", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "True", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Mylapore", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "lapsed soft", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T29"}
|
| 30 |
-
{"body": "Dr. Meera,
|
|
|
|
| 3 |
{"body": "Karim, appointment tomorrow is due now. metric or topic: appointment tomorrow; last visit: 2026-04-01; customer: Aditya. Consent is not explicit for direct customer outreach, so I can draft a consent-safe approval note for you first. Reply YES and I will prepare the next step now.", "cta": "binary_yes_no", "send_as": "vera", "suppression_key": "appointment_tomorrow:m_019_karim_salon_lucknow:gen_76", "rationale": "Trigger: appointment_tomorrow | Key facts: views_30d:756 + calls_30d:2 | Frame: certainty_frame because trigger has a time window or deadline on appointment_tomorrow | Principle: scarcity | Receptivity: 5/10 | Suppression: no - sent | Action: I can draft a consent-safe approval note for you first | Arm: appointment_confirm | Reference: salons:engagement_compulsion | Lever: certainty/urgency + reminder + friction removal | MAP: {'motivation': 8, 'ability': 9, 'prompt': 8} | Risk flags: consent_missing, placeholder_trigger", "decision_plan": {"primary_signal": "appointment tomorrow: appointment tomorrow", "selected_lever": "certainty/urgency + reminder + friction removal", "recommended_action": "I can draft a consent-safe approval note for you first.", "risk_flags": ["consent_missing", "placeholder_trigger"], "rubric_scores": {"decision_quality": 9, "specificity": 9, "category_fit": 6, "merchant_fit": 8, "engagement_compulsion": 8}, "copy_strategy": "certainty_frame", "car_summary": {"merchant_id": "m_019_karim_salon_lucknow", "category": "salons", "locality": "Alambagh", "active_offers": [], "performance_deltas": {"views_pct": "26%", "calls_pct": "23%"}, "trigger_kind": "appointment_tomorrow", "trigger_urgency": 2, "customer_stage": "lapsed_hard", "consent_state": "missing_or_blocked", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 6, "receptivity": 5, "intervention_fit": 8}, "map_scores": {"motivation": 8, "ability": 9, "prompt": 8}, "frame": "certainty_frame", "action_arm": "appointment_confirm", "variant_strategy": "certainty_frame", "persuasion_principle": "scarcity", "constitutional_violations": [], "thought_frames": [{"strategy": "certainty_frame", "frame": "certainty_frame", "principle": "scarcity", "action_arm": "appointment_confirm", "score": 24}, {"strategy": "social_proof", "frame": "social_proof", "principle": "scarcity", "action_arm": "appointment_confirm", "score": 23}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "scarcity", "action_arm": "appointment_confirm", "score": 21}], "reference_key": "salons:engagement_compulsion", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "Karim's Salon", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Karim", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Alambagh", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "True", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Alambagh", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "lapsed hard", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T03"}
|
| 4 |
{"body": "Renu, appointment tomorrow is due now. metric or topic: appointment tomorrow; last visit: 2026-04-01; customer: Riya. Consent is not explicit for direct customer outreach, so I can draft a consent-safe approval note for you first. Reply YES and I will prepare the next step now.", "cta": "binary_yes_no", "send_as": "vera", "suppression_key": "appointment_tomorrow:m_020_renu_salon_lucknow:gen_77", "rationale": "Trigger: appointment_tomorrow | Key facts: views_30d:2945 + calls_30d:33 | Frame: certainty_frame because trigger has a time window or deadline on appointment_tomorrow | Principle: scarcity | Receptivity: 5/10 | Suppression: no - sent | Action: I can draft a consent-safe approval note for you first | Arm: appointment_confirm | Reference: salons:engagement_compulsion | Lever: certainty/urgency + reminder + friction removal | MAP: {'motivation': 8, 'ability': 9, 'prompt': 8} | Risk flags: consent_missing, placeholder_trigger", "decision_plan": {"primary_signal": "appointment tomorrow: appointment tomorrow", "selected_lever": "certainty/urgency + reminder + friction removal", "recommended_action": "I can draft a consent-safe approval note for you first.", "risk_flags": ["consent_missing", "placeholder_trigger"], "rubric_scores": {"decision_quality": 9, "specificity": 9, "category_fit": 6, "merchant_fit": 8, "engagement_compulsion": 8}, "copy_strategy": "certainty_frame", "car_summary": {"merchant_id": "m_020_renu_salon_lucknow", "category": "salons", "locality": "Gomti Nagar", "active_offers": [], "performance_deltas": {"views_pct": "4%", "calls_pct": "-18%"}, "trigger_kind": "appointment_tomorrow", "trigger_urgency": 2, "customer_stage": "active", "consent_state": "missing_or_blocked", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 6, "receptivity": 5, "intervention_fit": 8}, "map_scores": {"motivation": 8, "ability": 9, "prompt": 8}, "frame": "certainty_frame", "action_arm": "appointment_confirm", "variant_strategy": "certainty_frame", "persuasion_principle": "scarcity", "constitutional_violations": [], "thought_frames": [{"strategy": "certainty_frame", "frame": "certainty_frame", "principle": "scarcity", "action_arm": "appointment_confirm", "score": 24}, {"strategy": "social_proof", "frame": "social_proof", "principle": "scarcity", "action_arm": "appointment_confirm", "score": 23}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "scarcity", "action_arm": "appointment_confirm", "score": 21}], "reference_key": "salons:engagement_compulsion", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "Beauty Lounge by Renu", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Renu", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Gomti Nagar", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "True", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Gomti Nagar", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "active", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T04"}
|
| 5 |
{"body": "Ramesh, summer 2026 demand is shifting: ORS demand +40, sunscreen demand +38, antifungal demand +45, cold cough demand -60. Best next step is a reorder checklist for fast-moving summer stock, with claim-free customer copy.\n\nUse Free Home Delivery > ₹499 as the concrete merchant-owned hook after the draft is approved.\n\nConfirm YES and I'll draft the reorder checklist and counter note now.", "cta": "binary_yes_no", "send_as": "vera", "suppression_key": "season:summer:m_009:2026", "rationale": "Trigger: category_seasonal | Key facts: retrieved_digest_title:Summer demand shift: ORS, sunscreen, anti-fungal up 40%; cold/cough down 60% + retrieved_digest_source:Multi-pharmacy aggregate Apr 2026 | Frame: social_proof because peer/category evidence is available and useful | Principle: social_proof | Receptivity: 7/10 | Suppression: no - sent | Action: turn this proof into a merchant-ready draft | Arm: proof_to_action | Reference: pharmacies:specificity | Lever: social proof + timely stock/action planning | MAP: {'motivation': 8, 'ability': 9, 'prompt': 7}", "decision_plan": {"primary_signal": "category seasonal: summer 2026", "selected_lever": "social proof + timely stock/action planning", "recommended_action": "Want me to turn this proof into a merchant-ready draft?", "risk_flags": [], "rubric_scores": {"decision_quality": 10, "specificity": 9, "category_fit": 8, "merchant_fit": 8, "engagement_compulsion": 10}, "copy_strategy": "artifact_offer", "car_summary": {"merchant_id": "m_009_apollo_pharmacy_jaipur", "category": "pharmacies", "locality": "Malviya Nagar", "active_offers": ["Free Home Delivery > ₹499", "Senior Citizen 15% OFF"], "performance_deltas": {"views_pct": "6%", "calls_pct": "8%"}, "trigger_kind": "category_seasonal", "trigger_urgency": 2, "customer_stage": "merchant_only", "consent_state": "not_applicable", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 6, "receptivity": 7, "intervention_fit": 9}, "map_scores": {"motivation": 8, "ability": 9, "prompt": 7}, "frame": "social_proof", "action_arm": "proof_to_action", "variant_strategy": "artifact_offer", "persuasion_principle": "social_proof", "constitutional_violations": [], "thought_frames": [{"strategy": "certainty_frame", "frame": "certainty_frame", "principle": "scarcity", "action_arm": "deadline_action", "score": 25}, {"strategy": "loss_frame", "frame": "loss_frame", "principle": "social_proof", "action_arm": "recovery_nudge", "score": 24}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "social_proof", "action_arm": "draft_the_customer_note_and_counter_checklist", "score": 22}], "reference_key": "pharmacies:specificity", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "Apollo Health Plus Pharmacy", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Ramesh", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Malviya Nagar", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "True", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Malviya Nagar", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "merchant only", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T05"}
|
| 6 |
+
{"body": "Dr. Meera, current cde opportunity signal: digest item: IDA Delhi: Digital impressions — 2026 state of the art; source: IDA Delhi chapter calendar; high risk adult count: 124. Next step: turn it into a clinical checklist or patient-safe note. I can turn this proof into a merchant-ready draft.\n\nAfter the proof is clear, Dental Cleaning @ ₹299 gives the merchant a concrete next hook.\n\nBas GO bol dijiye - I'll draft the checklist now.", "cta": "binary_yes_no", "send_as": "vera", "suppression_key": "cde:dentists:2026-05-02", "rationale": "Trigger: cde_opportunity | Key facts: digest_title:IDA Delhi: Digital impressions — 2026 state of the art + high_risk_adult_count:124 | Frame: social_proof because peer/category evidence is available and useful | Principle: social_proof | Receptivity: 7/10 | Suppression: no - sent | Action: turn this proof into a merchant-ready draft | Arm: proof_to_action | Reference: dentists:specificity | Lever: social proof + professional value + low effort | MAP: {'motivation': 8, 'ability': 9, 'prompt': 6}", "decision_plan": {"primary_signal": "cde opportunity: d 2026W17 ida webinar", "selected_lever": "social proof + professional value + low effort", "recommended_action": "Want me to turn this proof into a merchant-ready draft?", "risk_flags": [], "rubric_scores": {"decision_quality": 10, "specificity": 9, "category_fit": 7, "merchant_fit": 9, "engagement_compulsion": 10}, "copy_strategy": "social_proof", "car_summary": {"merchant_id": "m_001_drmeera_dentist_delhi", "category": "dentists", "locality": "Lajpat Nagar", "active_offers": ["Dental Cleaning @ ₹299"], "performance_deltas": {"views_pct": "18%", "calls_pct": "-5%", "ctr_pct": "2%"}, "trigger_kind": "cde_opportunity", "trigger_urgency": 1, "customer_stage": "merchant_only", "consent_state": "not_applicable", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 4, "receptivity": 7, "intervention_fit": 9}, "map_scores": {"motivation": 8, "ability": 9, "prompt": 6}, "frame": "social_proof", "action_arm": "proof_to_action", "variant_strategy": "social_proof", "persuasion_principle": "social_proof", "constitutional_violations": [], "thought_frames": [{"strategy": "social_proof", "frame": "social_proof", "principle": "social_proof", "action_arm": "proof_to_action", "score": 23}, {"strategy": "professional_value", "frame": "professional_value", "principle": "social_proof", "action_arm": "proof_to_action", "score": 23}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "social_proof", "action_arm": "draft_the_patient_note_or_checklist", "score": 21}], "reference_key": "dentists:specificity", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "Dr. Meera's Dental Clinic", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Meera", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Lajpat Nagar", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "True", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Lajpat Nagar", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "merchant only", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T06"}
|
| 7 |
{"body": "Mr. Sharma, Apollo Health Plus Pharmacy here. Chronic refill due reminder: your monthly medicines (metformin, atorvastatin, telmisartan) are due by 2026-04-28. Address is already saved. Reply CONFIRM and our pharmacist will verify stock and delivery details before preparing it.", "cta": "binary_confirm_cancel", "send_as": "merchant_on_behalf", "suppression_key": "refill:c_013_grandfather_for_m009:2026-04", "rationale": "Trigger: chronic_refill_due | Key facts: chronic_rx_count:240 + views_30d:1850 | Frame: certainty_frame because trigger has a time window or deadline on chronic_refill_due | Principle: scarcity | Receptivity: 7/10 | Suppression: no - sent | Action: Reply CONFIRM and the pharmacist will verify stock and delivery details before preparing it | Arm: refill_dispatch | Reference: pharmacies:engagement_compulsion | Lever: certainty/urgency + necessity + convenience | MAP: {'motivation': 9, 'ability': 8, 'prompt': 10}", "decision_plan": {"primary_signal": "chronic refill due: metformin, atorvastatin, telmisartan", "selected_lever": "certainty/urgency + necessity + convenience", "recommended_action": "Reply CONFIRM and the pharmacist will verify stock and delivery details before preparing it.", "risk_flags": [], "rubric_scores": {"decision_quality": 10, "specificity": 9, "category_fit": 8, "merchant_fit": 9, "engagement_compulsion": 10}, "copy_strategy": "certainty_frame", "car_summary": {"merchant_id": "m_009_apollo_pharmacy_jaipur", "category": "pharmacies", "locality": "Malviya Nagar", "active_offers": ["Free Home Delivery > ₹499", "Senior Citizen 15% OFF"], "performance_deltas": {"views_pct": "6%", "calls_pct": "8%"}, "trigger_kind": "chronic_refill_due", "trigger_urgency": 3, "customer_stage": "active", "consent_state": "allowed", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 10, "receptivity": 7, "intervention_fit": 9}, "map_scores": {"motivation": 9, "ability": 8, "prompt": 10}, "frame": "certainty_frame", "action_arm": "refill_dispatch", "variant_strategy": "certainty_frame", "persuasion_principle": "scarcity", "constitutional_violations": [], "thought_frames": [{"strategy": "certainty_frame", "frame": "certainty_frame", "principle": "scarcity", "action_arm": "refill_dispatch", "score": 27}, {"strategy": "social_proof", "frame": "social_proof", "principle": "scarcity", "action_arm": "refill_dispatch", "score": 26}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "scarcity", "action_arm": "refill_dispatch", "score": 24}], "reference_key": "pharmacies:engagement_compulsion", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "Apollo Health Plus Pharmacy", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Ramesh", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Malviya Nagar", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "True", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Malviya Nagar", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "active", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T07"}
|
| 8 |
{"body": "Dr. Sameer, chronic refill due is a mismatched customer trigger for a dentist; Vivaan has 5 visits and last visited 2026-04-01. Consent is not explicit for this outreach, so I can prepare a consent-safe merchant approval note instead of direct customer copy. Reply YES and I will draft it.", "cta": "binary_yes_no", "send_as": "vera", "suppression_key": "chronic_refill_due:m_011_dr_sameer_dentist_bangalore:gen_81", "rationale": "Trigger: chronic_refill_due | Key facts: views_30d:4792 + calls_30d:55 | Frame: certainty_frame because trigger has a time window or deadline on chronic_refill_due | Principle: scarcity | Receptivity: 5/10 | Suppression: no - sent | Action: I can draft a consent-safe approval note for you first | Arm: refill_dispatch | Reference: dentists:engagement_compulsion | Lever: certainty/urgency + necessity + convenience | MAP: {'motivation': 8, 'ability': 9, 'prompt': 8} | Risk flags: consent_missing, placeholder_trigger", "decision_plan": {"primary_signal": "chronic refill due: chronic refill due", "selected_lever": "certainty/urgency + necessity + convenience", "recommended_action": "I can draft a consent-safe approval note for you first.", "risk_flags": ["consent_missing", "placeholder_trigger"], "rubric_scores": {"decision_quality": 9, "specificity": 9, "category_fit": 6, "merchant_fit": 8, "engagement_compulsion": 8}, "copy_strategy": "certainty_frame", "car_summary": {"merchant_id": "m_011_dr_sameer_dentist_bangalore", "category": "dentists", "locality": "Indiranagar", "active_offers": [], "performance_deltas": {"views_pct": "-20%", "calls_pct": "16%"}, "trigger_kind": "chronic_refill_due", "trigger_urgency": 2, "customer_stage": "new", "consent_state": "missing_or_blocked", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 6, "receptivity": 5, "intervention_fit": 8}, "map_scores": {"motivation": 8, "ability": 9, "prompt": 8}, "frame": "certainty_frame", "action_arm": "refill_dispatch", "variant_strategy": "certainty_frame", "persuasion_principle": "scarcity", "constitutional_violations": [], "thought_frames": [{"strategy": "certainty_frame", "frame": "certainty_frame", "principle": "scarcity", "action_arm": "refill_dispatch", "score": 24}, {"strategy": "social_proof", "frame": "social_proof", "principle": "social_proof", "action_arm": "refill_dispatch", "score": 23}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "social_proof", "action_arm": "refill_dispatch", "score": 21}], "reference_key": "dentists:engagement_compulsion", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "Bright Smile Dental", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Dr. Sameer", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Indiranagar", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "True", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Indiranagar", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "new", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T08"}
|
| 9 |
+
{"body": "Dr. Meera, Smile Studio opened 1.3 km away on 2026-04-08 with Dental Cleaning @ ₹199. Your hook is Dental Cleaning @ ₹299. This week, nearby searchers will compare both profiles.\n\nThe comparison is happening before customers ever call.\n\nClinics in Lajpat Nagar lose trust fastest when a profile signal sits stale.\n\nBas GO bol dijiye - I'll draft the local listing post that makes your clinic look current before patients compare now.", "cta": "binary_yes_no", "send_as": "vera", "suppression_key": "competitor:m_001:smile_studio", "rationale": "Trigger: competitor_opened | Key facts: high_risk_adult_count:124 + lapsed_180d_plus:78 | Frame: social_proof because peer/category evidence is available and useful | Principle: social_proof | Receptivity: 7/10 | Suppression: no - sent | Action: turn this proof into a merchant-ready draft | Arm: proof_to_action | Reference: dentists:specificity | Lever: social proof + competitive threat | MAP: {'motivation': 8, 'ability': 9, 'prompt': 7}", "decision_plan": {"primary_signal": "competitor opened: Smile Studio", "selected_lever": "social proof + competitive threat", "recommended_action": "Want me to turn this proof into a merchant-ready draft?", "risk_flags": [], "rubric_scores": {"decision_quality": 10, "specificity": 9, "category_fit": 6, "merchant_fit": 9, "engagement_compulsion": 10}, "copy_strategy": "artifact_offer", "car_summary": {"merchant_id": "m_001_drmeera_dentist_delhi", "category": "dentists", "locality": "Lajpat Nagar", "active_offers": ["Dental Cleaning @ ₹299"], "performance_deltas": {"views_pct": "18%", "calls_pct": "-5%", "ctr_pct": "2%"}, "trigger_kind": "competitor_opened", "trigger_urgency": 2, "customer_stage": "merchant_only", "consent_state": "not_applicable", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 5, "receptivity": 7, "intervention_fit": 9}, "map_scores": {"motivation": 8, "ability": 9, "prompt": 7}, "frame": "social_proof", "action_arm": "proof_to_action", "variant_strategy": "artifact_offer", "persuasion_principle": "social_proof", "constitutional_violations": [], "thought_frames": [{"strategy": "certainty_frame", "frame": "certainty_frame", "principle": "scarcity", "action_arm": "deadline_action", "score": 25}, {"strategy": "loss_frame", "frame": "loss_frame", "principle": "social_proof", "action_arm": "recovery_nudge", "score": 24}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "social_proof", "action_arm": "draft_the_patient_note_or_checklist", "score": 22}], "reference_key": "dentists:specificity", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "Dr. Meera's Dental Clinic", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Meera", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Lajpat Nagar", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "True", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Lajpat Nagar", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "merchant only", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T09"}
|
| 10 |
{"body": "Suresh, competitor-opened alert is active, but no competitor name or offer is in context. The grounded play is to post one meal-window hook before nearby searchers compare menus in Indiranagar with 12400 30d views and 88 calls. Use Weekday Lunch Thali @ ₹149 as the hook.\n\nThe comparison is happening before customers ever call.\n\nRestaurants in Indiranagar protect demand fastest when the fix lands before the next meal window.\n\nReply YES - I'll draft that defensive listing post now.", "cta": "binary_yes_no", "send_as": "vera", "suppression_key": "competitor_opened:m_006_southindiancafe_restaurant_bangalore:gen_56", "rationale": "Trigger: competitor_opened | Key facts: views_30d:12400 + calls_30d:88 | Frame: social_proof because peer/category evidence is available and useful | Principle: social_proof | Receptivity: 7/10 | Suppression: no - sent | Action: turn this proof into a merchant-ready draft | Arm: proof_to_action | Reference: restaurants:specificity | Lever: social proof + competitive threat | MAP: {'motivation': 8, 'ability': 9, 'prompt': 7} | Risk flags: placeholder_trigger", "decision_plan": {"primary_signal": "competitor opened: competitor opened", "selected_lever": "social proof + competitive threat", "recommended_action": "Want me to turn this proof into a merchant-ready draft?", "risk_flags": ["placeholder_trigger"], "rubric_scores": {"decision_quality": 10, "specificity": 8, "category_fit": 7, "merchant_fit": 8, "engagement_compulsion": 10}, "copy_strategy": "artifact_offer", "car_summary": {"merchant_id": "m_006_southindiancafe_restaurant_bangalore", "category": "restaurants", "locality": "Indiranagar", "active_offers": ["Weekday Lunch Thali @ ₹149"], "performance_deltas": {"views_pct": "5%", "calls_pct": "2%"}, "trigger_kind": "competitor_opened", "trigger_urgency": 2, "customer_stage": "merchant_only", "consent_state": "not_applicable", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 5, "receptivity": 7, "intervention_fit": 9}, "map_scores": {"motivation": 8, "ability": 9, "prompt": 7}, "frame": "social_proof", "action_arm": "proof_to_action", "variant_strategy": "artifact_offer", "persuasion_principle": "social_proof", "constitutional_violations": [], "thought_frames": [{"strategy": "certainty_frame", "frame": "certainty_frame", "principle": "scarcity", "action_arm": "deadline_action", "score": 25}, {"strategy": "loss_frame", "frame": "loss_frame", "principle": "social_proof", "action_arm": "recovery_nudge", "score": 24}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "social_proof", "action_arm": "draft_the_banner/menu_note", "score": 22}], "reference_key": "restaurants:specificity", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "Mylari South Indian Cafe", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Suresh", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Indiranagar", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "True", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Indiranagar", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "merchant only", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T10"}
|
| 11 |
{"body": "Lakshmi, current curious ask due signal: active offer: Haircut @ ₹99; active offer: Hair Spa @ ₹499. Next step: turn it into a slot-led service message. I can Reply with the one service customers asked for most this week; I will turn it into a post and reply draft; Reply YES.", "cta": "open_ended", "send_as": "vera", "suppression_key": "curious_ask:m_003:2026-W17", "rationale": "Trigger: curious_ask_due | Key facts: retrieved_digest_title:'Walk-in available' tag on GBP boosting calls 23% in metros + lapsed_90d_plus:220 | Frame: gain_frame because positive signal can be converted into the next merchant action on curious_ask_due | Principle: social_proof | Receptivity: 7/10 | Suppression: no - sent | Action: Reply with the one service customers asked for most this week; I will turn it into a post and reply draft | Arm: momentum_amplifier | Reference: salons:engagement_compulsion | Lever: gain/momentum + asking the merchant | MAP: {'motivation': 8, 'ability': 6, 'prompt': 6}", "decision_plan": {"primary_signal": "curious ask due: what service in demand this week", "selected_lever": "gain/momentum + asking the merchant", "recommended_action": "Reply with the one service customers asked for most this week; I will turn it into a post and reply draft.", "risk_flags": [], "rubric_scores": {"decision_quality": 10, "specificity": 9, "category_fit": 8, "merchant_fit": 8, "engagement_compulsion": 10}, "copy_strategy": "gain_frame", "car_summary": {"merchant_id": "m_003_studio11_salon_hyderabad", "category": "salons", "locality": "Kapra", "active_offers": ["Haircut @ ₹99", "Hair Spa @ ₹499"], "performance_deltas": {"views_pct": "14%", "calls_pct": "20%", "ctr_pct": "5%"}, "trigger_kind": "curious_ask_due", "trigger_urgency": 1, "customer_stage": "merchant_only", "consent_state": "not_applicable", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 4, "receptivity": 7, "intervention_fit": 9}, "map_scores": {"motivation": 8, "ability": 6, "prompt": 6}, "frame": "gain_frame", "action_arm": "momentum_amplifier", "variant_strategy": "gain_frame", "persuasion_principle": "social_proof", "constitutional_violations": [], "thought_frames": [{"strategy": "loss_frame", "frame": "loss_frame", "principle": "social_proof", "action_arm": "recovery_nudge", "score": 20}, {"strategy": "gain_frame", "frame": "gain_frame", "principle": "social_proof", "action_arm": "momentum_amplifier", "score": 20}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "social_proof", "action_arm": "draft_the_WhatsApp/post_and_hold_a_slot", "score": 18}], "reference_key": "salons:engagement_compulsion", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "Studio11 Family Salon", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Lakshmi", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Kapra", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "True", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Kapra", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "merchant only", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T11"}
|
| 12 |
{"body": "Suresh, this curious ask due alert has limited detail, so I will keep the action conservative and grounded in Indiranagar with 12400 30d views and 88 calls. Use Weekday Lunch Thali @ ₹149 as the hook. Reply YES and I'll draft one approval-ready note.", "cta": "open_ended", "send_as": "vera", "suppression_key": "curious_ask_due:m_006_southindiancafe_restaurant_bangalore:gen_96", "rationale": "Trigger: curious_ask_due | Key facts: retrieved_trend_query:weekday lunch thali 34% YoY + views_30d:12400 | Frame: social_proof because peer/category evidence is available and useful | Principle: social_proof | Receptivity: 7/10 | Suppression: no - sent | Action: Reply with the one service customers asked for most this week; I will turn it into a post and reply draft | Arm: proof_to_action | Reference: restaurants:specificity | Lever: social proof + asking the merchant | MAP: {'motivation': 8, 'ability': 6, 'prompt': 6} | Risk flags: placeholder_trigger", "decision_plan": {"primary_signal": "curious ask due: curious ask due", "selected_lever": "social proof + asking the merchant", "recommended_action": "Reply with the one service customers asked for most this week; I will turn it into a post and reply draft.", "risk_flags": ["placeholder_trigger"], "rubric_scores": {"decision_quality": 10, "specificity": 9, "category_fit": 7, "merchant_fit": 8, "engagement_compulsion": 10}, "copy_strategy": "artifact_offer", "car_summary": {"merchant_id": "m_006_southindiancafe_restaurant_bangalore", "category": "restaurants", "locality": "Indiranagar", "active_offers": ["Weekday Lunch Thali @ ₹149"], "performance_deltas": {"views_pct": "5%", "calls_pct": "2%"}, "trigger_kind": "curious_ask_due", "trigger_urgency": 1, "customer_stage": "merchant_only", "consent_state": "not_applicable", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 3, "receptivity": 7, "intervention_fit": 9}, "map_scores": {"motivation": 8, "ability": 6, "prompt": 6}, "frame": "social_proof", "action_arm": "proof_to_action", "variant_strategy": "artifact_offer", "persuasion_principle": "social_proof", "constitutional_violations": [], "thought_frames": [{"strategy": "loss_frame", "frame": "loss_frame", "principle": "social_proof", "action_arm": "recovery_nudge", "score": 20}, {"strategy": "gain_frame", "frame": "gain_frame", "principle": "social_proof", "action_arm": "momentum_amplifier", "score": 20}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "social_proof", "action_arm": "draft_the_banner/menu_note", "score": 18}], "reference_key": "restaurants:specificity", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "Mylari South Indian Cafe", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Suresh", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Indiranagar", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "True", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Indiranagar", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "merchant only", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T12"}
|
|
|
|
| 21 |
{"body": "Suresh, current ipl match today signal: match: DC vs MI; match time: 2026-04-26T19:30:00+05:30. Next step: turn it into a meal-window post or menu/banner line. I can turn this proof into a merchant-ready draft.\n\nUse Buy 1 Pizza Get 1 Free (Tue-Thu) as the ready hook for this timing window.\n\nReply YES - I'll draft the meal-window version now.", "cta": "binary_yes_no", "send_as": "vera", "suppression_key": "ipl:m_005:2026-04-26", "rationale": "Trigger: ipl_match_today | Key facts: views_30d:2200 + calls_30d:12 | Frame: social_proof because peer/category evidence is available and useful | Principle: social_proof | Receptivity: 7/10 | Suppression: no - sent | Action: turn this proof into a merchant-ready draft | Arm: proof_to_action | Reference: restaurants:specificity | Lever: social proof + timely local event + judgment | MAP: {'motivation': 9, 'ability': 9, 'prompt': 8}", "decision_plan": {"primary_signal": "ipl match today: DC vs MI", "selected_lever": "social proof + timely local event + judgment", "recommended_action": "Want me to turn this proof into a merchant-ready draft?", "risk_flags": [], "rubric_scores": {"decision_quality": 10, "specificity": 9, "category_fit": 7, "merchant_fit": 8, "engagement_compulsion": 10}, "copy_strategy": "ask_merchant", "car_summary": {"merchant_id": "m_005_pizzajunction_restaurant_delhi", "category": "restaurants", "locality": "Sant Nagar", "active_offers": ["Buy 1 Pizza Get 1 Free (Tue-Thu)"], "performance_deltas": {"views_pct": "8%", "calls_pct": "10%"}, "trigger_kind": "ipl_match_today", "trigger_urgency": 3, "customer_stage": "merchant_only", "consent_state": "not_applicable", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 7, "receptivity": 7, "intervention_fit": 9}, "map_scores": {"motivation": 9, "ability": 9, "prompt": 8}, "frame": "social_proof", "action_arm": "proof_to_action", "variant_strategy": "ask_merchant", "persuasion_principle": "social_proof", "constitutional_violations": [], "thought_frames": [{"strategy": "certainty_frame", "frame": "certainty_frame", "principle": "scarcity", "action_arm": "deadline_action", "score": 27}, {"strategy": "loss_frame", "frame": "loss_frame", "principle": "social_proof", "action_arm": "recovery_nudge", "score": 26}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "social_proof", "action_arm": "draft_the_banner/menu_note", "score": 24}], "reference_key": "restaurants:specificity", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "SK Pizza Junction", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Suresh", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Sant Nagar", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "False", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Sant Nagar", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "merchant only", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T21"}
|
| 22 |
{"body": "Suresh, review count is 145, only 5 away from 150 in Indiranagar. Tie it to Weekday Lunch Thali @ ₹149 while customers are happy. The clean play is to ask the next happy customers at billing, not create a discount.\n\nThe next 5 is easiest while this proof is fresh.\n\nRestaurants in Indiranagar protect demand fastest when the fix lands before the next meal window.\n\nReply YES - I'll draft the 2-line review ask now.", "cta": "binary_yes_no", "send_as": "vera", "suppression_key": "milestone:m_006:reviews_150", "rationale": "Trigger: milestone_reached | Key facts: views_30d:12400 + calls_30d:88 | Frame: social_proof because peer/category evidence is available and useful | Principle: social_proof | Receptivity: 7/10 | Suppression: no - sent | Action: turn this proof into a merchant-ready draft | Arm: proof_to_action | Reference: restaurants:specificity | Lever: social proof + near-miss motivation | MAP: {'motivation': 8, 'ability': 9, 'prompt': 6}", "decision_plan": {"primary_signal": "milestone reached: review count", "selected_lever": "social proof + near-miss motivation", "recommended_action": "Want me to turn this proof into a merchant-ready draft?", "risk_flags": [], "rubric_scores": {"decision_quality": 10, "specificity": 8, "category_fit": 7, "merchant_fit": 8, "engagement_compulsion": 10}, "copy_strategy": "artifact_offer", "car_summary": {"merchant_id": "m_006_southindiancafe_restaurant_bangalore", "category": "restaurants", "locality": "Indiranagar", "active_offers": ["Weekday Lunch Thali @ ₹149"], "performance_deltas": {"views_pct": "5%", "calls_pct": "2%"}, "trigger_kind": "milestone_reached", "trigger_urgency": 1, "customer_stage": "merchant_only", "consent_state": "not_applicable", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 4, "receptivity": 7, "intervention_fit": 9}, "map_scores": {"motivation": 8, "ability": 9, "prompt": 6}, "frame": "social_proof", "action_arm": "proof_to_action", "variant_strategy": "artifact_offer", "persuasion_principle": "social_proof", "constitutional_violations": [], "thought_frames": [{"strategy": "gain_frame", "frame": "gain_frame", "principle": "social_proof", "action_arm": "momentum_amplifier", "score": 23}, {"strategy": "social_proof", "frame": "social_proof", "principle": "social_proof", "action_arm": "proof_to_action", "score": 23}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "social_proof", "action_arm": "draft_the_banner/menu_note", "score": 21}], "reference_key": "restaurants:specificity", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "Mylari South Indian Cafe", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Suresh", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Indiranagar", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "True", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Indiranagar", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "merchant only", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T22"}
|
| 23 |
{"body": "Mukesh, this milestone reached alert has limited detail, so I will keep the action conservative and grounded in Aundh with 787 30d views and 5 calls.\n\nThe next ask is easiest while this proof is fresh.\n\nRestaurants in Aundh protect demand fastest when the fix lands before the next meal window.\n\nReply YES - I'll draft one approval-ready note now.", "cta": "binary_yes_no", "send_as": "vera", "suppression_key": "milestone_reached:m_032_mukesh_restaurant_pune:gen_41", "rationale": "Trigger: milestone_reached | Key facts: views_30d:787 + calls_30d:5 | Frame: social_proof because peer/category evidence is available and useful | Principle: social_proof | Receptivity: 7/10 | Suppression: no - sent | Action: turn this proof into a merchant-ready draft | Arm: proof_to_action | Reference: restaurants:specificity | Lever: social proof + near-miss motivation | MAP: {'motivation': 8, 'ability': 9, 'prompt': 6} | Risk flags: placeholder_trigger", "decision_plan": {"primary_signal": "milestone reached: milestone reached", "selected_lever": "social proof + near-miss motivation", "recommended_action": "Want me to turn this proof into a merchant-ready draft?", "risk_flags": ["placeholder_trigger"], "rubric_scores": {"decision_quality": 10, "specificity": 8, "category_fit": 6, "merchant_fit": 8, "engagement_compulsion": 9}, "copy_strategy": "artifact_offer", "car_summary": {"merchant_id": "m_032_mukesh_restaurant_pune", "category": "restaurants", "locality": "Aundh", "active_offers": [], "performance_deltas": {"views_pct": "14%", "calls_pct": "-24%"}, "trigger_kind": "milestone_reached", "trigger_urgency": 1, "customer_stage": "merchant_only", "consent_state": "not_applicable", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 2, "receptivity": 7, "intervention_fit": 8}, "map_scores": {"motivation": 8, "ability": 9, "prompt": 6}, "frame": "social_proof", "action_arm": "proof_to_action", "variant_strategy": "artifact_offer", "persuasion_principle": "social_proof", "constitutional_violations": [], "thought_frames": [{"strategy": "gain_frame", "frame": "gain_frame", "principle": "social_proof", "action_arm": "momentum_amplifier", "score": 23}, {"strategy": "social_proof", "frame": "social_proof", "principle": "social_proof", "action_arm": "proof_to_action", "score": 23}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "social_proof", "action_arm": "draft_the_banner/menu_note", "score": 21}], "reference_key": "restaurants:specificity", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "Pizza Spot", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Mukesh", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Aundh", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "True", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Aundh", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "merchant only", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T23"}
|
| 24 |
+
{"body": "Dr. Bharat, calls are 4 vs 12 baseline: 8 calls below baseline before Pro renewal in 12 days. GBP is unverified and there is no live offer, so patients in Andheri West will not see a fresh reason to call back.\n\nThat is 8 calls below baseline; the gap is still open this week.\n\nClinics in Andheri West lose trust fastest when a profile signal sits stale.\n\nBas GO bol dijiye - I'll draft the 3-step GBP fix plus missed-call callback script now.", "cta": "binary_yes_no", "send_as": "vera", "suppression_key": "perf_dip:m_002_bharat_dentist_mumbai:calls:2026-W17", "rationale": "Trigger: perf_dip | Key facts: lapsed_180d_plus:95 + implied_gap:8 calls below baseline | Frame: social_proof because peer/category evidence is available and useful | Principle: social_proof | Receptivity: 7/10 | Suppression: no - sent | Action: draft the recovery/retention message | Arm: proof_to_action | Reference: dentists:specificity | Lever: social proof + loss aversion + recovery action | MAP: {'motivation': 9, 'ability': 9, 'prompt': 8}", "decision_plan": {"primary_signal": "perf dip: calls", "selected_lever": "social proof + loss aversion + recovery action", "recommended_action": "Want me to draft the recovery/retention message?", "risk_flags": [], "rubric_scores": {"decision_quality": 10, "specificity": 8, "category_fit": 6, "merchant_fit": 9, "engagement_compulsion": 10}, "copy_strategy": "artifact_offer", "car_summary": {"merchant_id": "m_002_bharat_dentist_mumbai", "category": "dentists", "locality": "Andheri West", "active_offers": [], "performance_deltas": {"views_pct": "-22%", "calls_pct": "-50%", "ctr_pct": "-10%"}, "trigger_kind": "perf_dip", "trigger_urgency": 4, "customer_stage": "merchant_only", "consent_state": "not_applicable", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 10, "receptivity": 7, "intervention_fit": 8}, "map_scores": {"motivation": 9, "ability": 9, "prompt": 8}, "frame": "social_proof", "action_arm": "proof_to_action", "variant_strategy": "artifact_offer", "persuasion_principle": "social_proof", "constitutional_violations": [], "thought_frames": [{"strategy": "certainty_frame", "frame": "certainty_frame", "principle": "scarcity", "action_arm": "deadline_action", "score": 27}, {"strategy": "loss_frame", "frame": "loss_frame", "principle": "social_proof", "action_arm": "recovery_nudge", "score": 26}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "social_proof", "action_arm": "draft_the_patient_note_or_checklist", "score": 24}], "reference_key": "dentists:specificity", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "Bharat Dental Care", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Bharat", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Andheri West", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "False", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Andheri West", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "merchant only", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T24"}
|
| 25 |
{"body": "Sushma, this perf dip alert has limited detail, so I will keep the action conservative and grounded in Baner with 2547 30d views and 22 calls. I'll keep it slot-led around your busiest hour.\n\nThe gap is fixable today, but it gets colder next cycle.\n\nSalons in Baner win the next booking by making the slot feel saved, not discounted.\n\nReply YES - I'll draft one approval-ready note now.", "cta": "binary_yes_no", "send_as": "vera", "suppression_key": "perf_dip:m_023_sushma_salon_pune:gen_31", "rationale": "Trigger: perf_dip | Key facts: views_30d:2547 + calls_30d:22 | Frame: certainty_frame because trigger has a time window or deadline on perf_dip | Principle: scarcity | Receptivity: 7/10 | Suppression: no - sent | Action: draft the recovery/retention message | Arm: deadline_action | Reference: salons:engagement_compulsion | Lever: certainty/urgency + loss aversion + recovery action | MAP: {'motivation': 9, 'ability': 9, 'prompt': 9} | Risk flags: placeholder_trigger", "decision_plan": {"primary_signal": "perf dip: perf dip", "selected_lever": "certainty/urgency + loss aversion + recovery action", "recommended_action": "Want me to draft the recovery/retention message?", "risk_flags": ["placeholder_trigger"], "rubric_scores": {"decision_quality": 10, "specificity": 8, "category_fit": 7, "merchant_fit": 9, "engagement_compulsion": 10}, "copy_strategy": "certainty_frame", "car_summary": {"merchant_id": "m_023_sushma_salon_pune", "category": "salons", "locality": "Baner", "active_offers": [], "performance_deltas": {"views_pct": "8%", "calls_pct": "2%"}, "trigger_kind": "perf_dip", "trigger_urgency": 3, "customer_stage": "merchant_only", "consent_state": "not_applicable", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 6, "receptivity": 7, "intervention_fit": 8}, "map_scores": {"motivation": 9, "ability": 9, "prompt": 9}, "frame": "certainty_frame", "action_arm": "deadline_action", "variant_strategy": "certainty_frame", "persuasion_principle": "scarcity", "constitutional_violations": [], "thought_frames": [{"strategy": "certainty_frame", "frame": "certainty_frame", "principle": "scarcity", "action_arm": "deadline_action", "score": 27}, {"strategy": "loss_frame", "frame": "loss_frame", "principle": "social_proof", "action_arm": "recovery_nudge", "score": 26}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "social_proof", "action_arm": "draft_the_WhatsApp/post_and_hold_a_slot", "score": 24}], "reference_key": "salons:engagement_compulsion", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "The Beauty Bar", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Sushma", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Baner", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "True", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Baner", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "merchant only", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T25"}
|
| 26 |
{"body": "Padma, this perf spike signal is active now: metric: calls; delta: 15%. This is worth one small move now. I can draft the class/challenge message.\n\nUse First Month @ ₹499 as the concrete merchant-owned hook after the draft is approved.\n\nReply YES - I'll draft the class/challenge message now.", "cta": "binary_yes_no", "send_as": "vera", "suppression_key": "perf_spike:m_008:calls:2026-W17", "rationale": "Trigger: perf_spike | Key facts: total_active_members:95 + views_30d:880 | Frame: effort_externalization because context is thin or action cost needs to feel small | Principle: social_proof | Receptivity: 7/10 | Suppression: no - sent | Action: draft the class/challenge message | Arm: draft_the_class/challenge_message | Reference: gyms:merchant_fit | Lever: effort externalization + amplify what is working | MAP: {'motivation': 6, 'ability': 9, 'prompt': 6}", "decision_plan": {"primary_signal": "perf spike: calls", "selected_lever": "effort externalization + amplify what is working", "recommended_action": "Want me to draft the class/challenge message?", "risk_flags": [], "rubric_scores": {"decision_quality": 10, "specificity": 8, "category_fit": 8, "merchant_fit": 8, "engagement_compulsion": 10}, "copy_strategy": "effort_externalization", "car_summary": {"merchant_id": "m_008_zenyoga_gym_chennai", "category": "gyms", "locality": "Mylapore", "active_offers": ["First Month @ ₹499", "Free Body Composition Analysis"], "performance_deltas": {"views_pct": "10%", "calls_pct": "15%"}, "trigger_kind": "perf_spike", "trigger_urgency": 1, "customer_stage": "merchant_only", "consent_state": "not_applicable", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 4, "receptivity": 7, "intervention_fit": 9}, "map_scores": {"motivation": 6, "ability": 9, "prompt": 6}, "frame": "effort_externalization", "action_arm": "draft_the_class/challenge_message", "variant_strategy": "effort_externalization", "persuasion_principle": "social_proof", "constitutional_violations": [], "thought_frames": [{"strategy": "gain_frame", "frame": "gain_frame", "principle": "social_proof", "action_arm": "momentum_amplifier", "score": 23}, {"strategy": "social_proof", "frame": "social_proof", "principle": "social_proof", "action_arm": "proof_to_action", "score": 23}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "social_proof", "action_arm": "draft_the_class/challenge_message", "score": 21}], "reference_key": "gyms:merchant_fit", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "Zen Yoga Studio", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Padma", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Mylapore", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "True", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Mylapore", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "merchant only", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T26"}
|
| 27 |
{"body": "Vikas, a performance-spike alert is active with 720 30d views and 14 calls, but the driver is not in context. Capture the momentum with one evidence-light, approval-ready post for Gomti Nagar. Calm, clear, and claim-free.\n\nConfirm YES and I'll turn this proof into a merchant-ready draft now.", "cta": "binary_yes_no", "send_as": "vera", "suppression_key": "perf_spike:m_010_sunrisepharm_pharmacy_lucknow:gen_36", "rationale": "Trigger: perf_spike | Key facts: chronic_rx_count:60 + views_30d:720 | Frame: social_proof because peer/category evidence is available and useful | Principle: social_proof | Receptivity: 7/10 | Suppression: no - sent | Action: turn this proof into a merchant-ready draft | Arm: proof_to_action | Reference: pharmacies:specificity | Lever: social proof + amplify what is working | MAP: {'motivation': 8, 'ability': 9, 'prompt': 6} | Risk flags: placeholder_trigger", "decision_plan": {"primary_signal": "perf spike: perf spike", "selected_lever": "social proof + amplify what is working", "recommended_action": "Want me to turn this proof into a merchant-ready draft?", "risk_flags": ["placeholder_trigger"], "rubric_scores": {"decision_quality": 9, "specificity": 8, "category_fit": 6, "merchant_fit": 8, "engagement_compulsion": 10}, "copy_strategy": "artifact_offer", "car_summary": {"merchant_id": "m_010_sunrisepharm_pharmacy_lucknow", "category": "pharmacies", "locality": "Gomti Nagar", "active_offers": [], "performance_deltas": {"views_pct": "2%", "calls_pct": "5%"}, "trigger_kind": "perf_spike", "trigger_urgency": 1, "customer_stage": "merchant_only", "consent_state": "not_applicable", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 3, "receptivity": 7, "intervention_fit": 8}, "map_scores": {"motivation": 8, "ability": 9, "prompt": 6}, "frame": "social_proof", "action_arm": "proof_to_action", "variant_strategy": "artifact_offer", "persuasion_principle": "social_proof", "constitutional_violations": [], "thought_frames": [{"strategy": "gain_frame", "frame": "gain_frame", "principle": "social_proof", "action_arm": "momentum_amplifier", "score": 23}, {"strategy": "social_proof", "frame": "social_proof", "principle": "social_proof", "action_arm": "proof_to_action", "score": 23}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "social_proof", "action_arm": "draft_the_customer_note_and_counter_checklist", "score": 21}], "reference_key": "pharmacies:specificity", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "Sunrise Medicos", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Vikas", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Gomti Nagar", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "False", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Gomti Nagar", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "merchant only", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T27"}
|
| 28 |
{"body": "Hi Priya, Dr. Meera's Dental Clinic here. recall due is due now. slots: Wed 5 Nov, 6pm or Thu 6 Nov, 5pm; slots: Wed 5 Nov, 6pm, Thu 6 Nov, 5pm; service due: 6 month cleaning. Reply YES to confirm, or send a better time. Reply 1/2 for the slot, or suggest a time.", "cta": "multi_choice_slot", "send_as": "merchant_on_behalf", "suppression_key": "recall:c_001_priya_for_m001:6mo", "rationale": "Trigger: recall_due | Key facts: high_risk_adult_count:124 + lapsed_180d_plus:78 | Frame: certainty_frame because trigger has a time window or deadline on recall_due | Principle: scarcity | Receptivity: 7/10 | Suppression: no - sent | Action: Reply YES to confirm, or send a better time | Arm: appointment_confirm | Reference: dentists:engagement_compulsion | Lever: certainty/urgency + specific appointment/recall | MAP: {'motivation': 9, 'ability': 8, 'prompt': 10}", "decision_plan": {"primary_signal": "recall due: 6 month cleaning", "selected_lever": "certainty/urgency + specific appointment/recall", "recommended_action": "Reply YES to confirm, or send a better time.", "risk_flags": [], "rubric_scores": {"decision_quality": 10, "specificity": 9, "category_fit": 7, "merchant_fit": 10, "engagement_compulsion": 10}, "copy_strategy": "certainty_frame", "car_summary": {"merchant_id": "m_001_drmeera_dentist_delhi", "category": "dentists", "locality": "Lajpat Nagar", "active_offers": ["Dental Cleaning @ ₹299"], "performance_deltas": {"views_pct": "18%", "calls_pct": "-5%", "ctr_pct": "2%"}, "trigger_kind": "recall_due", "trigger_urgency": 3, "customer_stage": "lapsed_soft", "consent_state": "allowed", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 10, "receptivity": 7, "intervention_fit": 9}, "map_scores": {"motivation": 9, "ability": 8, "prompt": 10}, "frame": "certainty_frame", "action_arm": "appointment_confirm", "variant_strategy": "certainty_frame", "persuasion_principle": "scarcity", "constitutional_violations": [], "thought_frames": [{"strategy": "certainty_frame", "frame": "certainty_frame", "principle": "scarcity", "action_arm": "appointment_confirm", "score": 27}, {"strategy": "social_proof", "frame": "social_proof", "principle": "scarcity", "action_arm": "appointment_confirm", "score": 26}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "scarcity", "action_arm": "appointment_confirm", "score": 24}], "reference_key": "dentists:engagement_compulsion", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "Dr. Meera's Dental Clinic", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Meera", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Lajpat Nagar", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "True", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Lajpat Nagar", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "lapsed soft", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T28"}
|
| 29 |
{"body": "Padma, recall due is due now. metric or topic: recall due; last visit: 2026-04-01; customer: Diya. Consent is not explicit for direct customer outreach, so I can draft a consent-safe approval note for you first. Reply YES and I will prepare the next step now.", "cta": "binary_yes_no", "send_as": "vera", "suppression_key": "recall_due:m_008_zenyoga_gym_chennai:gen_66", "rationale": "Trigger: recall_due | Key facts: total_active_members:95 + views_30d:880 | Frame: certainty_frame because trigger has a time window or deadline on recall_due | Principle: scarcity | Receptivity: 5/10 | Suppression: no - sent | Action: I can draft a consent-safe approval note for you first | Arm: appointment_confirm | Reference: gyms:engagement_compulsion | Lever: certainty/urgency + specific appointment/recall | MAP: {'motivation': 9, 'ability': 9, 'prompt': 9} | Risk flags: consent_missing, placeholder_trigger", "decision_plan": {"primary_signal": "recall due: recall due", "selected_lever": "certainty/urgency + specific appointment/recall", "recommended_action": "I can draft a consent-safe approval note for you first.", "risk_flags": ["consent_missing", "placeholder_trigger"], "rubric_scores": {"decision_quality": 10, "specificity": 9, "category_fit": 6, "merchant_fit": 8, "engagement_compulsion": 10}, "copy_strategy": "certainty_frame", "car_summary": {"merchant_id": "m_008_zenyoga_gym_chennai", "category": "gyms", "locality": "Mylapore", "active_offers": ["First Month @ ₹499", "Free Body Composition Analysis"], "performance_deltas": {"views_pct": "10%", "calls_pct": "15%"}, "trigger_kind": "recall_due", "trigger_urgency": 3, "customer_stage": "lapsed_soft", "consent_state": "missing_or_blocked", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 9, "receptivity": 5, "intervention_fit": 9}, "map_scores": {"motivation": 9, "ability": 9, "prompt": 9}, "frame": "certainty_frame", "action_arm": "appointment_confirm", "variant_strategy": "certainty_frame", "persuasion_principle": "scarcity", "constitutional_violations": [], "thought_frames": [{"strategy": "certainty_frame", "frame": "certainty_frame", "principle": "scarcity", "action_arm": "appointment_confirm", "score": 26}, {"strategy": "social_proof", "frame": "social_proof", "principle": "social_proof", "action_arm": "appointment_confirm", "score": 25}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "social_proof", "action_arm": "appointment_confirm", "score": 23}], "reference_key": "gyms:engagement_compulsion", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "Zen Yoga Studio", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Padma", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Mylapore", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "True", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Mylapore", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "lapsed soft", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T29"}
|
| 30 |
+
{"body": "Dr. Meera, DCI circular 2026-11-04 changes radiograph limits on 2026-12-15: IOPA max drops from 1.5 mSv to 1.0 mSv; E-speed passes, D-speed does not, and RVG is unaffected. For your Lajpat Nagar clinic, check E-speed/RVG first and flag D-speed before staff reuse it. Patient-visible trust toggle: 'RVG/E-speed protocol checked'. Then Dental Cleaning @ ₹299 can be the patient hook.\n\nThe fastest win is one same-day trust toggle before patients see the next offer.\n\nBas GO bol dijiye - I'll draft that 3-line counter/profile update now.", "cta": "binary_yes_no", "send_as": "vera", "suppression_key": "compliance:dci_radiograph:2026", "rationale": "Trigger: regulation_change | Key facts: digest_title:DCI revised radiograph dose limits effective 2026-12-15 + high_risk_adult_count:124 | Frame: certainty_frame because trigger has a time window or deadline on regulation_change | Principle: scarcity | Receptivity: 7/10 | Suppression: no - sent | Action: draft the checklist plus customer note | Arm: deadline_action | Reference: dentists:engagement_compulsion | Lever: certainty/urgency + urgency + compliance risk | MAP: {'motivation': 9, 'ability': 8, 'prompt': 10}", "decision_plan": {"primary_signal": "regulation change: dentists", "selected_lever": "certainty/urgency + urgency + compliance risk", "recommended_action": "Want me to draft the checklist plus customer note?", "risk_flags": [], "rubric_scores": {"decision_quality": 10, "specificity": 10, "category_fit": 7, "merchant_fit": 9, "engagement_compulsion": 10}, "copy_strategy": "artifact_offer", "car_summary": {"merchant_id": "m_001_drmeera_dentist_delhi", "category": "dentists", "locality": "Lajpat Nagar", "active_offers": ["Dental Cleaning @ ₹299"], "performance_deltas": {"views_pct": "18%", "calls_pct": "-5%", "ctr_pct": "2%"}, "trigger_kind": "regulation_change", "trigger_urgency": 4, "customer_stage": "merchant_only", "consent_state": "not_applicable", "last_action_type": "", "last_response_intent": "", "reflection_note": "", "category_arm_priors": {}}, "jitai_scores": {"severity": 10, "receptivity": 7, "intervention_fit": 9}, "map_scores": {"motivation": 9, "ability": 8, "prompt": 10}, "frame": "certainty_frame", "action_arm": "deadline_action", "variant_strategy": "artifact_offer", "persuasion_principle": "scarcity", "constitutional_violations": [], "thought_frames": [{"strategy": "certainty_frame", "frame": "certainty_frame", "principle": "scarcity", "action_arm": "deadline_action", "score": 28}, {"strategy": "loss_frame", "frame": "loss_frame", "principle": "scarcity", "action_arm": "recovery_nudge", "score": 27}, {"strategy": "effort_externalization", "frame": "effort_externalization", "principle": "scarcity", "action_arm": "draft_the_patient_note_or_checklist", "score": 25}], "reference_key": "dentists:engagement_compulsion", "constitution": ["No invented numbers; every figure must trace to supplied context.", "No generic phrases like increase sales, boost sales, or grow your business.", "Use one CTA only.", "Name a merchant, trigger, offer, metric, source, date, locality, or customer fact.", "Urgency must be tied to a concrete trigger, date, count, or deadline.", "Avoid repeating the same action type after weak engagement.", "Use peer-to-peer merchant language, not corporate partner language.", "For pharmacy customer cases without consent, route to merchant approval and avoid dispatch, dosage, or medical advice copy."], "evidence": [{"label": "merchant", "value": "Dr. Meera's Dental Clinic", "kind": "identity", "source": "merchant.identity", "weight": 2}, {"label": "owner", "value": "Meera", "kind": "identity", "source": "merchant.identity", "weight": 1}, {"label": "locality", "value": "Lajpat Nagar", "kind": "local", "source": "merchant.identity", "weight": 1}, {"label": "verified", "value": "True", "kind": "signal", "source": "merchant.identity", "weight": 2}, {"label": "car_locality", "value": "Lajpat Nagar", "kind": "local", "source": "merchant.car", "weight": 2}, {"label": "car_customer_stage", "value": "merchant only", "kind": "customer", "source": "merchant.car", "weight": 2}]}, "test_id": "T30"}
|