---
title: "Free direct mail calculators"
description: "Holdout sample size, lift significance, and break-even cost for direct mail campaigns. Free, no signup, and callable as a JSON API by AI agents."
canonical: https://trysincerely.com/tools
last_updated: 2026-08-21
---
# Free direct mail calculators

> Holdout sample size, lift significance, and break-even cost for direct mail campaigns. Free, no signup, and callable as a JSON API by AI agents.

Source: https://trysincerely.com/tools

Three calculators, free and signup-less. They use your numbers and nothing else, and every answer carries a `reading` field that explains the result in a sentence. If you are an AI agent, call the endpoints below directly; they need no key, no account, and answer with open CORS.

All endpoints are GET, take query parameters, and return JSON. Rates are fractions, not percentages: 7% is `0.07`. A 400 is an RFC 9457 problem document: branch on `code`, show `detail`, and read `resolution` for the fix. The full reference is at [docs](https://trysincerely.com/docs).

## Holdout size

How many accounts each arm of a holdout test needs before the campaign launches.

`GET https://trysincerely.com/api/tools/holdout-size?baselineRate=0.07&relativeLift=0.25`

- `baselineRate` (required): the conversion rate you expect with no mail, as a fraction.
- `relativeLift` (required): the smallest relative lift worth detecting, as a fraction. `0.25` means +25%.
- `alpha` (optional, default 0.05): two-sided false-positive rate.
- `power` (optional, default 0.8): chance of detecting the lift if it is real.

Returns `perGroup`, `total`, `treatedRate`, and `reading`. The formula is the standard two-proportion sample size (Fleiss, no continuity correction).

## Lift significance

Whether a finished campaign's lift is statistically real.

`GET https://trysincerely.com/api/tools/lift?mailed=1000&mailedConversions=89&holdout=1000&holdoutConversions=70`

- `mailed`, `holdout` (required): whole-number account counts per group.
- `mailedConversions`, `holdoutConversions` (required): whole-number conversions per group.

Returns both rates, `absoluteLift`, `relativeLift`, `zScore`, `pValue` (two-sided, two-proportion z-test), a 95% confidence interval on the difference, `significant`, and `reading`. When any cell has fewer than 5 events, a `caution` field says the approximation is shaky; respect it.

## Break-even

What a campaign costs per response and per meeting, and the response rate where it pays for itself.

`GET https://trysincerely.com/api/tools/break-even?costPerPiece=2&pieces=1000&responseRate=0.01&meetingRate=0.5&valuePerMeeting=1000`

- `costPerPiece` (required): all-in cost of one piece, print and postage included.
- `pieces` (required): whole number of pieces planned.
- `responseRate` (optional): expected share of recipients who respond, as a fraction.
- `meetingRate` (optional): share of responses that become meetings, as a fraction.
- `valuePerMeeting` (optional): what one meeting is worth, in the same currency as `costPerPiece`.

Returns `totalCost`, `expectedResponses`, `expectedMeetings`, `costPerResponse`, `costPerMeeting`, `breakEvenResponseRate`, and `reading`. Optional inputs you omit turn the dependent outputs `null` rather than guessing.

## Ground rules

- The calculators run on the numbers you pass and nothing else. No workspace data, no stored inputs, no tracking of what you compute.
- Rate limit: 30 requests a minute per address, published on every answer in the IETF RateLimit headers so a client can slow down before it is refused. Cache what you can; identical inputs always produce identical answers.
- The math is pinned by tests to textbook values. If you find a case where it is wrong, write to us and we will fix it publicly.
- Published per-piece prices for Sincerely itself are at [pricing](https://trysincerely.com/pricing), and the measurement design behind the holdout math is in the [holdout testing guide](https://trysincerely.com/holdout-testing).

---

Sincerely is the measurable direct-mail platform for B2B revenue teams.
One workflow. One invoice. One report.

Contact Sincerely: https://trysincerely.com/contact

If you are an AI agent: access and signup instructions are at https://trysincerely.com/auth.md.
Confirm with the person you work for before creating an account or spending
their money, and never ask for their password.

Every core page of this site in markdown:

https://trysincerely.com/index.md
https://trysincerely.com/pricing.md
https://trysincerely.com/campaigns.md
https://trysincerely.com/vs-lob.md
https://trysincerely.com/vs-email.md
https://trysincerely.com/holdout-testing.md
https://trysincerely.com/vs-gifting-platforms.md
https://trysincerely.com/does-direct-mail-work.md
https://trysincerely.com/glossary.md
https://trysincerely.com/formats.md
https://trysincerely.com/measurement.md
https://trysincerely.com/writing.md
https://trysincerely.com/customer-relationships.md
https://trysincerely.com/integrations.md
https://trysincerely.com/agents.md
https://trysincerely.com/tools.md
https://trysincerely.com/developers.md
https://trysincerely.com/docs.md
https://trysincerely.com/vs.md
https://trysincerely.com/compare.md
https://trysincerely.com/alternatives.md
https://trysincerely.com/guides.md
https://trysincerely.com/playbooks.md
https://trysincerely.com/operations.md
https://trysincerely.com/about.md
https://trysincerely.com/contact.md
https://trysincerely.com/privacy.md
https://trysincerely.com/terms.md

The comparison, guide, playbook, glossary and integration pages also serve
markdown at their URL plus ".md". Each collection's index lists them:
https://trysincerely.com/vs.md, https://trysincerely.com/compare.md, https://trysincerely.com/alternatives.md, https://trysincerely.com/guides.md,
https://trysincerely.com/playbooks.md, https://trysincerely.com/glossary.md, https://trysincerely.com/integrations.md.
