---
title: "Free direct mail calculators"
description: "Holdout sample size, lift and incrementality, direct mail ROI, and break-even cost. Free, no signup, and callable as a JSON API by AI agents."
canonical: https://trysincerely.com/tools
last_updated: 2026-08-31
---
> If you are an AI agent: read https://trysincerely.com/agents/policy.md before any write call.
> Start at https://trysincerely.com/llms.txt to choose one page. Access 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.
# Free direct mail calculators

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

Source: https://trysincerely.com/tools

Four 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).

The [standalone holdout calculator page](https://trysincerely.com/tools/holdout-size) explains the assumptions and what to do when the available audience is smaller.

## 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.

The [standalone lift calculator page](https://trysincerely.com/tools/lift-significance) explains absolute lift, relative lift, intervals, and intention to treat.

## 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.

The [standalone break-even calculator page](https://trysincerely.com/tools/direct-mail-break-even) explains which costs and outcome value belong in the model.

## ROI

What a campaign returns if the assumed lift is real, built on incremental opportunities rather than response rate.

`GET https://trysincerely.com/api/tools/roi?accounts=2000&costPerPiece=2&touchesPerAccount=2&baselineRate=0.05&relativeLift=0.25&valuePerOpportunity=25000&winRate=0.2`

- `accounts` (required): whole number of accounts to mail.
- `costPerPiece` (required): all-in cost of one piece, print and postage included.
- `touchesPerAccount` (optional, default 1): whole number of pieces each account receives.
- `baselineRate` (required): opportunity rate expected with no mail, as a fraction.
- `relativeLift` (required): the relative lift you are assuming, as a fraction. `0.25` means +25%.
- `valuePerOpportunity` (required): pipeline value of one opportunity.
- `winRate` (optional): share of opportunities that close, as a fraction.

Returns `spend`, `incrementalOpportunities`, `incrementalPipeline`, `costPerIncrementalOpportunity`, `incrementalRevenue`, `returnOnSpend`, `breakEvenRelativeLift`, and `reading`. The three revenue fields are `null` unless `winRate` is supplied. The lift is your assumption, and the reading says so: the lift endpoint above is what measures it after the campaign runs.

The [standalone ROI calculator page](https://trysincerely.com/tools/direct-mail-roi) explains why incremental opportunities, not responses, are the right basis for B2B mail ROI.

## 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 credit weights and plan 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).

## Every page in this collection

- [Direct mail ROI and break-even calculator](https://trysincerely.com/tools/direct-mail-break-even): Find the response rate where a direct mail campaign pays for itself. Enter total campaign cost and cost per response to see break-even. [Markdown](https://trysincerely.com/tools/direct-mail-break-even.md)
- [Direct mail ROI calculator](https://trysincerely.com/tools/direct-mail-roi): Estimate direct mail ROI from lift, not response rates. Enter your costs and target lift to find when the campaign breaks even. [Markdown](https://trysincerely.com/tools/direct-mail-roi.md)
- [Direct mail holdout and sample size calculator](https://trysincerely.com/tools/holdout-size): Size your direct mail holdout group. Enter baseline conversion rate and minimum detectable lift to get sample size at 80% or 90% power. [Markdown](https://trysincerely.com/tools/holdout-size.md)
- [Direct mail incrementality and lift calculator](https://trysincerely.com/tools/lift-significance): Compare mailed and holdout conversion rates to get absolute and relative lift, a 95% confidence interval, and how many conversions were incremental. [Markdown](https://trysincerely.com/tools/lift-significance.md)

---

Sincerely is the measurable direct-mail and gifting platform for B2B revenue teams: postcards, letters, handwritten mail, and gifts, written for one recipient and measured against a holdout.

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

Agent routing index: https://trysincerely.com/llms.txt
