Decision tracing for Node.js and PythonShow your work.

Every price, approval and AI answer your software gives - traced step by step, readable by your support team, your customers and your auditors.

Get started free

Every decision on the record. Its inputs and outcome, tagged with your own IDs so you can find it later.

A credit assessment traced in the Recount dashboard: its fields, every step with its timing, and a request with its authorization header redacted.
A lender’s branded Recount portal summarising its failed and completed runs over the last 7 days.

Credit decisions

8,412 records, kept for 25 months

Find an application ID
Export CSV
Application IDAmountDecision
APP-554559$20,500Declined
APP-731204$12,000Approved
APP-208817$34,500Referred
APP-660093$8,000Approved
APP-118452$6,500Declined
APP-947310$41,000Approved
APP-385526$15,000Referred
APP-502781$27,500Declined

Whenever software applies rules, someone eventually asks why. Recount records the answer while it happens.

Pricing

Why did this customer get that rate?

Claims

Why was this claim declined?

AI

What did the model actually see?

Billing

How was this charge calculated?

Access

Why was this request blocked?

Compliance

Can you show the auditor how?

01/How it works

A few lines around the logic you already have.

Recount is an SDK for Node.js and Python. It records what your code decided and why, in a form people outside engineering can follow.

  1. 01

    Wrap the decision

    Put a trace around the code that decides - a quote, an approval, a model call. Your logic stays as it is.

  2. 02

    Record what mattered

    Add a span for each step: the data you fetched, the rules you applied, what the model said. Flag anything unusual with an alert. Fields you mark sensitive are removed before anything leaves your app.

  3. 03

    Let anyone read it

    Every trace becomes a step-by-step timeline in the dashboard - for your team, for a customer in their own portal, as a row in a searchable record set, or rolled up into a report.

Full guide
quote.ts
import recount from '@refactorlabs/recount';

await recount.startTrace('Home insurance quote', async () => {
  const res = await recount.fetch('Property data', propertyUrl);
  const property = await res.json();

  const risk = scoreRiskFactors(property);
  recount.addSpan('json', 'Risk factors', { output: risk });
  if (risk.floodZone === 'HIGH') {
    recount.addAlert('Elevated flood risk', 'warn', {
      checks: [{ target: 'Flood loading', value: risk.floodLoading }]
    });
  }

  const quote = buildQuote(risk);
  recount.addSpan('json', 'Final quote', { output: quote });
  return quote;
});

Nine span types, each drawn the way a person would want to read it. Drop-in wrappers for fetch, MongoDB, Anthropic and OpenAI.

  • HTTP
  • Database
  • Table
  • Chart
  • JSON
  • Message
  • LLM
  • Image
  • Group

02/Who reads it

One record. Everyone who needs to see it.

The same trace answers your engineers, your customers and your auditors - each in the view that suits them.

Your team

All plans

The dashboard

Search traces by customer, outcome or any metadata, and step through exactly what happened. Invite anyone outside engineering - support, legal, the CEO - as a read-only viewer.

  • Projects for each service
  • Read-only stakeholder seats
  • Warn and error alerts on any step
  • Compare any two runs

Your customers

Standard & Pro

Branded portals

Give each business you serve a portal in its own logo and colours, showing only its own data, so it can answer its own “why” without opening a ticket.

  • Scoped to one customer’s data
  • Their logo and colours
  • Records they can search and export, on Pro
  • On your own domain with Pro

Your auditors

Standard & Pro

Records and reports

Turn a period of traces into a short PDF report, for your team or shared in a customer’s portal. On Pro, every decision is also kept as a record you can search and export. Every report and export is fingerprinted, so anyone can check a copy is genuine.

  • Four ready-made report templates
  • Record sets and exports on Pro
  • Kept long after traces expire
  • Emailed automatically on Pro

Your AI assistant

Pro

Or just ask.

Connect any MCP client and ask why a quote, price or decision came out the way it did. It reads the trace and explains it in plain English. Access is read-only, so it can never change your data.

  • search_traces
  • get_trace
  • get_daily_summary
  • list_projects
  • list_environments
