by SubMetrics (LX AI)
SubMetrics — Know your SaaS numbers without a spreadsheet Use it as decision-support: demo mode works without a live key; live runs require configuration. No fabricated metrics, and no claims for SSO/CSV/Slack unless that surface is actually shipped.
Decision-support only — confirm before you publish or act.
I built SubMetrics because I was tired of opening a spreadsheet every Monday just to see if my SaaS business was growing. The tool takes the raw numbers you already have — monthly recurring revenue, average revenue per user, churn — and turns them into a short plain‑English note that tells you what is moving and why it matters.
You paste a simple CSV or type a few numbers into a form. The back‑end runs a deterministic calculation (no hidden models, no fabricated data) and returns a set of core SaaS metrics plus a one‑paragraph diagnosis written in everyday language.
Solo founders, indie hackers, and small teams that ship weekly and need a fast sanity check before they decide to spend on ads, hire, or change pricing. If you already have a bookkeeping system, SubMetrics is a lightweight overlay that does not replace it.
Demo mode exists so you can see the output without configuring any external service. I added it after a few founders told me they wanted to try the tool before committing an API key.
When you toggle demo mode the front‑end bypasses the live AI call and uses a built‑in data set that mimics a typical early‑stage SaaS. The calculations are the same; only the input numbers are preset.
You can either upload a CSV with three columns (month, mrr, paying_customers) or fill in three fields: current MRR, number of paying customers, and average revenue per user. The tool validates that the numbers are positive and that the customer count is not zero.
After you hit “Run demo” you receive a card with MRR, growth, ARPU, LTV, churn, and a short note like “MRR rose 12 % because you added 8 new customers while churn stayed flat.” The note is generated from a rule set that compares the current month to the previous month.
For safety I reviewed the demo flow against the OWASP LLM Top 10 to make sure no prompt injection could leak the preset data.
Live mode requires you to bring your own API key for the language model that powers the plain‑English writer. The key is stored only in the browser’s local storage and never sent to our servers.
In the settings pane you paste the key into a field labelled “AI provider key”. The field is masked as you type. Once saved, the key is used only for the request that turns the metric numbers into sentences.
If you prefer not to type the key each session you can create a JSON file called submetrics.config.json in the project root with the following structure:
| Field | Description | Example |
|---|---|---|
| apiKey | The secret key for your chosen LLM provider | sk‑abcd1234… |
| provider | Name of the provider (openai, anthropic, etc.) | openai |
| model | Model identifier to use for generation | gpt‑4o‑mini |
| temperature | Sampling temperature (0‑2) | 0.2 |
When you click “Run live” the browser reads the CSV or form values, calculates MRR, ARPU, LTV, and churn locally, then sends only those four numbers plus a short prompt to the LLM endpoint. The model returns a sentence; the browser displays it alongside the raw numbers. No raw customer data leaves your machine.
To keep the risk low I aligned the live flow with the NIST AI RMF guidelines: I log the prompt length, I never store the model output, and I show a clear disclaimer that the text is decision‑support only.
If the key is missing or the request fails you see a toast that says “Live run failed – check your key or switch to demo mode”. The metric cards still show the calculated numbers so you can still get value from the tool.
The sentences are not fluff; they are derived from a simple rule set that looks at the direction and magnitude of each core metric.
Each diagnosis contains up to three clauses: a change statement, a driver statement, and a context statement. For example:
When you see a rise in MRR paired with a rise in churn, the tool will note that growth is coming from expansion revenue rather than new logos. If MRR is flat but ARPU is climbing, the sentence will highlight upsell success. If both MRR and churn are falling, the diagnosis will point to a possible product‑market fit issue and suggest looking at activation metrics.
I treat the sentence as a checklist item before I move to the next step in my workflow:
Because the output is deterministic for the demo mode and model‑based only for the language part, you can reproduce the same sentence by feeding the same numbers into the tool again.
I want to be clear about the limits so you do not rely on SubMetrics for something it cannot do.
The tool does not promise that your revenue will go up if you follow the diagnosis. It is a reflection of what has already happened.
SubMetrics does not produce GAAP‑compliant reports, tax documents, or audited figures. Use your bookkeeping system for official records.
There is no built‑in time‑series model that predicts next month’s MRR. If you need a forecast you must export the numbers and run your own model.
The product does not send emails, Slack messages, or webhooks when a metric crosses a threshold. You must check the UI yourself.
Unless those surfaces are explicitly shipped in this build, do not assume they exist. The current version only offers manual input and manual output.
I keep a written checklist next to every release that touches this topic. The list is boring on purpose: name the owner, name the evidence artifact, and name the rollback. If a step cannot produce a file, a ticket, or a log line, it is not a step — it is a wish.
| Signal | What to record | Stop-ship? |
|---|---|---|
| Unexpected write or send | Tool name, args, identity | Yes until gated |
| Missing confirmation on destructive action | Call path and bypass | Yes |
| Untrusted text treated as instruction | Source surface and resulting action | Yes for agent reach |
| Scanner clean, judgment open | Deferred items + owner | Only if core path safe |
submetrics helps with the measurable first pass. Architecture choices, legal sign-off, and customer-facing claims still need a human owner. Treat every checklist row as decision support, not a certificate.
When a prospect asks whether the product "covers everything," I answer with the boundary: automated checks catch known patterns; novel chains and policy judgment still need review. That honesty keeps support load down and keeps the blog aligned with what the product actually does.
If you need a second opinion, pair this write-up with the references below and with your own staging reproduction. Do not skip the reproduction step just because a model wrote a confident summary.
Know your SaaS numbers without a spreadsheet
Operators and builders who need a fast first draft or checklist from SubMetrics.
Yes in explicit Demo mode. Live AI requires a configured key.
No. Outputs are decision-support; you still review before publishing or acting.
Only if those features are implemented in this product build — do not assume them from marketing copy.
Runs may be stored locally under the product's .data/ boundary; treat demos as ephemeral.