{
  "version": 1,
  "project": "lead-router",
  "questionVersion": "fixture-v1",
  "records": {
    "lead-router-v1|lead-1|lead": {
      "key": "lead-router-v1|lead-1|lead",
      "state": {
        "message": "Urgent - pipe under the sink is leaking and flooding the kitchen, can someone come tonight?",
        "price_list": {
          "blocked drain": "$180-$320",
          "tap replacement": "$150-$260",
          "hot water service": "$250-$450"
        },
        "business": "plumbing (mock business)"
      },
      "questions": {
        "is_spam": {
          "type": "noul",
          "instructions": "Is `message` spam, a bot, or someone trying to SELL something to the business (e.g. selling leads or marketing), rather than a potential customer?"
        },
        "is_urgent": {
          "type": "noul",
          "instructions": "Does `message` describe an urgent problem the customer needs handled today (e.g. a leak, no heating, a safety issue)?"
        },
        "intent": {
          "type": "choice",
          "instructions": "What does the sender of `message` mainly want?",
          "criteria": {
            "book": "Wants to book, schedule or get a time slot.",
            "price": "Wants a price, quote or estimate.",
            "question": "Has a question about the service before deciding.",
            "complaint": "Is unhappy about something already done.",
            "other": "None of the above."
          }
        },
        "asks_price_not_on_list": {
          "type": "noul",
          "instructions": "Does `message` ask for the price of a service that is NOT in `price_list`?"
        }
      },
      "answers": {
        "is_spam": {
          "type": "noul",
          "noul": 0.04
        },
        "is_urgent": {
          "type": "noul",
          "noul": 0.99
        },
        "intent": {
          "type": "choice",
          "choice": "book",
          "confidence": 1,
          "probabilities": {
            "book": 1,
            "price": 0,
            "other": 0,
            "question": 0,
            "complaint": 0
          }
        },
        "asks_price_not_on_list": {
          "type": "noul",
          "noul": 0.35
        }
      },
      "provider": "zen",
      "providerLabel": "REAL JEV (OpenCode Zen free, jev-1.13-free)",
      "model": "jev-1.13-free",
      "recordedAt": "2026-09-24T16:34:00Z",
      "latencyMs": 512.2
    },
    "lead-router-v1|lead-2|lead": {
      "key": "lead-router-v1|lead-2|lead",
      "state": {
        "message": "How much would it cost to install a rainwater tank?",
        "price_list": {
          "blocked drain": "$180-$320",
          "tap replacement": "$150-$260",
          "hot water service": "$250-$450"
        },
        "business": "plumbing (mock business)"
      },
      "questions": {
        "is_spam": {
          "type": "noul",
          "instructions": "Is `message` spam, a bot, or someone trying to SELL something to the business (e.g. selling leads or marketing), rather than a potential customer?"
        },
        "is_urgent": {
          "type": "noul",
          "instructions": "Does `message` describe an urgent problem the customer needs handled today (e.g. a leak, no heating, a safety issue)?"
        },
        "intent": {
          "type": "choice",
          "instructions": "What does the sender of `message` mainly want?",
          "criteria": {
            "book": "Wants to book, schedule or get a time slot.",
            "price": "Wants a price, quote or estimate.",
            "question": "Has a question about the service before deciding.",
            "complaint": "Is unhappy about something already done.",
            "other": "None of the above."
          }
        },
        "asks_price_not_on_list": {
          "type": "noul",
          "instructions": "Does `message` ask for the price of a service that is NOT in `price_list`?"
        }
      },
      "answers": {
        "is_spam": {
          "type": "noul",
          "noul": 0.04
        },
        "is_urgent": {
          "type": "noul",
          "noul": 0.03
        },
        "intent": {
          "type": "choice",
          "choice": "price",
          "confidence": 1,
          "probabilities": {
            "price": 1,
            "question": 0,
            "complaint": 0,
            "book": 0,
            "other": 0
          }
        },
        "asks_price_not_on_list": {
          "type": "noul",
          "noul": 0.97
        }
      },
      "provider": "zen",
      "providerLabel": "REAL JEV (OpenCode Zen free, jev-1.13-free)",
      "model": "jev-1.13-free",
      "recordedAt": "2026-09-24T16:34:20Z",
      "latencyMs": 620.1
    },
    "lead-router-v1|lead-3|lead": {
      "key": "lead-router-v1|lead-3|lead",
      "state": {
        "message": "Hi! We sell exclusive leads for your business, 50 households a week guaranteed.",
        "price_list": {
          "blocked drain": "$180-$320",
          "tap replacement": "$150-$260",
          "hot water service": "$250-$450"
        },
        "business": "plumbing (mock business)"
      },
      "questions": {
        "is_spam": {
          "type": "noul",
          "instructions": "Is `message` spam, a bot, or someone trying to SELL something to the business (e.g. selling leads or marketing), rather than a potential customer?"
        },
        "is_urgent": {
          "type": "noul",
          "instructions": "Does `message` describe an urgent problem the customer needs handled today (e.g. a leak, no heating, a safety issue)?"
        },
        "intent": {
          "type": "choice",
          "instructions": "What does the sender of `message` mainly want?",
          "criteria": {
            "book": "Wants to book, schedule or get a time slot.",
            "price": "Wants a price, quote or estimate.",
            "question": "Has a question about the service before deciding.",
            "complaint": "Is unhappy about something already done.",
            "other": "None of the above."
          }
        },
        "asks_price_not_on_list": {
          "type": "noul",
          "instructions": "Does `message` ask for the price of a service that is NOT in `price_list`?"
        }
      },
      "answers": {
        "is_spam": {
          "type": "noul",
          "noul": 0.98
        },
        "is_urgent": {
          "type": "noul",
          "noul": 0.02
        },
        "intent": {
          "type": "choice",
          "choice": "other",
          "confidence": 0.98,
          "probabilities": {
            "question": 0,
            "complaint": 0,
            "price": 0.01,
            "other": 0.99,
            "book": 0
          }
        },
        "asks_price_not_on_list": {
          "type": "noul",
          "noul": 0.06
        }
      },
      "provider": "zen",
      "providerLabel": "REAL JEV (OpenCode Zen free, jev-1.13-free)",
      "model": "jev-1.13-free",
      "recordedAt": "2026-09-24T16:34:40Z",
      "latencyMs": 415.6
    },
    "lead-router-v1|lead-4|lead": {
      "key": "lead-router-v1|lead-4|lead",
      "state": {
        "message": "What's the price for a blocked drain? Shower won't drain.",
        "price_list": {
          "blocked drain": "$180-$320",
          "tap replacement": "$150-$260",
          "hot water service": "$250-$450"
        },
        "business": "plumbing (mock business)"
      },
      "questions": {
        "is_spam": {
          "type": "noul",
          "instructions": "Is `message` spam, a bot, or someone trying to SELL something to the business (e.g. selling leads or marketing), rather than a potential customer?"
        },
        "is_urgent": {
          "type": "noul",
          "instructions": "Does `message` describe an urgent problem the customer needs handled today (e.g. a leak, no heating, a safety issue)?"
        },
        "intent": {
          "type": "choice",
          "instructions": "What does the sender of `message` mainly want?",
          "criteria": {
            "book": "Wants to book, schedule or get a time slot.",
            "price": "Wants a price, quote or estimate.",
            "question": "Has a question about the service before deciding.",
            "complaint": "Is unhappy about something already done.",
            "other": "None of the above."
          }
        },
        "asks_price_not_on_list": {
          "type": "noul",
          "instructions": "Does `message` ask for the price of a service that is NOT in `price_list`?"
        }
      },
      "answers": {
        "is_spam": {
          "type": "noul",
          "noul": 0.03
        },
        "is_urgent": {
          "type": "noul",
          "noul": 0.46
        },
        "intent": {
          "type": "choice",
          "choice": "price",
          "confidence": 1,
          "probabilities": {
            "question": 0,
            "complaint": 0,
            "price": 1,
            "other": 0,
            "book": 0
          }
        },
        "asks_price_not_on_list": {
          "type": "noul",
          "noul": 0.02
        }
      },
      "provider": "zen",
      "providerLabel": "REAL JEV (OpenCode Zen free, jev-1.13-free)",
      "model": "jev-1.13-free",
      "recordedAt": "2026-09-24T16:35:01Z",
      "latencyMs": 633.7
    },
    "lead-router-v1|lead-5|lead": {
      "key": "lead-router-v1|lead-5|lead",
      "state": {
        "message": "Are you available Thursday for a tap replacement appointment?",
        "price_list": {
          "blocked drain": "$180-$320",
          "tap replacement": "$150-$260",
          "hot water service": "$250-$450"
        },
        "business": "plumbing (mock business)"
      },
      "questions": {
        "is_spam": {
          "type": "noul",
          "instructions": "Is `message` spam, a bot, or someone trying to SELL something to the business (e.g. selling leads or marketing), rather than a potential customer?"
        },
        "is_urgent": {
          "type": "noul",
          "instructions": "Does `message` describe an urgent problem the customer needs handled today (e.g. a leak, no heating, a safety issue)?"
        },
        "intent": {
          "type": "choice",
          "instructions": "What does the sender of `message` mainly want?",
          "criteria": {
            "book": "Wants to book, schedule or get a time slot.",
            "price": "Wants a price, quote or estimate.",
            "question": "Has a question about the service before deciding.",
            "complaint": "Is unhappy about something already done.",
            "other": "None of the above."
          }
        },
        "asks_price_not_on_list": {
          "type": "noul",
          "instructions": "Does `message` ask for the price of a service that is NOT in `price_list`?"
        }
      },
      "answers": {
        "is_spam": {
          "type": "noul",
          "noul": 0.07
        },
        "is_urgent": {
          "type": "noul",
          "noul": 0.04
        },
        "intent": {
          "type": "choice",
          "choice": "book",
          "confidence": 1,
          "probabilities": {
            "other": 0,
            "price": 0,
            "complaint": 0,
            "question": 0,
            "book": 1
          }
        },
        "asks_price_not_on_list": {
          "type": "noul",
          "noul": 0.01
        }
      },
      "provider": "zen",
      "providerLabel": "REAL JEV (OpenCode Zen free, jev-1.13-free)",
      "model": "jev-1.13-free",
      "recordedAt": "2026-09-24T16:35:20Z",
      "latencyMs": 403.5
    },
    "lead-router-v1|lead-5|reply": {
      "key": "lead-router-v1|lead-5|reply",
      "state": {
        "reply": "Yes Thursday 10am sounds good",
        "earlier_intent": "book"
      },
      "questions": {
        "reply_kind": {
          "type": "choice",
          "instructions": "How should the lead's `reply` be read?",
          "criteria": {
            "yes": "Agrees to the next step or wants to go ahead.",
            "question": "Asks something before deciding.",
            "not_now": "Interested but later, or busy now.",
            "stop": "Asks to stop messages, not interested, or unsubscribes.",
            "other": "Anything else."
          }
        }
      },
      "answers": {
        "reply_kind": {
          "type": "choice",
          "choice": "yes",
          "confidence": 1,
          "probabilities": {
            "not_now": 0,
            "stop": 0,
            "question": 0,
            "yes": 1,
            "other": 0
          }
        }
      },
      "provider": "zen",
      "providerLabel": "REAL JEV (OpenCode Zen free, jev-1.13-free)",
      "model": "jev-1.13-free",
      "recordedAt": "2026-09-24T16:35:40Z",
      "latencyMs": 541.3
    },
    "lead-router-v1|lead-6|lead": {
      "key": "lead-router-v1|lead-6|lead",
      "state": {
        "message": "Can I book a hot water service check?",
        "price_list": {
          "blocked drain": "$180-$320",
          "tap replacement": "$150-$260",
          "hot water service": "$250-$450"
        },
        "business": "plumbing (mock business)"
      },
      "questions": {
        "is_spam": {
          "type": "noul",
          "instructions": "Is `message` spam, a bot, or someone trying to SELL something to the business (e.g. selling leads or marketing), rather than a potential customer?"
        },
        "is_urgent": {
          "type": "noul",
          "instructions": "Does `message` describe an urgent problem the customer needs handled today (e.g. a leak, no heating, a safety issue)?"
        },
        "intent": {
          "type": "choice",
          "instructions": "What does the sender of `message` mainly want?",
          "criteria": {
            "book": "Wants to book, schedule or get a time slot.",
            "price": "Wants a price, quote or estimate.",
            "question": "Has a question about the service before deciding.",
            "complaint": "Is unhappy about something already done.",
            "other": "None of the above."
          }
        },
        "asks_price_not_on_list": {
          "type": "noul",
          "instructions": "Does `message` ask for the price of a service that is NOT in `price_list`?"
        }
      },
      "answers": {
        "is_spam": {
          "type": "noul",
          "noul": 0.03
        },
        "is_urgent": {
          "type": "noul",
          "noul": 0.08
        },
        "intent": {
          "type": "choice",
          "choice": "book",
          "confidence": 1,
          "probabilities": {
            "price": 0,
            "other": 0,
            "question": 0,
            "book": 1,
            "complaint": 0
          }
        },
        "asks_price_not_on_list": {
          "type": "noul",
          "noul": 0.02
        }
      },
      "provider": "zen",
      "providerLabel": "REAL JEV (OpenCode Zen free, jev-1.13-free)",
      "model": "jev-1.13-free",
      "recordedAt": "2026-09-24T16:36:00Z",
      "latencyMs": 530.6
    },
    "lead-router-v1|lead-6|reply": {
      "key": "lead-router-v1|lead-6|reply",
      "state": {
        "reply": "Not interested anymore, please stop",
        "earlier_intent": "book"
      },
      "questions": {
        "reply_kind": {
          "type": "choice",
          "instructions": "How should the lead's `reply` be read?",
          "criteria": {
            "yes": "Agrees to the next step or wants to go ahead.",
            "question": "Asks something before deciding.",
            "not_now": "Interested but later, or busy now.",
            "stop": "Asks to stop messages, not interested, or unsubscribes.",
            "other": "Anything else."
          }
        }
      },
      "answers": {
        "reply_kind": {
          "type": "choice",
          "choice": "stop",
          "confidence": 1,
          "probabilities": {
            "other": 0,
            "not_now": 0,
            "stop": 1,
            "question": 0,
            "yes": 0
          }
        }
      },
      "provider": "zen",
      "providerLabel": "REAL JEV (OpenCode Zen free, jev-1.13-free)",
      "model": "jev-1.13-free",
      "recordedAt": "2026-09-24T16:36:20Z",
      "latencyMs": 531.9
    },
    "lead-router-v1|lead-7|lead": {
      "key": "lead-router-v1|lead-7|lead",
      "state": {
        "message": "Could you quote a tap replacement?",
        "price_list": {
          "blocked drain": "$180-$320",
          "tap replacement": "$150-$260",
          "hot water service": "$250-$450"
        },
        "business": "plumbing (mock business)"
      },
      "questions": {
        "is_spam": {
          "type": "noul",
          "instructions": "Is `message` spam, a bot, or someone trying to SELL something to the business (e.g. selling leads or marketing), rather than a potential customer?"
        },
        "is_urgent": {
          "type": "noul",
          "instructions": "Does `message` describe an urgent problem the customer needs handled today (e.g. a leak, no heating, a safety issue)?"
        },
        "intent": {
          "type": "choice",
          "instructions": "What does the sender of `message` mainly want?",
          "criteria": {
            "book": "Wants to book, schedule or get a time slot.",
            "price": "Wants a price, quote or estimate.",
            "question": "Has a question about the service before deciding.",
            "complaint": "Is unhappy about something already done.",
            "other": "None of the above."
          }
        },
        "asks_price_not_on_list": {
          "type": "noul",
          "instructions": "Does `message` ask for the price of a service that is NOT in `price_list`?"
        }
      },
      "answers": {
        "is_spam": {
          "type": "noul",
          "noul": 0.03
        },
        "is_urgent": {
          "type": "noul",
          "noul": 0.07
        },
        "intent": {
          "type": "choice",
          "choice": "price",
          "confidence": 1,
          "probabilities": {
            "question": 0,
            "other": 0,
            "book": 0,
            "price": 1,
            "complaint": 0
          }
        },
        "asks_price_not_on_list": {
          "type": "noul",
          "noul": 0.01
        }
      },
      "provider": "zen",
      "providerLabel": "REAL JEV (OpenCode Zen free, jev-1.13-free)",
      "model": "jev-1.13-free",
      "recordedAt": "2026-09-24T16:36:40Z",
      "latencyMs": 383.9
    },
    "lead-router-v1|lead-7|reply": {
      "key": "lead-router-v1|lead-7|reply",
      "state": {
        "reply": "Busy this month, maybe next month",
        "earlier_intent": "price"
      },
      "questions": {
        "reply_kind": {
          "type": "choice",
          "instructions": "How should the lead's `reply` be read?",
          "criteria": {
            "yes": "Agrees to the next step or wants to go ahead.",
            "question": "Asks something before deciding.",
            "not_now": "Interested but later, or busy now.",
            "stop": "Asks to stop messages, not interested, or unsubscribes.",
            "other": "Anything else."
          }
        }
      },
      "answers": {
        "reply_kind": {
          "type": "choice",
          "choice": "not_now",
          "confidence": 1,
          "probabilities": {
            "question": 0,
            "other": 0,
            "not_now": 1,
            "stop": 0,
            "yes": 0
          }
        }
      },
      "provider": "zen",
      "providerLabel": "REAL JEV (OpenCode Zen free, jev-1.13-free)",
      "model": "jev-1.13-free",
      "recordedAt": "2026-09-24T16:37:00Z",
      "latencyMs": 488.3
    }
  },
  "business": {
    "type": "plumbing (mock business)",
    "price_list": {
      "blocked drain": "$180-$320",
      "tap replacement": "$150-$260",
      "hot water service": "$250-$450"
    }
  },
  "fixtures": [
    {
      "id": "lead-1",
      "name": "Late-night leak",
      "received": "2026-09-20T23:40",
      "message": "Urgent - pipe under the sink is leaking and flooding the kitchen, can someone come tonight?",
      "expected": "first_reply"
    },
    {
      "id": "lead-2",
      "name": "Unlisted price",
      "received": "2026-09-21T10:05",
      "message": "How much would it cost to install a rainwater tank?",
      "expected": "no_price_guess"
    },
    {
      "id": "lead-3",
      "name": "Lead seller",
      "received": "2026-09-21T11:00",
      "message": "Hi! We sell exclusive leads for your business, 50 households a week guaranteed.",
      "expected": "ignore"
    },
    {
      "id": "lead-4",
      "name": "Listed price",
      "received": "2026-09-21T14:30",
      "message": "What's the price for a blocked drain? Shower won't drain.",
      "expected": "first_reply_price"
    },
    {
      "id": "lead-5",
      "name": "Booker, says yes",
      "received": "2026-09-22T09:10",
      "message": "Are you available Thursday for a tap replacement appointment?",
      "replies": [
        "Yes Thursday 10am sounds good"
      ],
      "expected": "answer once"
    },
    {
      "id": "lead-6",
      "name": "Says stop",
      "received": "2026-09-22T12:00",
      "message": "Can I book a hot water service check?",
      "replies": [
        "Not interested anymore, please stop"
      ],
      "expected": "stop all"
    },
    {
      "id": "lead-7",
      "name": "Not now",
      "received": "2026-09-22T16:45",
      "message": "Could you quote a tap replacement?",
      "replies": [
        "Busy this month, maybe next month"
      ],
      "expected": "lead said later"
    }
  ],
  "plans": {
    "lead-1": {
      "lead": "Late-night leak",
      "expected": "first_reply",
      "human_alert": "URGENT: [urgent_note] for Late-night leak",
      "action": "first_reply_book",
      "first_message": "[first_reply_book] for Late-night leak",
      "reply_within": "2 min",
      "follow_ups": [
        {
          "no": 1,
          "at": "2026-09-21T17:00",
          "text": "[follow-up 1 of 4] for Late-night leak"
        },
        {
          "no": 2,
          "at": "2026-09-23T17:00",
          "text": "[follow-up 2 of 4] for Late-night leak"
        },
        {
          "no": 3,
          "at": "2026-09-26T17:00",
          "text": "[follow-up 3 of 4] for Late-night leak"
        },
        {
          "no": 4,
          "at": "2026-09-30T17:00",
          "text": "[follow-up 4 of 4 - last one] for Late-night leak"
        }
      ]
    },
    "lead-2": {
      "lead": "Unlisted price",
      "expected": "no_price_guess",
      "action": "no_price_guess_offer_confirm",
      "first_message": "[no_price_guess_offer_confirm] for Unlisted price",
      "reply_within": "2 min",
      "follow_ups": [
        {
          "no": 1,
          "at": "2026-09-22T10:00",
          "text": "[follow-up 1 of 4] for Unlisted price"
        },
        {
          "no": 2,
          "at": "2026-09-24T10:00",
          "text": "[follow-up 2 of 4] for Unlisted price"
        },
        {
          "no": 3,
          "at": "2026-09-27T10:00",
          "text": "[follow-up 3 of 4] for Unlisted price"
        },
        {
          "no": 4,
          "at": "2026-10-01T10:00",
          "text": "[follow-up 4 of 4 - last one] for Unlisted price"
        }
      ]
    },
    "lead-3": {
      "lead": "Lead seller",
      "expected": "ignore",
      "action": "ignore (spam or seller)",
      "p_spam": 0.98
    },
    "lead-4": {
      "lead": "Listed price",
      "expected": "first_reply_price",
      "action": "first_reply_price",
      "first_message": "[first_reply_price] for Listed price",
      "reply_within": "2 min",
      "follow_ups": [
        {
          "no": 1,
          "at": "2026-09-22T14:00",
          "text": "[follow-up 1 of 4] for Listed price"
        },
        {
          "no": 2,
          "at": "2026-09-24T14:00",
          "text": "[follow-up 2 of 4] for Listed price"
        },
        {
          "no": 3,
          "at": "2026-09-27T14:00",
          "text": "[follow-up 3 of 4] for Listed price"
        },
        {
          "no": 4,
          "at": "2026-10-01T14:00",
          "text": "[follow-up 4 of 4 - last one] for Listed price"
        }
      ]
    },
    "lead-5": {
      "lead": "Booker, says yes",
      "expected": "answer once",
      "action": "first_reply_book",
      "first_message": "[first_reply_book] for Booker, says yes",
      "reply_within": "2 min",
      "follow_ups": "stopped: lead replied",
      "then": "answer once, then human_handoff with note",
      "reply_kind": "yes"
    },
    "lead-6": {
      "lead": "Says stop",
      "expected": "stop all",
      "action": "first_reply_book",
      "first_message": "[first_reply_book] for Says stop",
      "reply_within": "2 min",
      "follow_ups": "stopped: lead replied",
      "then": "stop all messages",
      "reply_kind": "stop"
    },
    "lead-7": {
      "lead": "Not now",
      "expected": "lead said later",
      "action": "first_reply_price",
      "first_message": "[first_reply_price] for Not now",
      "reply_within": "2 min",
      "follow_ups": "stopped: lead replied",
      "then": "human_handoff with note (lead said later)",
      "reply_kind": "not_now"
    }
  }
}
