STUD.com
← Objectives

Classify · Assess & Decide · Analysis & Finance

Classify an Innovation with the Three Disruption Litmus Tests

A deterministic function that takes the five disruption-test answers for an innovation and returns its disruption class (new-market, low-end, both, sustaining, or not-disruptable) plus which tests it passed, exactly per Christensen's three litmus tests.

You receive: A pure classification function classifyDisruption(answers) -> { class, passedNewMarket, passedLowEnd, passedThirdTest, reason } graded on hidden input cases.

Part of Choose Business Model

What's verified: STUD verifies the classifier reproduces the book's exact boolean decision tree on hidden answer combinations. It does NOT judge whether the buyer answered the five questions truthfully about their real market, nor whether the idea will actually succeed; the verdict is only as good as the inputs.

Opens soon

Cost20 credits
AcceptanceAutomated check against your inputs
ProtectionHeld until verified delivery

This objective is verified and ready. It opens soon, once sign-in and payments are live.

Deliverable interface

The exact vocabulary the automated check enforces: keys, tokens, entry points, and worked examples. Generated from the verification source.

{
 "constants": {},
 "entryName": "classifyDisruption",
 "expectNote": "expect is the comparison-space value (your return value goes through normalize first when one is published)",
 "hiddenCaseCount": 14,
 "hiddenCaseNames": [
  "gen0",
  "gen1",
  "gen2",
  "gen3",
  "gen4",
  "gen5",
  "gen6",
  "gen7",
  "gen8",
  "gen9",
  "gen10",
  "gen11",
  "gen12",
  "gen13"
 ],
 "inputKeys": [
  "le_overserved",
  "le_profit_model",
  "nm_centralized",
  "nm_nonconsumers",
  "third_disruptive_to_all"
 ],
 "normalizeSource": "def _normalize_classify_disruption_litmus_tests(r): return r if not isinstance(r, dict) else {\"class\": r.get(\"class\"), \"passedNewMarket\": bool(r.get(\"passedNewMarket\")), \"passedLowEnd\": bool(r.get(\"passedLowEnd\")), \"passedThirdTest\": bool(r.get(\"passedThirdTest\"))}\n",
 "returnShapes": [
  [
   "class",
   "passedLowEnd",
   "passedNewMarket",
   "passedThirdTest"
  ]
 ],
 "signature": "def classifyDisruption(inp):",
 "submission": "python exposing the entry function; inp is one input object; graded on held-out cases",
 "tier": "calculator",
 "visibleCases": [
  {
   "expect": {
    "class": "new-market",
    "passedLowEnd": false,
    "passedNewMarket": true,
    "passedThirdTest": true
   },
   "input": {
    "le_overserved": false,
    "le_profit_model": false,
    "nm_centralized": false,
    "nm_nonconsumers": true,
    "third_disruptive_to_all": true
   },
   "name": "new_market"
  },
  {
   "expect": {
    "class": "low-end",
    "passedLowEnd": true,
    "passedNewMarket": false,
    "passedThirdTest": true
   },
   "input": {
    "le_overserved": true,
    "le_profit_model": true,
    "nm_centralized": false,
    "nm_nonconsumers": false,
    "third_disruptive_to_all": true
   },
   "name": "low_end"
  }
 ],
 "vocabulary": [
  "1",
  "both",
  "class",
  "le_overserved",
  "le_profit_model",
  "low-end",
  "new-market",
  "nm_centralized",
  "nm_nonconsumers",
  "not-disruptable",
  "passedLowEnd",
  "passedNewMarket",
  "passedThirdTest",
  "sustaining",
  "third_disruptive_to_all",
  "true",
  "y",
  "yes"
 ]
}

Get early access to STUD the day it goes live.