Know what every request costs,before you invoice for it.

Usage metering and billing ledgers for indie SaaS.

penrule · march ledger
Customers in the March ledger, with metered usage, draft invoice and state
CustomerMeteredDraft invoiceState
Hollowell Studios142,330 min$711.65Review
Brackwater FM61,240 min$329.52Review
Lantern Hour18,904 min$94.52Approved
Marlow & Finch18,402 min$0.00Drift
Model tokens API calls Audio minutes Seats GB-months Build minutes

Closing the books every month for small software companies like these.

Kettleby Lumaprint oxbow forms Saltmarsh brindle PARCHWORK
01How it works

No invoice leaves until the ledger balances.

Three moves, in the order your money moves. Click through them; each panel is the real screen you will use.

worker / transcribe.ts
Record a usage eventNode 18+, 2.1 kB
import { Penrule } from "@penrule/node";

const ledger = new Penrule(process.env.PENRULE_KEY);

// after a job finishes, once per job
await ledger.record({
  customer: "cus_brackwater",
  meter: "audio.minutes",
  quantity: 42.5,
  idempotencyKey: job.id,
});

Retries are safe: the idempotency key keeps a job from being counted twice.

Written to the ledgerlast 60 s
02The ledger

Built like a ledger, not a dashboard.

Price book

Tiers, minimums and per-seat rules, written down once.

.0060.0050.0040 050k250k1M+
First 50k minutes$0.0060
50k to 250k$0.0050
Above 250k$0.0035
Monthly minimum$29.00
Version 7, effective March 1
A cloth-bound ledger with an indigo spine and a fountain pen resting on a plaster shelf
Append-only

Nothing is edited. Corrections are new lines.

Each line is hash-chained to the one before it, so any number on an invoice traces back to the events that made it.

Drift checks

Undercharging shows up the next morning.

Marlow & Finch metered on a meter with no rule18,402 min, $73.61 unpriced
Greywater Pods still on the trial plantrial ended Mar 14
212 customers balancedchecked 02:04 UTC
Usage pages

Your customers see the numbers you see.

Brackwater FMApril, day 9 of 30
Transcription19,412 of 60,000 min
Diarization1,520 min
Storage39.2 GB
Exports

Approved drafts go wherever you already bill from.

A signed webhook, a REST endpoint and a nightly CSV. Penrule never charges a card; it hands your billing provider a number you have already checked.

webhookRESTCSVParquet
POST /hooks/penrule  invoice.approved
{
  "invoice": "INV-2026-0318",
  "customer": "cus_brackwater",
  "period": "2026-03",
  "total": 39542,
  "currency": "usd",
  "price_book": "v7",
  "ledger_head": "9f3c...e41a"
}
03Customers

Built for people who keep their own books.

Hanna Lindqvist, founder of Kettleby, at her desk in a brick studio with acoustic panels behind her
Kettleby, podcast transcription API
“We were giving away about three percent of our minutes and had no idea which customers it was.”
Hanna LindqvistFounder, Kettleby
Read Kettleby's story
40 minMonth-end close, down from two working days
$1,284Unbilled usage found in the first cycle
0Disputed invoices since moving in March
“The approval gate is the feature. I read every draft for thirty seconds, then I stop thinking about billing.”
Portrait of Rohan MehtaRohan MehtaFounder, Lumaprint
“We left a spreadsheet for Penrule in an afternoon. The first nightly check found a customer billed on the wrong plan.”
Portrait of Adaeze NwosuAdaeze NwosuCTO, Oxbow Forms
“Tile requests, seats and storage on one invoice, with the rule printed beside each line. Billing tickets nearly stopped.”
Portrait of Kenji AraiKenji AraiCo-founder, Saltmarsh Maps
04Compared

Three ways to meter usage.

Comparison of a month-end spreadsheet, an in-house metering system and Penrule
CriterionMonth-end spreadsheetWhat most of us start withBuilt in-houseA table, a cron job, a weekendPenruleA ledger for this one job
Where it shinesFamiliar, free, endlessly flexibleFits your stack and data model exactlyMetering, pricing and approval in one record
Time to a trusted invoiceTwo days, every monthSix to ten weeks of buildOne afternoon to instrument
Catches underchargingOnly if someone noticesIf you write and maintain the checksNightly, per customer, per meter
Audit trailCell history, at bestWhatever you remembered to logAppend-only and hash-chained
Who maintains itYou, at every month-endYou, foreverWe do, or you self-host the same code
CostFree, plus your eveningsAbout a quarter of an engineerFrom $19 a month, flat

Build estimates come from our own first attempt in 2022, and from conversations with 31 teams who moved to Penrule.

05Pricing

One meter, three ways to run it.

Flat prices. We never take a percentage of what you bill.

Estimate your month

Drag to your expected volume. Overage is billed per 100k events, never per invoice.

2.4M
50k500k5M50M
Products to meter
2
Best fit
Studio
$49per month
Choose Studio
14-day trial on every plan, no card until your first approval Export the full ledger any time Prices in USD, excluding VAT
06Security

Your numbers stay yours.

Billing data is the most sensitive data a small company holds. We treat it that way, and we write down exactly how.

Read the security overview

Tamper-evident ledger

SHA-256 chain

Every line carries the hash of the line before it. A daily head hash is emailed to you, so you can prove nothing changed.

Pick where data lives

EU or US

Choose Frankfurt or Virginia when you create a workspace. Ledgers, backups and logs stay in that region.

Keys that can only write

scoped keys

Server keys can record events and nothing else. Reading invoices or changing prices needs a separate, rotatable key.

Self-host the same code

1 container

The Self-host license runs the exact build we run, as one container with Postgres. Your ledger never leaves your network.

07FAQ

Questions founders ask before switching.

Something missing? Write to us. A founder answers, usually the same day.

hello@penrule.app
08About
The four people behind Penrule talking around an oak table covered in printed spreadsheets
Graham, Priya, Kwame and Mei Lin in the Leeds office.

A small tool from a small team.

Two of us ran a usage-billed API for four years. On the last weekend of every month we exported logs, pasted them into a spreadsheet and hoped the formulas still matched the pricing page. They often did not.

Penrule is the tool we wanted then: a ledger that records every billable event once, prices it with a rule you can read, and refuses to invoice until the numbers agree. We are self-funded, we answer support ourselves, and we charge a flat price because metering software should not take a cut of your revenue.

2023Founded in Leeds
4People, no plans to be 40
Self-fundedNo investors to answer to
1 dayLongest support reply

Your first balanced ledger, this afternoon.

Fourteen days free on any plan. We only ask for a card after you approve your first real invoice.

  • Instrument one meter with a single call
  • Import your current pricing page as a price book
  • Reconcile last month before you trust this one
Create your workspaceStep 1 of 2
Enter an email we can send your sign-in link to.
Name the product so we can label your ledger.
Pick a range. A rough guess is fine.
Plan
Studio, billed monthly after your trial. Change plans any time.

Your workspace is ready.

We sent a sign-in link to your inbox. It expires in 15 minutes.