A product, technical, or business risk
A risk is a possible future event that would harm the work if it occurred, sized by how likely it is and how much damage it would do. A catastrophe that almost never happens and a nuisance that happens constantly can score the same on that pairing.
Formalised risk management grew out of large engineering and defence programmes in the mid-twentieth century, where the cost of surprise was measured in years and budgets. The Project Management Institute codified the modern toolkit in its PMBOK Guide, which defines risk as an uncertain event with a cause and an effect, scored by probability and impact, and tracked in a risk register: a living log of each risk, its likelihood, its impact, its owner, and the planned response. The probability-and-impact matrix that ranks risks high, medium, or low comes straight from this tradition.
Taleb's work on extreme events adds a standing caveat to that matrix: it is calibrated for risks whose probability can be estimated from prior data, and it systematically underweights events that are genuinely novel — low probability not because they are inherently rare but because no comparable event exists in the historical record to anchor the estimate. By that reading, a risk registerRisk RegisterProgram ManagementA register of project risksView reference → that ranks only known threatsThreatSecurityA specific security threatView reference → is complete for execution risk and incomplete for the tail of possibilities that would actually end the product.
Product practice reframed the idea for software, where the dominant risks are not schedule slips but building the wrong thing. Marty Cagan's four big product risks name the categories that actually kill products. Value risk asks whether anyone will choose to use or buy it. Usability risk asks whether they can work out how. Feasibility risk asks whether engineering can build it with the time, skills, and technology on hand. Viability risk asks whether it works for the wider business: legal, finance, sales, brand. Cagan's argument, refined since the first edition of Inspired, is that discovery exists to retire all four before a team commits to delivery, and that viability is the one product managers most often underestimate.
The two traditions sit at different altitudes. The risk register manages execution risk across a project; the four big risks structure discovery risk for a product. The field has converged on a shared move: name the risk explicitly, attach an owner, and decide the response (avoid, mitigate, transfer, or accept). A named and owned risk stops being ambient anxiety and becomes a managed item.
Duke's argument in Thinking in Bets is relevant to what that probability number means in practice: assigning a likelihood is not a prediction but a bet, and a team that confuses a good risk decisionDecisionStrategyA recorded decision with context, rationale, and consequencesView reference → with a good outcomeOutcomeStrategyA desired business or user outcomeView reference → will systematically learn the wrong lessons. A risk that was accepted at low probability and then materialised was not necessarily misjudged; the register should record the reasoning at the time, not be rewritten in hindsight.
A health-tech team is shipping a featureFeatureProduct SpecificationA product capability or featureView reference → that infers a patient's medication schedule from free-text notes. They log three risks. A model misread that produces a wrong schedule scores low likelihood but severe impact, so it tops the register; the response is a mandatory human confirmation step before anything is saved. A regulatory risk around storing inferred clinical data scores medium and medium; the owner is the compliance lead, with a deadline two sprints out. A third risk, slow inference latency, scores high likelihood but low impact, so they accept it and add a loading state. The point of the register is what it lets them ignore: latency feels urgent in standups, but it is the cheapest of the three to live with.
In the Unified Product Graph, a risk sits in the compliance region as a node that exposure and governance both connect to. A product carries its live threats through Productexposed toRiskhierarchy, and product_exposed_to_riskRisk RegistercontainsRiskhierarchy gives the PMBOK register a structural home where every entry is queryable, with none of it buried in a spreadsheet tab. Governance links inward through risk_register_contains_riskCompliance FrameworkidentifiesRiskhierarchy, so the controls a framework demands trace to the specific risks they answer. The consequence side is modelled too: compliance_framework_identifies_riskRiskmanifests asTechnical Debt Itemcross-domain capturesCaptureWorkspaceA dated, hashed rendition of something already in the graph: a screenshot of a surface, a PDF of a report, an export of a canvas. The subject stays a graph node; the capture records what it looked like at one moment, and the content hash says whether it still does.View reference → the moment an accepted risk becomes real debt, turning the register from a list of fears into a record of what the product has actually taken on. Two edges added at 0.35.0 close the exposure loop. risk_manifests_as_technical_debt_itemRiskthreatensany entitycross-domain names what the risk puts at stake, and risk_threatens_nodeRiskmitigated byany entitycross-domain names the decisions, features and experimentsExperimentValidationA test designed to validate a hypothesisView reference → that answer it. Both keep a typed risk on the source side and leave the target open, registered together as the polymorphic "risk exposure" family, because what a risk threatens and what retires it are genuinely unbounded sets; enumerating either would be writing down today's corpus and calling it the vocabulary. Ownership rides the existing risk_mitigated_by_nodeany entityowned byStakeholdercross-domain, so a risk with a named owner is a query rather than a convention. The properties moved in the same releaseReleaseProduct SpecificationA shipped version of the productView reference →: the likelihood field is now node_owned_by_stakeholderlikelihood, reading the new likelihood_5 ladder rather than the epistemic confidence_5, which says how sure the assessor is and not how likely the event is; and impact resolves to severity_5 on a risk through the per-entity scale layer, because impact means magnitude of benefit elsewhere in the graph and severity of harm here.
Rare Would be surprising; no known precedent
Blocker Cannot accomplish goal
Type-specific fields on BaseNode
risk_typeenumDomain the risk belongs to. The single kind axis for `risk`: there is no second classification vocabulary. `program` added in v0.26.0 so the retired `risk_item` (Program Management) type has a home on the canonical `risk` after consolidation, rather than a parallel `risk_domain` field free to drift from this one.
likelihoodassessmentHow likely this risk is to materialise. Rated on `likelihood_5` (Rare → Almost certain).
Canonical name since 0.35.0, superseding `probability` below. Three reasons, in order of weight. (1) `probability` was one name for two incompatible types (`UPGAssessment` here, a bare `number` on `forecast.probability`), and `PROPERTY_SCALE_MAP` is keyed by name alone, so a sales percentage and a risk judgment resolved to the same ladder. (2) `likelihood` is already the spec's own word: the RISK_ITEM lifecycle prose says "Likelihood and impact have been evaluated", and `threat.likelihood` has been a `UPGAssessment` all along: one name, one type, one ladder. (3) ISO 31000 says likelihood. The ladder moved with the name: `likelihood_5` is new in 0.35.0 because no probability ladder existed and `confidence_5` is epistemic. It says how sure the assessor is, not how likely the event is.
impactassessmentSeverity of consequences if the risk materialises. Rated on `severity_5` (Mild inconvenience → Blocker), NOT the benefit-framed `impact_5`.
The ladder is set by `PROPERTY_SCALE_MAP_BY_ENTITY.risk.impact` (0.35.0), the per-entity override layer. `impact` legitimately means magnitude of BENEFIT on discovery and market entities, where high is good; on a risk it means severity of harm, where high is bad. Sharing `impact_5` rendered a catastrophic risk green.
mitigationstringPlanned or implemented mitigation strategy, as prose.
Prose only. A structured list of mitigating ACTIONS is a set of edges: `risk_mitigated_by_node` (0.35.0), pointing at the decisions, features and experiments that actually do the mitigating; a string array of them is unqueryable by construction. Likewise, what the risk puts at stake is `risk_threatens_node`, not a scope-list property.
idstringrequiredUnique identifier (UUID)
typeNodeTyperequiredDiscriminator for the entity type
titlestringrequiredDisplay name
descriptionstringOptional detailed description
statusstringLifecycle status
tagsstring[]Freeform tags for filtering
5 phases, initial: identified · template: RISK_ITEM
4 edge types connected to this entity.
product_exposed_to_riskcompliance_framework_identifies_riskrisk_register_contains_riskrisk_manifests_as_technical_debt_item4 frameworks use this entity type.