All classifiers
ChoiceRefunds

Refund policy eligibility

Read a refund request against your written policy and recommend a decision.

Limits to keep in mind

Refund decisions affect customers' money. Do not issue refunds on the model's answer alone. Keep code checks and human approval on this path, and keep an appeal route for "not eligible".

Problem

Refund policies have windows, plan types and exceptions. Agents apply them inconsistently, and customers in similar situations get different answers.

Goal

Recommend eligible, not eligible, or exception review for each complete request, and keep money-moving actions behind code checks and human approval.

Input / state

The request, the matched charge with values computed in code, and the policy text.

request
The customer's reason for the refund.
charge
The matched charge, including plan type and days since purchase computed in code.
policy
The refund policy, as written.

Decision question

ChoiceQuestion key policy_outcome

Under `policy`, how should this refund request be decided?

Options

  • eligibleThe policy clearly allows a refund in this situation.
  • not_eligibleThe policy clearly excludes this situation.
  • exception_reviewThe situation falls under an exception or discretionary clause, or the policy does not clearly cover it.

Allowed outcomes

Decided in your code from the answer and its confidence. Thresholds are yours to set and test.

  • EligibleChoice is eligible and probability meets your stricter threshold for refunds.
  • Not eligibleChoice is not_eligible and confidence meets your threshold.
  • Exception reviewChoice is exception_review.
  • Needs a personConfidence is below your threshold.

Example scenarios

Predefined demonstrations. No model is called; the outcome shown is an illustrative judgment.

Example state

{
  "request": "We're not using it as much as we expected.",
  "charge": {
    "plan": "annual",
    "amount": "$240.00",
    "days_since_purchase": 12
  },
  "policy": "Annual plans: full refund within 30 days of purchase. Monthly plans: no refunds after the billing date. Duplicate charges are always refunded. Other cases are reviewed by the billing team."
}

Outcome

Illustrative
Eligible

Choice is eligible and probability meets your stricter threshold for refunds.

Why

An annual plan 12 days after purchase is inside the 30-day window.

Using it well

  • Give actions that move money a higher probability threshold than actions that only reply.
  • Compute days since purchase, amounts and limits in code and pass the results in. Arithmetic and date comparison are documented weak spots.
  • Treat "eligible" as a recommendation: code checks amount limits and earlier refunds, and a person approves anything above your limit.

Request definition

POST https://api.typesafe.ai/v1/systemone
{
  "model": "jev-latest",
  "state": {
    "request": "<request>",
    "charge": "<charge>",
    "policy": "<policy>"
  },
  "questions": {
    "policy_outcome": {
      "type": "choice",
      "instructions": "Under `policy`, how should this refund request be decided?",
      "criteria": {
        "eligible": "The policy clearly allows a refund in this situation.",
        "not_eligible": "The policy clearly excludes this situation.",
        "exception_review": "The situation falls under an exception or discretionary clause, or the policy does not clearly cover it."
      }
    }
  }
}

Request shape from the System One API reference; a Kev server accepts the same body. Replace the placeholder state with your data. Requests need your own API key or server.