Events & Routes

Learn about the primary components you'll use to create logic in Summit.

Updated over a week ago

What are events?

Events are the building blocks of logic in Summit and represent the flow of value through a simulation. By extension, the language used to describe these events in Summit can be expressed and written as naturally as speaking when you’re standing at a whiteboard to explain a thought process.

Overview of Events in Summit

Additionally, since logic is functional, you can also think of an event as a function (see (1) above). Unlike most languages, Summit processes these functions based on an internal representation of time that is independent of clock time. In other words, events are interpreted by simulation.

When you define an event, you are defining a function that will run at a certain time, for a certain time (duration (3)), and at a certain interval (once or recurring (2)). This makes events excellent encapsulations of business activities that happen on a schedule.

Just like a function can be empty, all fields and attributes of an event are optional. Left blank, an event will execute on the first day of the current month. In subsequent months, the event will update automatically to begin in the current calendar month. Events can also be triggered when linked (using a route) to an upstream event with a defined start date or recurring pattern.

Lastly, and most important, events may also contain a series of instructions written in Summit Event Language, or SEL (rhymes with "cell"). Since events are essentially functions, SEL expressions are primarily responsible for declaring the behavior of the event when it's triggered.

Events may return one and only one value, the same way a spreadsheet cell always evaluates to a single value. In Summit, these return values are always numeric. This numeric value can be sent (passed) to another event using a route.

What is a route?

Routes are displayed as lines and arrows on the canvas and represent the relationship between two events--specifically, routes dictate the return value that should be sent from one event to the next.

Routes have a single attribute: a ratio. This is set to 100% by default, and it specifies the percentage of the return value that should be sent to the next event. So for example, an event with an expression of =500 that has 4 routes to 4 downstream events, each labeled with a 25% will send the number 125 to each event. If the routes are labeled with 100%, the interpreter will send the full 500 to each.

You can change this ratio by clicking on the route you wish to change, highlighting the ratio, and entering the desired value. Press Enter to confirm the change.

How to edit a route in Summit

How do I create an event?

Events can be added to your board by either clicking the Add Event button on the left side of the screen (see below; 1), double-clicking on any empty space on the board (2), or clicking one of the buttons in the Event toolbar to add an event with a pre-filled formula (3).

How to add an event to your board in Summit

How do I edit an event?

Click on the event you wish to modify. The event's border and its corresponding output row will be highlighted to indicate it's been selected.

The event's title, color, or SEL expression can be edited at the top of the screen (see below; 1). Simply click on the corresponding space for each, type (or click) your changes, and press Enter to confirm. You can also edit the event title or SEL expression directly on the event itself by double-clicking either section of the event (top = title; bottom = SEL expression), type your desired text, and press Enter to commit the change.

Additional editable event parameters include the frequency with which the event should occur (e.g. weekly, monthly, yearly, etc) (2) and the event start date or end date (3).

You can also modify an event's display format in the output table with the event selected, such as bold, italics, top-border, and indentation amount (4). You can also choose whether the event displays as a numeric value (#), percentage (%), or currency ($), and how many decimal places the results should include (5). The final button in the display format row allows you to hide or show the event in the output table (6).

How to edit an event format and display in Summit

You can also change how the quantitative output for an event should display at the bottom of the screen. With the event selected, click the Edit metric button and a new window will appear. The Value to use section allows you to toggle between displaying the results in a particular period as a Balance after all events have run OR as the net change in value that flowed through the event during a given period (labeled Flow) (see below; 1).

πŸ”” Note: You have the option to display both the Balance and Flow for an event by first creating a new metric in the output table (click Add metric), selecting the Metric type as Measurement, then the event you wish to display for the Event field, and finally either the flow or balance as the Value to use. You've now effectively duplicated the event, but now with a different view of the activity for a given period.

The output value can also be viewed as an Ending amount, Sum, Minimum, Maximum, or Average for a particular period (2). To learn more about display results, a detailed article about each option is available here.

How to edit an event's displayed results in the output table

How do I move events on the board?

To adjust the position of an event on your board, simply click and hold the event you wish to move and drag the box to its desired location. Release the mouse to pin the event to its new position on the board.

How do I create or edit a route?

To create a route, hover over an event with your mouse, and a (↓) symbol will appear. Click and hold the (↓) and an arrow will display on the board. Drag the arrow to a separate event and release your mouse once the destination event's border is highlighted. This will establish a relationship between the two events.

How to create a route in Summit

The default ratio on the route will display as 100% and will be automatically highlighted (1). Type a number to change the ratio value (0-100%), or leave it unchanged, and press Enter to confirm your entry.

How do I delete an event or route?

To delete an event or route, click on or highlight the component(s) you wish you remove. The event or route will be highlighted to indicate it's been selected. Click the trashcan icon πŸ—‘ on the left side of the screen to remove the selected component(s) from your board.

How do I change the colors of my events?

To change an event's color, first select the event and a color swatch will appear in the top-left corner of the screen, next to the event title. Click the swatch to display the color options available and select your desired color to preview the color change. Press 'Enter' or click in the negative space on the board to confirm your selection.

How do I set the recurring pattern for an event?

To set the recurring pattern for an event, simply select the event and choose a frequency from the dropdown menu at the top of the screen. The standard options include: one-time, daily, weekly, biweekly, semimonthly, monthly (i.e. start of month), end of month, quarterly, semiyearly, and yearly.

πŸ”” Note: The recurring pattern only needs to be set for events at the beginning of your model or simulation. If all other events should follow the same pattern (e.g. monthly), then their patterns should simply be set to Inherit.

How to change an even't recurring pattern

By default, the event will then repeat on the first of the month (unless end of month is selected, in which case the event will trigger on the last day of each month). If your event has a fixed start date, the pattern will repeat on the same day according to the recurring pattern. For example, if the start date is March 15 and the recurring pattern is set to monthly, the event will trigger on April 15, May 15, June 15, etc.

πŸ”” Note: To learn how to customize the recurring pattern on an event, see below.

How do I customize the schedule for a recurring event?

The recurring pattern dropdown menu also includes an option called Custom. Once selected, the fixed start/end date options are replaced with a field called Schedule, which is defined using a syntax called cron expressions.

A cron expression offers significant flexibility when defining a periodic event schedule--down to the minute! This custom schedule is written by editing the 5 placeholder asterisks * * * * * with each position representing a different time parameter, like so:

  • Position 1: Minute (0 - 59)

  • Position 2: Hour (0 - 23)

  • Position 3: Day of the month (1 - 31)

  • Position 4: Month (1 - 12)

  • Position 5: Day of the week (0 - 6) (Sunday to Saturday)

πŸ”” Notes:

  • Leaving the asterisk * unchanged means all values.

  • To set the event to occur only once according to the selected schedule, check the box labeled One-time.

Additionally, there are three special operators that can be used to specify multiple values:

  • , to list multiple values, e.g. 1,2,3 means 1 and 2 and 3

  • - to specify a range of values, e.g. 1-5 is the same as 1,2,3,4,5

  • / to specify intervals, e.g. */5 means every five intervals.

You can combine these again with a comma, so you can do complex expressions as well.

Instead of numbers, you can also use these aliases:

  • For months: JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC

  • For days: SUN, MON, TUE, WED, THU, FRI, SAT

Examples:

  • Every five minutes: */5 * * * *

  • Hourly at the hour: 0 1 * * *

  • Hourly at the half-hour: 30 1 * * *

  • Every working day at 9 AM: 0 9 * * 1-5

  • Each month in Q2: 0 0 1 4,5,6 *


Keep reading: Summit Event Language

Did this answer your question?