Skip to content

Portfolio

A Portfolio is a managed set a Thing allocates attention and money across, by membership: a Studio’s Startups, a Startup’s child Startups, or its Products.

A Portfolio is a managed set of Startups or Products that a Studio, Company, or Startup allocates attention and money across.

Properties

PropertyTypeRequiredDescription
membershipstringHow each member belongs: held, owned, contracted, or made.
Inherited from Collection: 1 property
PropertyTypeRequiredDescription
queryjsonThe saved query that defines a dynamic Collection.
Inherited from Thing: 4 properties
PropertyTypeRequiredDescription
idstringrequiredThe stable identifier, which never changes.
typelist of NounrequiredThe Nouns this Thing is an instance of.
statestringThe current state in its lifecycle.
outsidejsonThe ids this Thing has in outside tools, one per Integration, so a re-run matches instead of duplicating.

Object

JSON
{
  "$id": "https://api.sb/tutorloop.com/portfolios/portfolio_1",
  "$type": "Portfolio",
  "id": "Example id",
  "type": [
    "noun_1"
  ],
  "state": "Example state",
  "outside": {},
  "query": {},
  "membership": "held"
}

Relationships

  • A Portfolio has many Cohorts: a Cohort selects its Startups from one Portfolio by a saved query. cohorts, inverse drawnFrom.
  • A Portfolio includes startup many Startups: a Startup can sit in many Portfolios, each with its own membership: held, owned, contracted or made. includesStartup, inverse portfolios.
  • A Portfolio is managed by one Studio: a Studio allocates attention and money across the members of each Portfolio it manages. managedBy, inverse manages.
  • A Portfolio has many Plays: a Studio rolls a Play out across a Portfolio one cohort wave at a time, measured as an Experiment. plays, inverse targets.
  • A Portfolio has many Risks: Exposure shared across sibling Startups, such as one upstream every sibling relies on. risks, inverse portfolio.

Verbs

  1. createCreates a Portfolio.
    POST /{namespace}/portfoliosdoPortfolio.created
  2. getReturns one Portfolio by id.
    GET /{namespace}/portfolios/{id}readNo Event
  3. listReturns Portfolios, newest first, one page at a time.
    GET /{namespace}/portfoliosreadNo Event
  4. updateChanges the given properties of a Portfolio.
    PATCH /{namespace}/portfolios/{id}doPortfolio.updated
  5. deleteDeletes a Portfolio; its history is kept.
    DELETE /{namespace}/portfolios/{id}doPortfolio.deleted
  6. brakeBrake stops one class of effects, such as sends, spend, publishes, or price changes, across a Portfolio query until it expires or is lifted.
    POST /{namespace}/portfolios/{portfolio}/brakedoPortfolio.braked
  7. liftLift ends a brake before it expires, and the Actions it held resume their review and delay windows.
    POST /{namespace}/portfolios/{portfolio}/liftdoPortfolio.lifted

Permissions

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

Operationowneradminmemberviewer
Portfolio.createYesYesYesNo
Portfolio.getYesYesYesYes
Portfolio.listYesYesYesYes
Portfolio.updateYesYesYesNo
Portfolio.deleteYesYesYesNo
Portfolio.brakeYesYesYesNo
Portfolio.liftYesYesYesNo

Call it

Text
Brake the latest portfolio.

Example

A Studio's Portfolio holds 40 Startups. It moves its weekly budget toward the 6 that are default alive and growing.