Skip to content

Risk

A Risk is something that could harm a Startup or a Portfolio, scored by likelihood and impact, and treated, accepted, or closed.

Properties

PropertyTypeRequiredDescription
scopestringrequiredWhose Risk it is: startup or portfolio, for exposure shared across siblings.
likelihoodintegerrequiredHow likely it is within a year, from 1 (rare) to 5 (expected).
impactintegerrequiredHow much harm it does if it happens, from 1 (minor) to 5 (ends the Startup).
treatmentstringThe chosen response: treat, accept, transfer, or avoid.
ownerRolerequiredThe Role that owns the Risk and its next review.
statusstringrequiredopen, treated, accepted, or closed. A closed Risk is kept forever.
reviewBydateWhen the owner next scores it again.

Object

JSON
{
  "$id": "https://api.sb/ledgerlark.com/risks/risk_1",
  "$type": "Risk",
  "scope": "Example scope",
  "likelihood": 1,
  "impact": 1,
  "treatment": "treat",
  "owner": "role_1",
  "status": "open",
  "reviewBy": "2026-10-22"
}

Relationships

  • A Risk has one Portfolio: Exposure shared across sibling Startups, such as one upstream every sibling relies on. portfolio, inverse risks.
  • A Risk has one Startup: the Risks scored for one Startup, open and closed. startup, inverse risks.
  • A Risk is treated by many Controls: the Controls that lower the Risk. Every Control cites the Risks it treats. treatedBy, inverse treats.

Verbs

  1. createCreates a Risk.
    POST /{namespace}/risksdoRisk.created
  2. getReturns one Risk by id.
    GET /{namespace}/risks/{id}readNo Event
  3. listReturns Risks, newest first, one page at a time.
    GET /{namespace}/risksreadNo Event
  4. updateChanges the given properties of a Risk.
    PATCH /{namespace}/risks/{id}doRisk.updated
  5. acceptAccept records an officer’s signed Decision to carry a Risk untreated until its next review.
    POST /{namespace}/risks/{risk}/acceptdoRisk.accepted
  6. assessAssess scores a Risk’s likelihood and impact from the Startup’s records and sets its next review date.
    POST /{namespace}/risks/{risk}/assessdoRisk.assessed
  7. closeClose ends a Risk that can no longer happen and keeps it, with its scores and treatments, forever.
    POST /{namespace}/risks/{risk}/closedoRisk.closed
  8. treatTreat links a Risk to the Controls that lower it and records the score it should reach.
    POST /{namespace}/risks/{risk}/treatdoRisk.treated

A Risk is never deleted: it ends by Risk.close, and its records stay.

Permissions

Which Access level may call each Verb. One-way Verbs wait their delay window.

Operationowneradminmemberviewer
Risk.createYesYesYesNo
Risk.getYesYesYesYes
Risk.listYesYesYesYes
Risk.updateYesYesYesNo
Risk.acceptYesNoNoNo
Risk.assessYesYesYesNo
Risk.closeYesNoNoNo
Risk.treatYesYesYesNo

Call it

Text
Assess the latest risk.

Example

A Startup relies on one model upstream for every reply. The Risk Analyst records a Risk with likelihood 3 and impact 4. It treats the Risk with a failover Control and sets the next review for the end of the quarter.