{
  "name": "Centrum AURA Failure Demand Taxonomy — cross-vertical core",
  "version": "mega-v1-core-public",
  "licence": "CC BY 4.0 — free to use with attribution to Centrum AURA",
  "attribution": "Failure Demand Taxonomy (cross-vertical core), Centrum AURA — https://www.centrumaura.com/taxonomy/",
  "scope": "The cross-vertical core, published in full: the defects that recur in almost every contact centre regardless of industry. Industry-specific taxonomies are listed below by category but not enumerated — those ship with AURA Source.",
  "maturity": "A working reference built from domain experience rather than a finished survey. Not exhaustive, and it will keep changing — cite the version if you reference it.",
  "generated": "2026-07-26",
  "published_defects": 19,
  "defects": [
    {
      "id": "core_close_account",
      "name": "Close / delete account",
      "category": "Account & Access",
      "demand_type": "context",
      "verticals": [
        "cross-vertical"
      ],
      "route_signal": false,
      "description": "A deliberate request to leave. Not preventable, but the handling is measurable — if closures consistently arrive through the contact centre rather than self-service, that is a product decision worth revisiting.",
      "example_contact": "I want to close my account, please.",
      "owner": "Product"
    },
    {
      "id": "core_login_fail",
      "name": "Cannot log in",
      "category": "Account & Access",
      "demand_type": "failure",
      "verticals": [
        "cross-vertical"
      ],
      "route_signal": false,
      "description": "The customer cannot get in. Consistently one of the highest-volume defects in every vertical, and one of the most under-attributed — it is logged as \"account query\" far more often than as an authentication failure.",
      "example_contact": "It keeps saying my details are wrong but I know they are right.",
      "owner": "Identity & security"
    },
    {
      "id": "core_password_reset_broken",
      "name": "Password reset broken / loop",
      "category": "Account & Access",
      "demand_type": "failure",
      "verticals": [
        "cross-vertical"
      ],
      "route_signal": false,
      "description": "The reset flow itself fails — the email never arrives, the link expires too fast, or the new password is rejected for unstated reasons. Distinct from a forgotten password, which is normal. Look at the ratio between reset attempts and successful resets.",
      "example_contact": "I have requested the reset email three times and nothing has come through.",
      "owner": "Identity & security"
    },
    {
      "id": "core_update_details",
      "name": "Update contact/account details",
      "category": "Account & Access",
      "demand_type": "value",
      "verticals": [
        "cross-vertical"
      ],
      "route_signal": false,
      "description": "Genuine value demand, though the volume is often a signal in itself. If customers must contact to change an address, the self-service gap is the finding rather than the contact.",
      "example_contact": "I have moved house and need to change my address.",
      "owner": "Product"
    },
    {
      "id": "core_verify_fail",
      "name": "Cannot verify / activate account",
      "category": "Account & Access",
      "demand_type": "failure",
      "verticals": [
        "cross-vertical"
      ],
      "route_signal": false,
      "description": "Activation or verification does not complete, so the customer cannot start. Failures cluster hard around edge cases — non-Latin characters, long domains, corporate email filters — which makes them look random until you segment.",
      "example_contact": "I signed up two days ago and still cannot activate it.",
      "owner": "Identity & security"
    },
    {
      "id": "core_charge_unclear",
      "name": "Charge unclear / can't understand what I paid for",
      "category": "Billing & Charges",
      "demand_type": "failure",
      "verticals": [
        "cross-vertical"
      ],
      "route_signal": false,
      "description": "The amount may be entirely correct; the document explaining it is not. This is a document design defect rather than a billing error, and fixing the template usually removes the whole cluster at once.",
      "example_contact": "There is a charge on here and I have no idea what it is for.",
      "owner": "Billing"
    },
    {
      "id": "core_double_charged",
      "name": "Charged twice / duplicate charge",
      "category": "Billing & Charges",
      "demand_type": "failure",
      "verticals": [
        "cross-vertical"
      ],
      "route_signal": false,
      "description": "A duplicate debit, or one the customer believes is duplicated. High urgency and high emotional load, so it escalates faster than its volume suggests. Separate genuine duplicates from pending authorisations displayed as charges — the second is a comms defect, not a payments one.",
      "example_contact": "You have taken the money twice and I need it back today.",
      "owner": "Payments"
    },
    {
      "id": "core_invoice_not_received",
      "name": "Invoice/receipt never arrived or inaccessible",
      "category": "Billing & Charges",
      "demand_type": "failure",
      "verticals": [
        "cross-vertical"
      ],
      "route_signal": false,
      "description": "The document was never delivered, went to spam, or sits behind a login the customer cannot reach. Often surfaces in batches after a template or sending-domain change.",
      "example_contact": "I need a copy of my invoice, I never got one.",
      "owner": "Billing"
    },
    {
      "id": "core_price_change_query",
      "name": "Query about a price/plan change",
      "category": "Billing & Charges",
      "demand_type": "context",
      "verticals": [
        "cross-vertical"
      ],
      "route_signal": false,
      "description": "The customer is reacting to a price or plan change. Whether this is avoidable depends entirely on the notification — if a single change generates a spike, the notification failed and this is failure demand wearing a context label.",
      "example_contact": "I have had a letter saying my price is going up. Why?",
      "owner": "Billing"
    },
    {
      "id": "core_refund_status",
      "name": "Refund promised but not received / status chase",
      "category": "Billing & Charges",
      "demand_type": "failure",
      "verticals": [
        "cross-vertical"
      ],
      "route_signal": false,
      "description": "A refund was promised and the customer cannot see it. Generates repeat contacts per case rather than one, so the true volume is a multiple of the case count. Check whether your refund SLA matches what agents are told to promise.",
      "example_contact": "I was told it would be back in five days and it has been two weeks.",
      "owner": "Payments"
    },
    {
      "id": "core_data_request",
      "name": "Data access / GDPR subject request",
      "category": "Communications & Data",
      "demand_type": "value",
      "verticals": [
        "cross-vertical"
      ],
      "route_signal": false,
      "description": "A statutory request. Not eliminable, but the handling cost is highly variable — organisations without a defined process spend many multiples of those with one.",
      "example_contact": "I would like a copy of all the data you hold about me.",
      "owner": "Legal / data protection"
    },
    {
      "id": "core_letter_email_unclear",
      "name": "Received a message they don't understand",
      "category": "Communications & Data",
      "demand_type": "failure",
      "verticals": [
        "cross-vertical"
      ],
      "route_signal": false,
      "description": "A communication generated confusion rather than resolving it. Almost always traceable to one template, which makes it one of the cheapest defects to fix and one of the least often attributed.",
      "example_contact": "I have got this letter and I do not understand what I am supposed to do.",
      "owner": "Customer communications"
    },
    {
      "id": "core_marketing_optout",
      "name": "Opt out of marketing / contact preferences",
      "category": "Communications & Data",
      "demand_type": "value",
      "verticals": [
        "cross-vertical"
      ],
      "route_signal": false,
      "description": "A preference change that should be self-service. Volume arriving by phone or email indicates the opt-out mechanism is hard to find or does not work — and there is regulatory exposure if it is the latter.",
      "example_contact": "Please take me off your mailing list, I have asked before.",
      "owner": "Marketing"
    },
    {
      "id": "core_wrong_recipient",
      "name": "Contacted about someone else / wrong recipient",
      "category": "Communications & Data",
      "demand_type": "failure",
      "verticals": [
        "cross-vertical"
      ],
      "route_signal": false,
      "description": "Communications reaching the wrong person — a previous occupant, a namesake, a closed account. Indicates a data quality or record-matching defect, and carries data protection risk beyond the contact cost.",
      "example_contact": "You keep sending letters here for someone who does not live at this address.",
      "owner": "Data quality"
    },
    {
      "id": "core_bounced_agents",
      "name": "Bounced repeatedly between agents/teams",
      "category": "Resolution Failures (route signals)",
      "demand_type": "failure",
      "verticals": [
        "cross-vertical"
      ],
      "route_signal": true,
      "description": "The customer has been transferred repeatedly without resolution. Each transfer adds handle time to a contact that has already failed, so the cost is disproportionate. Cluster by the originating queue to find the routing rule at fault.",
      "example_contact": "This is the fourth person I have spoken to about this.",
      "owner": "Routing configuration"
    },
    {
      "id": "core_callback_missed",
      "name": "Promised callback never happened",
      "category": "Resolution Failures (route signals)",
      "demand_type": "failure",
      "verticals": [
        "cross-vertical"
      ],
      "route_signal": true,
      "description": "An agent committed to a callback that did not happen, or happened outside the promised window. Usually a workflow gap rather than an individual failure — the commitment is made verbally and tracked nowhere.",
      "example_contact": "Someone was supposed to ring me back yesterday.",
      "owner": "Contact centre operations"
    },
    {
      "id": "core_no_response",
      "name": "No response to previous message / ticket ignored",
      "category": "Resolution Failures (route signals)",
      "demand_type": "failure",
      "verticals": [
        "cross-vertical"
      ],
      "route_signal": true,
      "description": "A message or ticket went unanswered. In async channels this is the dominant failure mode and the easiest to miss, because the chase contact often arrives on a different channel and is counted as new.",
      "example_contact": "I emailed you last week and nobody has replied.",
      "owner": "Contact centre operations"
    },
    {
      "id": "core_repeat_unresolved",
      "name": "Nth contact on same unresolved issue",
      "category": "Resolution Failures (route signals)",
      "demand_type": "failure",
      "verticals": [
        "cross-vertical"
      ],
      "route_signal": true,
      "description": "The Nth contact about one unresolved matter. The single most useful metric in this taxonomy — if you can count only one thing, count this. Track contacts per case, not cases.",
      "example_contact": "I have called about this three times now.",
      "owner": "Contact centre operations"
    },
    {
      "id": "core_wrong_team",
      "name": "Reached the wrong team / mis-routed",
      "category": "Resolution Failures (route signals)",
      "demand_type": "failure",
      "verticals": [
        "cross-vertical"
      ],
      "route_signal": true,
      "description": "Routing sent the contact somewhere that cannot resolve it. Directly addressable through routing improvement, and the clearest evidence that your routing logic and your resolution capability have drifted apart.",
      "example_contact": "They put me through to the wrong department again.",
      "owner": "Routing configuration"
    }
  ],
  "further": {
    "note": "Industry-specific defects, classified against the same three-way demand model. Categories shown; individual defects ship with the product.",
    "additional_defects": 68,
    "verticals": [
      {
        "vertical": "SaaS",
        "defects": 19,
        "categories": [
          "Onboarding & Setup",
          "Product Bugs & Behaviour",
          "Subscription & Licensing",
          "API & Developer"
        ]
      },
      {
        "vertical": "eCommerce",
        "defects": 20,
        "categories": [
          "Order Status (WISMO)",
          "Returns & Refunds",
          "Product & Order Issues",
          "Checkout & Payment"
        ]
      },
      {
        "vertical": "financial services",
        "defects": 18,
        "categories": [
          "Access & Verification",
          "Transactions & Payments",
          "Disputes & Fraud",
          "Products & Applications"
        ]
      },
      {
        "vertical": "utilities",
        "defects": 11,
        "categories": [
          "Billing & Metering",
          "Supply, Tariffs & Moving",
          "Smart Meters & Priority Services"
        ]
      }
    ]
  }
}
