Household bill or subscription notice type
Sort a bill, utility, telecom, insurance or subscription notice into a price increase, plan or terms change, renewal or trial ending, payment problem, service ending, or routine/marketing message so the household knows what to check or decide.
F@fLimits to keep in mind
This only sorts the notice. It does not cancel, pay, switch providers, or contact anyone.
Always confirm suspicious notices through the provider's official app or website, not links in the message.
Problem
Households get dozens of billing emails, texts and letters from utilities, phone and internet providers, insurers, streaming and app subscriptions. A real price increase or an expiring promo looks just like a monthly receipt or an upsell, so changes slip through, trials end quietly, and failed payments lead to late fees or cut-offs.
Goal
Label each notice so the household can act: compare or negotiate after a price increase, review changed terms, decide before a renewal, fix a payment problem quickly, plan a replacement after a service ends, or simply file routine messages, and ask a person when the notice is unclear or suspicious.
Input / state
The billing or subscription notice to classify, with the sender name if known.
- sender
- Who the notice is from (company or service name), if known.
- notice_text
- The email, SMS, letter or in-app message text, including the subject line if there is one.
Decision question
bill_notice_typeWhat kind of household billing notice is this? Use price_increase when the same service will cost more (new price, fee, or rate). Use plan_or_terms_change when features, limits, contract terms or billing dates change without a price rise. Use renewal_or_trial_ending for trial, promo or annual term end or auto-renew, giving the household a window to decide. Use payment_problem for failed or overdue payments and suspension warnings. Use service_ending when the service or plan is discontinued. Use routine_or_marketing for statements, receipts and promotions. Use unclear when key facts are missing
Options
price_increaseThe same service will cost more (new price, fee, or rate).plan_or_terms_changeFeatures, limits, contract terms or billing dates change without a price rise.renewal_or_trial_endingTrial, promo or annual term end or auto-renew, giving the household a window to decide.payment_problemFailed or overdue payments and suspension warnings.service_endingThe service or plan is discontinued.routine_or_marketingStatements, receipts and promotions.unclearKey facts are missing or it looks like phishing.
Allowed outcomes
Decided in your code from the answer and its confidence. Thresholds are yours to set and test.
- Household member reviews itConfidence is below your threshold: probability is spread across options.
- Compare or negotiateChoice is price_increase and confidence meets your threshold.
- Review the new termsChoice is plan_or_terms_change and confidence meets your threshold.
- Decide before renewalChoice is renewal_or_trial_ending and confidence meets your threshold.
- Fix payment nowChoice is payment_problem and confidence meets your threshold.
- Plan a replacementChoice is service_ending and confidence meets your threshold.
- File itChoice is routine_or_marketing and confidence meets your threshold.
- Check with providerChoice is unclear and confidence meets your threshold.
Example scenarios
Predefined demonstrations. No model is called; the outcome shown is an illustrative judgment.
Example state
{
"sender": "FiberNet",
"notice_text": "SUBJECT: Changes to your monthly price\nFrom 1 January your Fibre 500 plan will cost 42.00 per month instead of 38.00. You can leave without a fee within 30 days of this notice."
}Outcome
IllustrativeChoice is price_increase and confidence meets your threshold.
Why
The same plan costs more from a stated date.
Using it well
- If a notice both raises the price and ends a promo, prefer renewal_or_trial_ending when the promo ending is what causes the higher charge.
- A payment problem outranks every other label; classify as payment_problem whenever a failed payment or suspension is mentioned.
- Do not treat an upsell to a more expensive plan as a price_increase; the current plan must be changing.
- Messages asking to log in through a link to avoid suspension, from an unknown sender or with mismatched details, are unclear, not payment_problem.
- Do not invent amounts or dates that are not in the notice.
Request definition
POST https://api.typesafe.ai/v1/systemone{
"model": "jev-latest",
"state": {
"sender": "<sender>",
"notice_text": "<notice_text>"
},
"questions": {
"bill_notice_type": {
"type": "choice",
"instructions": "What kind of household billing notice is this? Use price_increase when the same service will cost more (new price, fee, or rate). Use plan_or_terms_change when features, limits, contract terms or billing dates change without a price rise. Use renewal_or_trial_ending for trial, promo or annual term end or auto-renew, giving the household a window to decide. Use payment_problem for failed or overdue payments and suspension warnings. Use service_ending when the service or plan is discontinued. Use routine_or_marketing for statements, receipts and promotions. Use unclear when key facts are missing",
"criteria": {
"price_increase": "The same service will cost more (new price, fee, or rate).",
"plan_or_terms_change": "Features, limits, contract terms or billing dates change without a price rise.",
"renewal_or_trial_ending": "Trial, promo or annual term end or auto-renew, giving the household a window to decide.",
"payment_problem": "Failed or overdue payments and suspension warnings.",
"service_ending": "The service or plan is discontinued.",
"routine_or_marketing": "Statements, receipts and promotions.",
"unclear": "Key facts are missing or it looks like phishing."
}
}
}
}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.
Version History
Initial version