Status

System status

Current status, twelve months of availability including the three months we missed target, and every customer-affecting incident with its cause and its fix. A reliability figure you cannot check is marketing.

Subscribe to incident notices

Customers are notified directly. Anyone else can ask to be added to incident and maintenance notices.

1 / 3
99.9% target, publishedMissed months shownPost-mortems for every incident
All systems operationalNo active incidents. Last checked continuously.
99.938% trailing 12 months
Operational
ApplicationWeb interface and API
Operational
Ledger postingTransaction writes and period close
Operational
Reporting & read modelQueries, dashboards, and exports
Operational
ConnectorsAccounting, banking, payroll, CRM sync
Operational
AgentsAutomated workflow processing
Operational
Email deliveryNotifications and scheduled reports
Monthly availabilitytarget 99.9%
99.98%Sep 25
99.95%Oct 25
99.99%Nov 25
99.87%Dec 25
99.96%Jan 26
100%Feb 26
99.72%Mar 26
99.94%Apr 26
99.99%May 26
99.97%Jun 26
99.91%Jul 26
99.98%Aug 26

2 of 12 months fell below the 99.9% target (Dec 25, Mar 26). Worst month: 99.72%. We publish these because a reliability figure you cannot check is marketing.

Incident historylast 12 months
Mar 12, 2026Degraded3h 41m

A read-model rebuild consumed more database connections than provisioned, slowing queries and reports. Ledger posting was unaffected throughout. Fixed by isolating rebuild capacity and adding a connection ceiling.

Dec 3, 2025Degraded1h 52m

A connector deploy dropped webhook deliveries from two payment providers. No data was lost — the replay window recovered every missed event once the endpoint recovered. Fixed by gating deploys behind delivery-queue drain.

Jul 22, 2026Partial47m

Agents paused automatically under elevated model-provider latency, as designed. User actions and posting continued normally. No customer action was required.

Under failure

What breaks first, and in what order.

Everything fails eventually. The design question is what fails first and what that costs you, and most vendors avoid answering it because answering requires admitting a failure model exists.

1. Agents pause

Automated processing stops first. Losing a day of coding suggestions is an inconvenience; a half-posted close is an incident. This ordering is deliberate.

2. Background processing

Scheduled reports, exports, and non-urgent syncs queue rather than fail. They resume in order once capacity returns.

3. Writes

New transactions are refused rather than partially accepted. Nothing posts halfway — every ledger write is atomic and idempotent.

4. Reads last

Reading your data survives longest. Ledger posting is the last capability to go and the first restored.

How availability is measured

Availability is measured against successful request handling, not against whether a server responds to a ping. A system that returns errors quickly is unavailable, and measuring it any other way produces a number that flatters the vendor and misleads the customer.

A month is measured from the first to the last day, and a partial outage counts proportionally: if 30% of requests failed for an hour, that is eighteen minutes of downtime rather than none.

99.9% allows about 43 minutes a month. If your operation cannot tolerate that, say so during evaluation rather than after.

What counts as an incident

Anything customer-affecting, including partial degradation. The March 2026 entry was a slow-query incident where posting worked normally throughout — we still logged it, published it, and wrote it up, because a customer whose reports were slow experienced an incident regardless of what our infrastructure dashboard said.

Agent pauses under provider latency are recorded as partial incidents even though they are the system behaving as designed. If automation you were relying on stopped, you should be able to see that it stopped and why.

Recovery objectives

  • Recovery point objective: 5 minutes. Continuous replication, so a worst-case failure loses at most five minutes of writes.
  • Recovery time objective: 4 hours for a full regional failure.
  • Restores are exercised quarterly against production-sized data. An untested backup is a hypothesis, and the moment you discover it was wrong is the worst possible moment.

Notification

Customers are notified directly for any incident affecting their tenant, not left to discover it on this page. For anything customer-affecting we publish a post-mortem with the cause and the fix rather than a note about elevated error rates.

Scheduled maintenance is announced in advance and performed outside United States business hours where practicable. Emergency maintenance may happen without notice where security or data integrity requires it, and is written up afterwards.

Why we publish the bad months

Three of the last twelve months fell below target, and the worst was 99.72%. Showing that costs us in evaluations against vendors who publish a single flattering figure with no method behind it. It also means that when we say a month was clean, it is checkable — which is the only thing that makes the good months worth anything.

Questions

Common follow-ups.

Is this page automated?
Component status and the availability history are generated from monitoring data. Incident write-ups are written by a person, because a generated incident summary tells you an error rate moved rather than what went wrong.
What does 99.9% actually allow?
About 43 minutes of downtime a month. That is what the number means, and if your operation cannot tolerate it we would rather you said so during evaluation than after.
Why show months you missed?
Because a reliability claim you cannot check is worthless. Three of the last twelve months were below target and the worst was 99.72%. Showing that is what makes the clean months meaningful.
How am I notified during an incident?
Customers are contacted directly if their tenant is affected, rather than being left to find this page. Anyone else can subscribe to incident and maintenance notices.
What happens to my data during an outage?
Nothing posts halfway. Every ledger write is atomic and carries an idempotency key, so a retry updates rather than duplicates. Worst-case data loss is five minutes under continuous replication.

Ask us the uncomfortable questions.

Recovery objectives, degradation behaviour, exit path. We would rather answer them now than during an incident.