by SubMetrics (LX AI)

Last updated: 2026-09-16

What SubMetrics is for

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.

What is SubMetrics?

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.

Core idea

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.

Who it serves

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.

What you get

How demo mode works

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.

No key needed

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.

Input format

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.

Output you see

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.

How live mode works

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.

Setting up the key

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.

Config file

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

Data flow

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.

Error handling

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.

Reading the plain‑English diagnosis

The sentences are not fluff; they are derived from a simple rule set that looks at the direction and magnitude of each core metric.

What the sentences mean

Each diagnosis contains up to three clauses: a change statement, a driver statement, and a context statement. For example:

Examples of common patterns

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.

How to use the note

I treat the sentence as a checklist item before I move to the next step in my workflow:

  1. Read the metric cards to see the raw numbers.
  2. Read the diagnosis to understand the story behind the numbers.
  3. If the story matches my expectation, I note it in my weekly log.
  4. If the story surprises me, I dig into the underlying data (subscription events, payment failures) before making a decision.

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.

What this is NOT

I want to be clear about the limits so you do not rely on SubMetrics for something it cannot do.

No guarantees

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.

Not a replacement for accounting

SubMetrics does not produce GAAP‑compliant reports, tax documents, or audited figures. Use your bookkeeping system for official records.

Not a forecasting engine

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.

Not a notification system

The product does not send emails, Slack messages, or webhooks when a metric crosses a threshold. You must check the UI yourself.

Not a source of SSO, CSV export, or Slack integration

Unless those surfaces are explicitly shipped in this build, do not assume they exist. The current version only offers manual input and manual output.

Operator checklist for SubMetrics overview

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.

Before you change production

While you run the check

After you finish

SignalWhat to recordStop-ship?
Unexpected write or sendTool name, args, identityYes until gated
Missing confirmation on destructive actionCall path and bypassYes
Untrusted text treated as instructionSource surface and resulting actionYes for agent reach
Scanner clean, judgment openDeferred items + ownerOnly 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.

How I explain limits to buyers

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.

References

Frequently asked questions

What is SubMetrics?

Know your SaaS numbers without a spreadsheet

Who should use SubMetrics?

Operators and builders who need a fast first draft or checklist from SubMetrics.

Does it work without an API key?

Yes in explicit Demo mode. Live AI requires a configured key.

Does it guarantee outcomes?

No. Outputs are decision-support; you still review before publishing or acting.

Does it include SSO, Slack, or bulk CSV?

Only if those features are implemented in this product build — do not assume them from marketing copy.

Where does data go?

Runs may be stored locally under the product's .data/ boundary; treat demos as ephemeral.

References

Try SubMetrics