Quick Reference

Each event type and what it does

Generators

Events that create value.

TypeBehaviorExample(s)
SourceGenerates a stream of values.=Source(100k)
=Source(100k @ 3%)
=Source(100k...110k @ 3%)
CurveGenerates values based on a specified curve shape.=Curve('s', [365, 1k])
TrendFrom a list of values, generates a trended series of values.=Trend([12.1k,15.5k,13.6k,14.4k])
=Trend([100,300,200,225])
ExtendExtends 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.

TypeBehaviorExample(s)
PoolCollects values with no limit.=Pool(1.4m)
=Pool(1.4m @ 1%)
PipeRelays values downstream.=Pipe(0)
=Pipe(0, 100)
BucketCollects values up to a specified limit; overflow passes downstream.=Bucket(0, 500)
Tipping BucketCollects values up to a limit; empties when limit is reached.=Tippingbucket(0, 500)
FunnelReleases a specified amount of value from its store each time it is triggered.=Funnel(100k, 200)
GateOpens on a schedule, releasing all of the value it has collected. Any value not sent downstream is retained.=Gate(0)
SiloStores 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,])
WheelStores value in a rotating list that follows a calendar.=Wheel(12)
=Wheel(4, [250, 200, 175, 99])
BaseStores 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]%)

Requests

Events to fetch remote data.

🚧

Documentation for Requests is in progress.

TypeBehaviorExample(s)
RequestMake a GET or POST request for JSON or CSV data.=Request('get', 'https://api.example.com/x.json')
QuerystringParse and store a querystring.=Querystring('lat=40&lon=-101')
ParserUse a JSONPath expression to parse the output of a Request.=Parser('$..coordinates.lat')

Timers

Events to manage time.

TypeBehaviorExample(s)
WaitInsert a delay.=Wait(7, 'days')
=Wait(3, 'months')
BlockClose 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.

TypeBehaviorExample(s)
TransformModify 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.

EventBehaviorExample(s)
IfTest a value and relay it if True.=If('>', 0)
=If('gte', 5)
OnceTest a value and relay it if True, but only once. False on all subsequent calls.=Once('>', 100k)

Tiering & Scale

Events to perform matrix multiplication.

EventBehaviorExample(s)
TieringDefine a set of tiers and identify which tier an inputted number belongs to.=Tiering([5, 10, 20])
ScaleDefine breakpoints; given a value, split it into those breakpoints.=Scale([150, 250, 500])

Tunnels

Events to connect models.

EventBehaviorExample(s)
TunnelConnect to an event from a different model.=Tunnel("SaaS Marketing Model::Total Marketing Budget")