Silico is a powerful, user-friendly online tool for building working, quantified models of any business challenge or plan. (See our business modelling courses on how to build and use these models). The video clips in this Guide are a reference for how to use the app’s key features. Additional clips will be added. Bookmark this page as a quick-access guide while using the app.
Follow along with this demo to build a simple model of how spending, interest and repayments change the balance on a credit card.
Create and link these items and give them values and calculations to show how things change over 24 months.
Small charts show how every item's values rise or fall over time when you change anything in the model.
Set up scenarios to explore alternative plans to keep your credit card debt under control.
This shows the basic elements of a working model - Variables, Stocks, Flows and the causal links between them.
Go to silico.app. Click 'Create Free Account'. Enter your email and choose a password. Click 'Continue' and you will get a verification email with a link to your account.
A project holds one or more related models that share the same time-scale.
Log in at silico.app - the project-Dashboard opens. Click 'New Project'.
Complete the Project name and description. Click 'Create' and the new project opens.
In the Dashboard, click the [...] options button to edit a Project's name, description and the Readme text that viewers of the Project's models will see. Also archive the Project or make it public, and manage its sharing links. (Sharing can also be accessed in an open Project)
What you see when you open a Project from the Dashboard.
... the workspace where models are built
... the menu bar for Project settings, sharing and versions
... the side-panel showing models, data and other items in the Project, and managing scenarios
... the time-bar for focusing on specific periods and points-in-time within the Project's overall time-scale
Click Project | Settings to set the start-time, end-time and time-units for the model, choosing either real dates or undefined time-units.
A Variable is like a spreadsheet column with its name in the top cell and each period's values running down the cells below. Hit V to add a Variable at the pointer location, then:
... click to select the Variable and open its Inspector panel (see next item)
... give it a name that other items will use in their calculations
... click-drag the Variable's circle-icon to move it
... click on clear workspace to de-select the Variable and close its Inspector panel
Click any item to open its Inspector panel, which shows
... the item's name and optional stub-text
... a Formula to calculate its time-values
... a chart showing how those values change over time
... options to show/hide the item's mini-chart on the workspace
... two data-series - one for 'actual' values that you copy or sketch into the item's chart and one for its simulated values, calculated from the Formula
Click any item to open its Inspector panel
... 'sketch' with the mouse Actual time-series values or copy from another item or the Variable's own Simulated values
... data from a spreadsheet must be unformatted, with no thousands' separators
... Formula-generated Simulated values take precedence over the Actual values and are used to calculate other items
... use '@actual' in the Formula to calculate with the Actual values and define Actual values themselves with a formula
Mini-charts help validate the model and highlight errors and their causes. See how to:
... to set the charts' scale and over-ride auto-scaling
... move or re-size the mini-charts
... hide a mini-chart, but only if the item is a constant or if this part of the model is validated
Objects values are calculated from other items that are linked to them.
Click-hold in the 'cloud' near a source object and drag the arrow until it sticks to the target
Release the button to complete the link : red links show that the source object is not yet used to calculate the target's values
Drag anywhere on the link to re-shape it; double-click to delete
Click the target object to see the linked items ready to be used in its Formula
Each item can have a value, or Formula calculating its values from linked items
Click to open the object's Inspector, which shows any linked items. (Unlinked items can also be used - see #15)
Single-click to add a highlighted item to the Formula and use standard math symbols (Normal calculation-order applies)
Click the [...] symbol to see items already used in the Formula and use them again.
The Formula only sets the initial value for a Stock - see #22-23
Drag an object's icon to move it. Delete to remove the object - double-click to delete links (Formulae still work without links)
Drag around a selection and drag any object icon to move the selection. Copy/paste to duplicate the whole selection, including relative Formulae. TIP: complete and validate whole sections of model before copying to minimise rework and errors
To make models easy to read, align related items vertically, use straight links, keep items close together and hide unnecessary mini-charts
Add documentation at 3 levels:
1. Add Readme explanation for the whole Project - in the Dashboard, click the project options [...].choose 'Project', enter Readme text.
2. Add model Notes, using Markdown formatting (syntax at sdl.re/shmarkdown) - the model's purpose, issues it displays and time-scale
3. Use Objects' Note field to specify the object and its data sources, explain its Formula, and keep old versions of the Formula
Link arrows make clear what-causes-what and make it hard to make reference errors! But you can use unlinked items in a Variable's Formula:
Deleting a link (double-click) still leaves a valid Formula.
Add an unlinked item in a Formula
- type the quote key ["] .. all model items are listed
- type characters you think are in the item you want
- auto-complete displays only matching items
- click the desired item to add it to the Formula
To do this in the middle of a Formula, type " " and position the cursor between the quote marks.
Select an item or drag around a selection - hit Delete. Ctrl-Z undoes any number of changes to the last Save point. Ctrl-Y redoes any steps.
Click the Versions drop-down to go back to previously-saved versions of the project.
Or ... discard the latest edits since the Project was last saved :
- click to return to the Dashboard ignoring the Save reminder
- in the Dashboard, click the Project's [...] options
- click Close, then 'Discard changes'
The Formula and Actuals-sketch are two different instructions for SILICO to work out the Simulated values - so any Formula takes priority. The Actuals are still shown as a dashed line, but both the Variable itself and anything that depends on the Variable use the Formula.
It is often useful to compare results with outcomes driven by Actuals ... in a results-item's Data drop-down, select and copy the Simulated column and paste into the Actuals column.
Use '@actual' in the Formula to calculate with the Actuals values.
Organise your spreadsheet data in a column - and unformatted.
Copy the data-cells only (not any heading-cell)
In a SILICO object
- open the Data drop-down
- select the top cell of the Actual column and paste the data
If there is no Formula, the Simulated values are set to match.
You can also paste small ranges of values into parts of the Actual column.
To copy any object's time-series values to a spreadsheet :
Select the object and open its Data drop-down
Click both Selected and Actual headings then Ctrl-C
Switch to the spreadsheet and paste the data
It is often useful to keep Simulated results for comparison
Select the object and open its Data drop-down
Click the Selected column heading, then Ctrl-C
Click the first cell of the Actual column, then Ctrl-V
The object then displays the result of any change to other items against a dashed line for that saved result.
The Actual time-series for an object is itself an internal Variable - @actual.
With no Formula, the Simulated values are set equal to @actual
Use a Formula like, say, '@actual * 2' to set the Simulated values to 2-times the Actuals.
Optionally, set the Actual values themselves with a Formula
Click the ACTUAL tab above the Inspector chart
Click 'Define using Formula' and enter a Formula
Un-check this option to use the sketched or copied Actuals again
"Stocks" - things that fill up and drain away over time - are fundamental to how the real world works.
Cash today = cash 1 month ago plus cash in minus cash out during the month
Business examples: customers, staff, product range, capacity, debt, inventory, reputation ...
Models must use Stock objects for these items.
Spreadsheets do not make Stocks explicit, but can still calculate correctly - e.g. using columns for 'current cash', cash-in, and cash-out.
Hit the S key - or right-click and click 'Create Stock'
Name the Stock and sketch how its values change over time
The Stock's Simulated values pick its initial Actual value
Link the Stock to the item that depends on it, and give that target-Variable a Formula
The values of that Variable - and everything that depends on the Stock - also reflect the Stock's initial value
... so we have to add the Flows that change the Stock's values over time or force the Stock to behave like a Variable
A Stock's Formula only sets its initial value - all later values depend on the Flows that fill and drain the Stock
Enter a value or calculation in the Stock's Formula
That Simulated value continues throughout the model period
It is best to make the initial value explicit ...
Add a Variable named Initial [Stock] with the initial value
Link the Variable and use it as the Stock's Formula
You may need a model to use a Stock's Actual values, for testing or before you know how Flows changed its values
Select the Stock and click 'Act as Variable'
Delete any Formula for the Stock's initial value
Changing the Stock's Actual values now changes everything that depends on that Stock.
Stocks are only changed by what flows in and out during each period:
Hit F to add a Flow-object to the left of the Stock, name it [Stock] added per [period]. Give it a value or Formula.
Click-hold-drag the arrow head until it sticks to the Stock. Un-check the Stock's 'Act as Variable' switch - the Stock increases by the Flow's rate per period.
Copy and paste the Flow to right of the Stock. Drag the arrow tail to stick to the Stock - the Stock's value changes each period by the net difference between in- and out-flow.
TIP: paste real-world values for historic flow-rates to explain the Stock's changing values.
We often need a fractional loss-rate - customer churn, staff turnover, fractional depreciation ...
Hit V to add a Variable for the fractional (or %) loss rate each period
Link that Variable and the Stock itself to the Out-flow
Give the out-flow a Formula of
Stock * % lost per period / 100
... test different values for the fraction lost per period
We may need numbers of customers, staff, cash etc at period-end ... and performance from period-average Stocks
Add a Variable for net new customers/month .. customers won minus customers lost
Add a Stock for month-end customers = month-start customers + net new customers/month
Copy this Stock for month-average customers = month-start customers + net new customers/month / 2
Calculate a new total sales value from the month-average customers
Most Flows fill a Stock during a period - cash [1st May] = cash [1st April] + net cash in during April. But some flows act immediately
Select the Flow and click the 'Immediate' switch in its Inspector.
The Flow's 'pipe' is shown as a dashed line on the workspace to highlight this option.
Because only specific Flows operate immediately, you may need to show them separately from normal Flows into or out of the same Stock.
30. Add results-charts
Display one or more items on larger charts
Hit the C key to add a Chart and drag links from each item you want displayed
Optionally, add or edit the Christina@strategydynamics.com tile, pull items up and down the chart's display order, move or hide the Chart's legend, and set a scale.
Reshape the Chart with the grey bars that appear when the pointer is at the bottom edge, the right edge, or bottom-right corner
31. Create Scenarios
Scenarios compare the impact of changes to one or more model-items
Click Scenarios at bottom of the left panel. Click '+' to create a Scenario, then [...] to edit its name and colour. (Hit Enter to confirm the name)
Select the Scenario then change the Formula or chart-sketch for one or more model items. (Hit CLEAR FORMULA OVERRIDE to undo any change)
Click a Scenario's 'eye' to show/hide it. Select Base Case to return to model editing.
32. Share a project
You do not 'send files' - you share a project with a link
Click Project | Sharing - then Create share link.
Copy the link to an email, web-page or other channel.
When a recipient clicks the link, the project opens in their browser where they can work on a copy of your project (There is no software to 'install')
The recipient can then save the project to their Silico account
33. Add a data-table to bring data into model objects
Hit the D key to add a data-table, and name it. Double-click to open the table, click '+ to add columns and paste-in data from external sources
Link the data-table to a target item, add the data-table to item's Formula and select the desired column-name to add it between the quote marks ... "data-table" -> "|"
Use the same method to add data-links to an item's ACTUAL series, selecting 'Define using formula'