Pricing

Per-seat price: grow by adding a person, not switching a package

A feature maze splits the team. One plan, per-seat price, no hidden add-on. Growth is adding a person, not switching a package. A shared office account is both a security and a billing problem.

Ontra reports and growth dashboard

May 8, 2026 · 7 min read

No package maze

One plan, explicit seat price

“Reports on Pro, access on Enterprise” splits the team. One half cannot see the report, the other waits on access, a third flees to Excel. In Ontra the board, docs, sprints, reports, and fine-grained access sit on one plan. What you pay for is the seat. A new client wants a new company record, not a new package. Adding a company does not multiply seats. Growth is adding a person.

A shared “office” account is both a security and a billing problem. Each user sits in their own seat. When an internship ends you close the seat and the price drops that month. If you do not close it, the grant stays too. A viewer is still a seat; there is no secret free account. The seat starts when the invite is accepted. An unaccepted invite drops after seven days; ghost seats do not pile up.

  • Board, docs, sprints, and access sit on one plan
  • A viewer is still a seat
  • The seat starts when the invite is accepted
  • Close the seat when the internship ends; price drops that month
  • Adding a company does not multiply seats

Yearly or monthly

A seat belongs to a real person

Stripe makes this choice explicit. If there is a yearly discount it is written down; it is not hidden behind “talk to sales”. When seat count changes mid-term, the math stays visible. There is no hidden add-on. Reports, API, fine-grained access, map, docs — they are included in the seat. A “price per module” maze splits the team again. Explicit price, explicit seat, explicit cancel.

Billing and security are the same discipline

The quarterly pass asks about the seat and the grant: is this person still here, is this role still needed, is this key still used? Billing bloat is often a forgotten intern and a “test admin.” So is a security leak. Do not treat them as separate products. When the seat closes, the grant closes. That is Ontra’s one-record principle on the invoice.

When to say no

No to a shared password. No to a ghost seat. No to “admin for now.” No to waiting to “pick Enterprise later” — there is one plan. No to “a separate workspace for this client” — there is a company record. These nos are not stinginess. They exist so the record does not scatter, the price stays explicit, and the leak surface stays small.

Invoice, security, and the no sentences

There is one plan. Board, docs, sprints, reports, fine-grained access, map, API are in the seat. “Reports on Pro, access on Enterprise” splits the team. Growth is adding a person. A new client is a new company record, not a new package. Adding a company does not multiply seats. A shared office account is both a security and a billing problem. Each user sits in their own seat. A viewer is still a seat. The seat starts when the invite is accepted; an unaccepted invite drops in seven days, ghosts do not pile up.

When an internship ends the seat closes and the price drops that month. If it does not close, the grant stays. Stripe makes yearly/monthly explicit; there is no “talk to sales” hide. When seats change mid-term the math stays visible. No hidden add-on. The quarterly pass asks about seat and grant: is the person still here, is the role needed, is the key used? Billing bloat is a forgotten intern and a test admin. So is a leak. When the seat closes the grant closes. That is the one-record principle on the invoice.

Write the no sentences down: no shared password, no ghost seat, no admin-for-now, no Enterprise-later, no separate workspace per client. These are not stinginess. They exist so the record does not scatter, the price stays explicit, and the leak surface stays small. The demo does not ask for a card; after lock you return to the same records. What you pay for is the seat, not a maze.

A ledger of seats, grants, and nos

One plan. Board docs sprints reports access map API are in the seat. The Pro Enterprise maze splits the team. Growth is adding a person. A new client is a new company record. A company does not multiply seats. A shared office account is security and billing. Each user sits in their own seat. A viewer is a seat. It starts when the invite is accepted unaccepted drops in seven days. When an internship ends it closes price drops if not the grant stays. Stripe yearly monthly is explicit no talk-to-sales hide. Mid-term math stays visible. No hidden add-on.

The quarter asks seat and grant: is the person here is the role needed is the key used. Billing bloat is a forgotten intern and test admin. So is a leak. When the seat closes the grant closes. That is one-record on the invoice. Nos: shared password ghost seat admin-for-now Enterprise-later client workspace. Not stinginess so the record does not scatter the price stays explicit the leak surface stays small. The demo does not ask for a card. What you pay for is the seat not a maze.

Do not buy seats for a future team. Count who works this week. When growth happens add a person. The package does not change. That sentence is the whole price page.

Billing and security are the same ledger. Do not treat them as separate products. A forgotten seat is both money and a door. Close both in the quarter.

Yearly or monthly

Subscription and seat settings

Stripe makes this choice explicit. If there is a yearly discount it is written down; it is not hidden behind “talk to sales”. When seat count changes mid-term, the math stays visible.