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
| Property | Type | Required | Description |
|---|---|---|---|
membership | string | How each member belongs: held, owned, contracted, or made. |
Inherited from Collection: 1 property
| Property | Type | Required | Description |
|---|---|---|---|
query | json | The saved query that defines a dynamic Collection. |
Inherited from Thing: 4 properties
| Property | Type | Required | Description |
|---|---|---|---|
id | string | required | The stable identifier, which never changes. |
type | list of Noun | required | The Nouns this Thing is an instance of. |
state | string | The current state in its lifecycle. | |
outside | json | The ids this Thing has in outside tools, one per Integration, so a re-run matches instead of duplicating. |
Object
{
"$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, inversedrawnFrom. - A Portfolio includes startup many Startups: a Startup can sit in many Portfolios, each with its own membership: held, owned, contracted or made.
includesStartup, inverseportfolios. - A Portfolio is managed by one Studio: a Studio allocates attention and money across the members of each Portfolio it manages.
managedBy, inversemanages. - 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, inversetargets. - A Portfolio has many Risks: Exposure shared across sibling Startups, such as one upstream every sibling relies on.
risks, inverseportfolio.
Verbs
createCreates a Portfolio.POST /{namespace}/portfoliosgetReturns one Portfolio by id.GET /{namespace}/portfolios/{id}listReturns Portfolios, newest first, one page at a time.GET /{namespace}/portfoliosupdateChanges the given properties of a Portfolio.PATCH /{namespace}/portfolios/{id}deleteDeletes a Portfolio; its history is kept.DELETE /{namespace}/portfolios/{id}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}/brakeliftLift ends a brake before it expires, and the Actions it held resume their review and delay windows.POST /{namespace}/portfolios/{portfolio}/lift
Permissions
Which Access level may call each Verb. One-way Verbs wait their delay window.
| Operation | owner | admin | member | viewer |
|---|---|---|---|---|
Portfolio.create | Yes | Yes | Yes | No |
Portfolio.get | Yes | Yes | Yes | Yes |
Portfolio.list | Yes | Yes | Yes | Yes |
Portfolio.update | Yes | Yes | Yes | No |
Portfolio.delete | Yes | Yes | Yes | No |
Portfolio.brake | Yes | Yes | Yes | No |
Portfolio.lift | Yes | Yes | Yes | No |
Call it
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.