Dashboards & widgets
Build and share your own dashboards from the widget catalog — plus the control bar, smoothing, maximize, and the transparency footer.
Every report and the home page are built from widgets — individual charts, tables, and KPI cards. You can combine the same widgets into your own dashboards, arrange them freely, and share them with your team. The bar at the top of each page is the control bar: it sets the dimensions that every widget on the page reads from.
Your own dashboards
The Dashboards section in the sidebar lists every dashboard you own or that was shared with you. Click New dashboard, give it a name, and you land on an empty page.
Add widgets
Click Add widget in the header. The catalog groups every widget by category — Recurring revenue, Customers & retention, Cash flow, Balance, and Revenue & expenses — with a one-line description each. Add places the widget at the bottom of the dashboard; widgets already on it show as Added. You only see widgets your permissions allow.
Start from a built-in page
Home and most reports have a Copy to dashboard button in the header. It creates a new dashboard with that page's widgets, owned by you — a faster starting point than an empty grid.
Arrange
There is no edit mode — with Editor or Owner access, the dashboard is always adjustable. Hover a widget for its controls: drag it by the handle, resize it from the corner, or remove it with the ×. Every change saves automatically; there is no save button.
Headlines
Click Add text to insert a section headline (with an optional subheadline) between widget groups. Click the text to edit it in place.
Sharing
New dashboards are private — only you see them. As the dashboard's owner, click Share and give each team member one of:
| Access | Can |
|---|---|
| Viewer | See the dashboard. |
| Editor | Change the name, layout, and widgets. |
| Owner | Everything, plus manage access and delete. |
A dashboard needs at least one owner. Company owners additionally see every dashboard in the company under Other dashboards in the sidebar, so no dashboard is orphaned when its owner leaves.
Public share links
Owners can also share a dashboard with people outside the company — investors, advisors, a board — without a SaaSFlow account. In the Share dialog, create a public link: an unguessable URL that opens a read-only view of the dashboard. A dashboard can have several links at once — say, a 7-day link for a prospect next to a never-expiring board link — each managed and revoked on its own. Every link has a name ("Board", "Acme") so you can tell them apart.
Per link you choose:
| Option | Effect |
|---|---|
| Expiry | The link stops working after 7, 30, or 90 days — or never expires. |
| Password | Viewers must enter it before anything is shown. |
| Date range | Whether viewers can change the date period, or only see the range you shared. |
Every link's URL stays visible in the dialog — copy it any time. Regenerate replaces a link's URL (the old one stops working); Revoke turns the link off immediately for everyone.
Viewers see the dashboard with your current account and category filters locked in. They can't open drill-downs or navigate anywhere else. The dialog shows how often the link was opened and when it was last viewed. Widgets you add to the dashboard later stay hidden from viewers until you update the link in the Share dialog.
A few widgets that display account or category names aren't available on public links yet — they're left out of the shared view.
Delete
Owners can delete a dashboard with the Delete button in the header. This can't be undone.
The control bar
The control bar is pinned to the top of the page and stays in place as you scroll. It holds the controls that apply to every widget on the dashboard:
| Control | What it does |
|---|---|
| Date period | The time range. Widgets that intentionally show their own range (e.g. 12-month rolling retention) ignore this. |
| MRR type | Toggles between CMRR (the default) and MRR. See MRR & subscriptions for the difference. |
| Base currency | The currency every amount is converted to. Defaults to your company's base currency. |
| Smoothing | A trailing average applied to noisy ratio metrics — see below. |
Not every control appears on every page. A dashboard only shows the controls that at least one of its widgets actually uses.
Smoothing
Month-to-month numbers like churn rate, LTV, and CAC payback are inherently noisy — one large customer event in a small month can swing them sharply. The Smoothing control replaces each month with a trailing average so the underlying trend stays visible.
Choose None, 3-month, 6-month, or 12-month. The averaging window is computed server-side, and the fetch window is extended by the smoothing length so the leading edge of the chart is averaged against real history, not partial data.
These widgets respond to smoothing:
- Lifetime value (LTV)
- Churn rate
- MRR per customer
- CAC payback period
- Net & gross revenue retention (monthly)
- MRR growth rate
- Rule of 40
Raw MRR, change events, and the 12-month rolling retention widget already represent a stock or a built-in rolling window — extra smoothing on top would be redundant, so they ignore the control.
When smoothing is on, drill-downs become window-based: clicking a month opens the events that fell anywhere inside that month's averaging window, not just the single month, so the numbers in the drill-down match what the chart shows.
Maximize
Every chart and table widget has a maximize icon in its header. Opening it shows the widget on a dedicated full-page view with its own copy of the controls it cares about — useful for presenting a single metric or focusing on detail.
The URL captures the control state, so sharing the link sends the exact view you're looking at. KPI-row cards and similar single-number widgets aren't maximizable.
Metric definitions
Every analytics chart and KPI card has an info button in its header. It opens the metric's definition: what it measures, the formula written out as math, and the notes that matter, like the window an average runs over or where a value is capped.
The formula is filled with live values from your data. A month picker selects any month of the widget's period. Formula parts that are themselves metrics are clickable: follow Lifetime value into CMRR per customer and further until only raw inputs remain, then use the breadcrumb to get back. With smoothing active, the explainer lists every month of the averaging window, each clickable, so the average reconciles with the chart.
Computed metrics without their own drill-down (runway, Rule of 40, Lifetime value, CAC payback, margins, burn multiple, and the growth rates) open the same math when you click the chart. Charts with record drill-downs keep them. On public share links, the definition and formula show without live values.
Transparency footer
Below each chart, a row of pills shows the current value of every control that shaped the data above — the date period, MRR type, smoothing window, and so on. Hover any pill for a tooltip that expands the acronym and explains what the value means.
The footer makes it obvious which controls actually affect the widget. A KPI card that ignores the global date range, for example, says so directly instead of looking like it just isn't reacting.
The pills are also how you override a control for a single widget: click one, pick a different value, and it applies to that widget alone. An overridden pill is tinted, its tooltip names the page default, and a click inside the popover resets it. Overrides are view state that lives in the URL, so the dashboard itself stays unchanged for your team until you send them your link. They work on built-in reports as well as your own dashboards, follow the widget into maximize, and are kept by public share links created from that view.