Security ROI Calculator Builder for Sales

A no-code tool for sellers and sales engineers to create custom ROI analyses and deliver them as a finished summary prospects can share or drop into a presentation.

Type Open Source Tool
Stack React + Vite (multi-app)
Output PDF + .pptx leave-behind
License MIT

This version of the ROI Calculator Builder is designed for sellers and sales engineers. It makes it easy to create custom ROI analyses for prospects. Instead of generating an embeddable widget, it creates a step-by-step session that collects a few inputs and produces a finished ROI summary that can be emailed or added to presentations.

I recommend sellers walk through the step-by-step session with their prospects, taking inputs from them directly. Sellers can use it to close out a demo or as a standalone step in the sales process. The transparency of doing it interactively builds trust and adds to the credibility of the analysis. Of course, sellers can also use info gathered from discovery to produce the finished ROI summary without prospect participation.

The marketing version of this tool generates an embeddable widget for self-service evaluation on a landing page.

How to use it
  1. 1
    Template Info Set your calculator title, product name, and description. The product name populates automatically in output labels like "Risk Exposure With Acme Shield."
  2. 2
    Branding Set primary color, accent color, and font. Used across the session view and the leave-behind document.
  3. 3
    Outputs & Formulas Review or modify the formula for each output. All formulas are plain JavaScript expressions using input variable IDs. Edit them directly or add new outputs.
  4. 4
    Session Flow Organize inputs into conversation groups. Each group becomes a step in the live session. Assign each input an access level: Prospect, SE, or Locked. This controls exactly what gets shown, when, and to whom.
  5. 5
    Leave-Behind Set the intro line, next steps text, and whether to include the model inputs table in the document. The seller's contact info is entered at the start of each session and appears in the footer.
  6. 6
    Copy URL Click "Copy URL" in the header and distribute it to your sales team. When a seller opens the link, they land directly in the live session view. The entire configuration is encoded in the URL. No server, no login, no sync required.
The three access levels

Every input in the session has one of three access settings. This is the core design decision that makes the tool useful for live selling rather than self-service evaluation.

Level Behavior
Prospect Shown in the session walkthrough. The seller fills this in together with the prospect. These are the numbers the prospect owns and will defend in a later conversation.
SE Shown in a collapsible Assumptions panel. The SE or seller adjusts these before or during the call. They appear in the leave-behind inputs table so the prospect can see what was assumed.
Locked Not shown at all. The default value is baked into the template. Use this for product impact rates and cost assumptions you do not want to negotiate live.

The marketing version of the builder uses a binary visible/hidden toggle. If you import a marketing template into the sales builder, visible inputs map to Prospect and hidden inputs map to SE, so you can reclassify without rebuilding the formulas.

The leave-behind document

At the end of the session, the seller clicks "Build Leave-Behind." The tool generates a formatted document showing the output metrics, the model inputs by group (with locked inputs omitted), the next steps text, and the seller's contact details in the footer.

Sellers can print it directly from the browser as a PDF or download it as a PowerPoint file. The .pptx export uses the PptxGenJS library and includes one title slide with the prospect name and date, one outputs slide with the metric cards, and one inputs slide. The slides use the brand colors set in the builder.

The document URL is shareable. A seller can copy the link from the leave-behind page and email it to the prospect. When the prospect opens it, they see the same numbers from the session. If they want to run different scenarios, they can click back to the session and adjust inputs.

How it relates to the marketing builder

Both tools are part of the same codebase and share a core library: the formula engine, config encoding, and the step navigation, branding, and outputs steps. The marketing builder produces a widget script tag. The sales builder produces a seller session URL. The seller tool is the runtime that both point to when you click "Preview."

The repo is structured as a multi-app Vite monorepo. Each app has its own package.json and builds independently. Shared code lives in core/ and is imported via a @core alias in each Vite config. No npm workspaces required.

Try the Builder

Configure a session template below. Click "Preview Session" in the header to open the seller tool with your template loaded.

The builder is a desktop tool and is not designed for mobile. Visit this page on a laptop or desktop to use it.