AI assistantrecount connected
Why did quote QT-20840 come out at $4,200? The customer says that's high for a brick house.

get_trace · Home insurance quote

Two loadings drove it up: the property is in a high flood zone (+18%) and was built in 1985 (+12%). Brick construction (-5%) only partly offset them, and every eligible discount was applied.

03/Built for production

Safe to put in front of real data.

Recount sits in the code paths that matter most, so it’s built to be careful with what it sees.

Redaction

Mark a field sensitive and it’s removed inside your app, before anything is sent.

Encryption

Everything is encrypted in transit and at rest, and records can’t be edited once they’re made.

Retention

Choose how long each trace is kept, up to 365 days. Reports are kept separately: up to a year on Standard, or as long as you need on Pro.

Alerts

Flag any step as a warning or error, along with the values that caused it.

AI calls

Wrap your Anthropic or OpenAI client once to record every prompt, response and token count.

SDKs

Node.js and Python, with the same concepts in both. Free to start, no credit card.

04/Pricing

Start free. Upgrade when it matters.

Every plan includes the dashboard, alerts, redaction and both SDKs. Prices in AUD.

Free

For trying it out

$0/ month

  • 50,000 spans / month
  • 7-day retention
  • 2 projects
  • 2 members
Get started free

Standard

Most popular

For growing teams

$29/ month

  • 1,000,000 spans / month
  • 90-day retention
  • 5 projects
  • 10 members
  • Customer portals$15 per portal / month
  • Verifiable reportsCreate one any time, kept for up to a year
Get started

Pro

For agencies and teams at scale

$99/ month

  • 3,000,000 spans / month
  • 365-day retention
  • Unlimited projects
  • Unlimited members
  • Customer portals$9 per portal / month
  • Custom portal domainServe every portal from your own domain
  • Verifiable reportsEmailed automatically every week or month, kept as long as you need
  • Record setsSearchable records and verifiable exports, kept up to 25 months
  • MCP connector
Get started

Need higher volumes, invoicing or help with a security review? Talk to us.

05/FAQ

Questions, answered.

What is Recount?

Recount is a decision tracing SDK for Node.js and Python. Wrap the code behind a price, approval or AI answer, and Recount records every step - the data it used, the rules it applied, the model calls it made - as a timeline that your support team, your customers and your auditors can read without opening the code.

How is it different from logging, APM or OpenTelemetry?

Those tools show engineers how a system is running: what ran, how long it took and where it failed. Recount records why your software reached a particular result - the data, rules and model calls behind it - in a form your support team, customers and auditors can follow. It works alongside them rather than replacing them.

How much work is it to add Recount?

Usually a few lines. Install the Node.js or Python SDK, wrap the code behind a decision and add a step for each part that matters. HTTP requests, MongoDB queries and Anthropic and OpenAI calls are recorded automatically. Most teams start with one decision, such as quotes or claims, and add more from there.

How do customer portals work?

If you serve other businesses, you can give each of them a read-only portal showing only their own decisions, records and reports, in their logo and colours. Portals are on the Standard and Pro plans, and on Pro they can be served from your own domain, like portals.yourcompany.com.

What can we give auditors?

On the Standard and Pro plans you can generate PDF reports for any period, such as a monthly health summary or an exceptions log. Pro adds record sets, which keep every decision as a searchable row for up to 25 months, plus scheduled reports and exports. Every report and export is fingerprinted, so anyone can check a copy is genuine.

How do you keep our data safe?

Fields you mark as sensitive are removed inside your app, so they never reach us. Everything else is encrypted in transit and at rest, stored in Australia, and can’t be edited once it’s recorded. You choose how long it’s kept and who can see it. If you need a security questionnaire completed, email support@refactor.gg.

Is there a free plan?

Yes. The free plan includes 50,000 spans a month, 7-day retention, 2 projects and 2 team members. No credit card is needed.

Your software already makes the decisions. Now it can explain them.

Free to start. No credit card required.