Quick Reference

Each event type and what it does

Generators

Events that create value.

Type

Behavior

Example(s)

Source

Generates a stream of values.

=Source(100k)
=Source(100k @ 3%)
=Source(100k...110k @ 3%)

Curve

Generates values based on a specified curve shape.

=Curve('s', [365, 1k])

Trend

From a list of values, generates a trended series of values.

=Trend([12.1k,15.5k,13.6k,14.4k])
=Trend([100,300,200,225])

Extend

Extends a list of values using the slope between the last two values of the provided input.

=Extend([1,2,3,10])

Containers

Events that store value.

Type

Behavior

Example(s)

Pool

Collects values with no limit.

=Pool(1.4m)
=Pool(1.4m @ 1%)

Pipe

Relays values downstream.

=Pipe(0)
=Pipe(0, 100)

Bucket

Collects values up to a specified limit; overflow passes downstream.

=Bucket(0, 500)

Tipping Bucket

Collects values up to a limit; empties when limit is reached.

=Tippingbucket(0, 500)

Funnel

Releases a specified amount of value from its store each time it is triggered.

=Funnel(100k, 200)

Gate

Opens on a schedule, releasing all of the value it has collected. Any value not sent downstream is retained.

=Gate(0)

Silo

Stores value in a container; container has a minimum and maximum size. Excess value and overdraws are passed downstream.

=Silo(100, [-50, 1k])
=Silo(100, [-100,])

Wheel

Stores value in a rotating list that follows a calendar.

=Wheel(12)
=Wheel(4, [250, 200, 175, 99])

Base

Stores values in a list; sends the sum of those values to downstream events. Second argument specifies retention by cohort.

=Base([] @ [95, 65, 54, 32, 23]%)

Stack

Stores values in a list; sends the most recently-received value downstream (i.e. LIFO; last-in, first-out).

=Stack([3,2,1])

Queue

Stores values in a list; sends the oldest value it received downstream (i.e. FIFO; first-in, first-out).

=Queue([3,2,1])

Timers

Events to manage time.

Type

Behavior

Example(s)

Wait

Insert a delay.

=Wait(7, 'days')
=Wait(3, 'months')

Block

Close off the flow of values for a certain amount of time.

=Block(3, 'months')
=Block(1, 'year')
=Block(14, 'days')

Transforms

Events to alter a value.

Type

Behavior

Example(s)

Transform

Modify the value received before relaying it downstream.

=T('ceil')
=T('floor')
=T('abs')
=T('round')

=T('liters', 'gallons')
=T('yards', 'meters')
=T('kilometers', 'miles')

Conditionals

Events to test values.

Event

Behavior

Example(s)

If

Test a value and relay it if True.

=If('>', 0)
=If('gte', 5)

Once

Test a value and relay it if True, but only once. False on all subsequent calls.

=Once('>', 100k)

Tiering & Scale

Events to perform matrix multiplication.

Event

Behavior

Example(s)

Tiering

Define a set of tiers and identify which tier an inputted number belongs to.

=Tiering([5, 10, 20])

Scale

Define breakpoints; given a value, split it into those breakpoints.

=Scale([150, 250, 500])

Tunnels

Events to connect models.

Event

Behavior

Example(s)

Tunnel

Connect to an event from a different model.

=Tunnel("SaaS Marketing Model::Total Marketing Budget")


Did this page help you?