Do you have a particular revenue stream, acquisition method or expense not met by the base templates within Sturppy? You can create custom logic to model your unique business case.
The Sturppy engine
Sturppy is built on top of a node system. You can think of an individual node like a building block or Lego. Just like Legos, nodes come in different shapes and colors (4 basic types) and can be connected together to build incredibly complex objects. In our case, the nodes are combined to create what we call flows.
Flows represent a set of business logic. Taking inputs, applying computation to them, and eventually calculating an output.
Here's a snapshot of what our nodes look like:
When you select a revenue stream, acquisition channel, or an expense, we automatically create the underlining flow for you, pulling in all the correctly shaped nodes, so you don't have to create a flow from scratch, like you would with Excel.
This low-code approach allows for easy understanding and quick creation without sacrificing details or complexity.
In Sturppy, we use pre-built templated flows with the hopes of capturing your modeling requirements for your business perfectly...but of course a templated approach is not always perfect. There's always going to be exceptions and template breakers out there.
If you need to create a custom piece of logic you can edit an existing flow or create a new one from scratch.
How to edit a flow
Every time that you see this icon (flow editor):
It means that you can go inside the flow of whatever you are looking at and edit it as much as you want. You'll usually find this icon at the top-right of the top menu in Sturppy, but sometimes, it can be seen in tables if each row can be edited as a single flow.
How to create custom revenue streams
To create a custom revenue stream, all you need to do is create a new revenue stream starting from a template that is closest to the outcome that you want to achieve (or you can start with the Generic template that is the easiest to edit).
Go to 💰 Revenue > Click the "Add Revenue Stream" button > Then click on the edit flow icon and start changing it as much as you want. You can then modify the node by clicking the flow editor icon, injecting new nodes or modifying existing ones. More on using the flow builder below
The nodes that you add or modify will automatically be applied to the inputs that you see in the normal visualization of Sturppy.
Quick example of creating a custom revenue stream:
Let's say I want to remove the "Starting customers" node from the flow since my business has no current customers...
We'd hit the flow editor icon at the top right, identify the "Starting customers" node
Right click the node and select "Delete"
Now if we go back to the regular graph and open the editing drawer, you'll no longer see the "Starting Customers" Field.
How to create custom acquisition channels
To create a custom acquisition channel, all you need to do is create a new acquisition channel starting from a template that is closest to the outcome that you want to achieve. Then click on the edit flow icon and start changing it as much as you want.
The nodes that you add will automatically be applied to the inputs that you see in the normal visualization of Sturppy.
How to create custom expense items
To create a custom expense, you first need to decide if it is either a COGS or an SG&A, then navigate to the corresponding page (either [project]/Expenses/SG&A or [project]/Expenses/COGS). Then you will find a Custom [SG&A | COGS] at the top-right menu that will bring you to a dedicated page. Here you will be able to add new custom expenses and by clicking on the edit flow icon you will be able to create your own custom logic.
The expense items that you add will automatically be pulled into your total COGS and SG&A.
🚨 Rules when creating a custom flow
We want to give you as much power as possible when creating and customizing flows, but from great power, comes great responsibility🕷.
This means that you could create some bad logic that will ultimately break the correctness of your financial model, like double-counting revenue, expenses, and other bad things. We don't try to enforce many rules on custom flows, because we want to leave you the ability to be creative and create powerful flows and custom logic. The only rules that you will always need to respect are:
Each flow must have one and only one canonical output. A canonical output is an output node that doesn't have any additional outputs. Visually, this means that no arrows are going out from that node.
Types of nodes
There are four types of basic nodes:
Input: these are the blue nodes. These are your assumptions where you would insert the driving values of your model.
Formula: these are the green nodes. These are used for special operations like you would use in Excel. The formulas that you can choose from are: prev. month, sum, average, round, etc...
Operation: these are the purple nodes. Those nodes take two inputs and combine them with the selected operation. addition, subtraction, division, and multiplication.
Output: these are the orange nodes. Those are used as outputs for your models when you need to show a computed value or need to pull a value in a chart.
Here is a link to a table outlining all flow types and their functions
Using the flow builder
Using the flow builder is pretty intuitive and easy. Add nodes via the "Add new node" button on the top-left, and connect them to create the logic that you are looking for.
From the menu you can also check some prebuilt templates to help you speed up your creation process and search for nodes that you have in other flows to reference them without needing to copy them manually each time.
To connect nodes you need to click and drag from an output handle:
to an input handle. Output handles are usually situated on the right of a node, while input handles are usually situated on the left of a node. While dragging an arrow will follow your cursor and the handle color will change to green if the connection is allowed or to red, if the connection is not allowed.
You can right-click a node to open a context menu for some additional actions specific to each node. With this, you can delete, copy and do other things, like marking nodes as customers, and expenses and hiding them from the form (if you just need the node for some calculation).
You will always find some shortcut actions in the top-right of the flow builder to remind you of ways to interact quickly with the nodes once you get the hang of it.
To make it easier for you to create custom flows, we have provided a set of prebuilt flows that are useful when trying to create custom functionality in the app, like custom expenses or revenues. These flows are handled by Sturppy and updated automatically so you don't need to worry about them, but can use to build on top of them:
All acquisition channels: this is a flow that will always output the total number of new leads
Total revenue: the total revenue
Total COGS: the total COGS cost
Total SG&A: the total SG&A cost
Total cost employees: the total cost for all the employees
Total count employees: the total number of employees
Total Expense: the total of the expenses
All Customers: the total number of customers
You can import the output of these flows in your own flow and build from them to create amazing custom logic.