master-zapier-plan-draft/docs/01-product/zapier-billing-research.md
George Lambert b4150c8250 Milestone 0: import zappier billing, Verae middleware, and Zapier research
Compose-ready workspace: packages/zappier (rate card, portal, Stripe),
packages/verae-zapier-middleware (timestamp + NATS), packages/verae-zapier
(CLI app), vendor/zapier-platform, and research/zapier vendor corpus.

Gate 0 structure checks pass. Product code and research are not yet wired.
2026-09-09 02:37:36 -04:00

291 lines
15 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Zapier cost structure and billing models
**Planning brief for Verae Time**
Source: official Zapier pricing at [zapier.com/pricing](https://zapier.com/pricing), captured 1718 August 2026 (USD).
Confirm live rates before a customer quote. The rate card at `/pricing/rates` was not fetchable at write time; multipliers below are those Zapier publishes on the main pricing page and “What is a task?” article (updated June 2026).
This document explains **how Zapier charges**, with examples, so we can design **Veraes** meter without colliding with or accidentally subsidizing Zapier.
---
## 1. The one idea that unlocks the rest
Zapier does **not** charge per Zap, per app, or per seat on Professional. It charges for **successful work**.
You buy two things that travel together:
1. A **plan level** — the feature set (Free / Professional / Team / Enterprise).
2. A **task tier** — a monthly (or Enterprise annual) allowance of **tasks**.
Then three other economies sit **beside** that, not inside it:
| Economy | Unit | Used for |
|---------|------|----------|
| **Core Zapier** | Task | Zaps, AI-by-Zapier, Code-by-Zapier, MCP, SDK |
| **Agents add-on** | Activity | Zapier Agents (does not draw tasks) |
| **Chatbots add-on** | Feature tier (number of bots) | Zapier Chatbots (not task-metered) |
| **Verae (us)** | Timestamp / verify / batch | Middleware `PLAN_LIMITS` — a **second invoice** |
Verae never appears on the Zapier invoice unless we sign a **White Label / Powered by Zapier** contract and resell Zapier usage ourselves.
---
## 2. What a task is (and is not)
A **task** is counted when Zapier **successfully completes** a unit of work. Failures are free.
### Counts
- A successful **action in another product**: Create Timestamp, post Slack, add a Drive file, write a Sheet row, call a webhook.
- A successful **Zapier MCP** tool execute (read or write).
- **AI by Zapier** and **Code by Zapier** (with multipliers / extra runtime — §4).
### Does not count
- The **trigger** (including polling every 115 minutes).
- **Logic and prep**: Filter, Paths, Formatter, Delay, Looping, Sub-Zap, Digest, Zapier Manager, Storage.
- **Zapier Tables** and **Zapier Forms** triggers and actions.
- Building, turning on, or testing a Zap until a step actually succeeds in production.
Shared pool: one allowance for the whole account. There is no separate MCP budget.
---
## 3. Plan levels (what you can build)
Plans are cumulative. Task **volume** is chosen separately (§5).
| | Free | Professional | Team | Enterprise |
|--|------|--------------|------|------------|
| Seats | 1 | 1 | 25 | Unlimited |
| Zap shape | Two-step only (trigger + 1 action) | Multi-step | Multi-step | Multi-step |
| Polling interval | 15 min | 2 min | 1 min | 1 min |
| Premium apps, webhooks | No | Yes | Yes | Yes |
| Filters, Paths, Formatter, AI by Zapier | No | Yes | Yes | Yes |
| Shared Zaps / connections, SAML SSO | No | No | Yes | Yes |
| SCIM, app controls, custom retention, TAM, BYOM | No | No | No | Yes |
| Task cycle | Monthly | Monthly | Monthly | **Annual** task limit |
| Pay-per-task overflow | No | Optional | Optional | Custom |
| Entry price (annual, USD/mo) | $0 (100 tasks) | **$19.99** (750 tasks) | **$69** (2,000 tasks) | Sales |
Also: 14-day Professional trial (no card). Non-profit: extra 15% off the subscription, **not** on pay-per-task. Live chat on Professional only at the **2,000+** task tier.
**Implication for Verae:** a Free customer can run **only** “new file → Create Timestamp” (two steps). Anything with a catalog write, Slack notify, or Wait **plus** another action needs Professional.
---
## 4. Variable pricing inside the task pool
Not every successful step costs one task. Zapier uses **multipliers** so expensive compute costs more of the same allowance.
| Work | Tasks per success | Notes |
|------|------------------:|-------|
| Typical third-party action (Verae Create Timestamp, Slack, Drive, Sheets, webhook) | **1** | The default. Design around this. |
| Standard AI by Zapier (default model) | **1** | Same as a normal action |
| Advanced AI by Zapier | **3** | Confirm on `/pricing/rates` |
| Premium AI by Zapier | **5** | Confirm on `/pricing/rates` |
| Zapier MCP `execute` (read or write) | **2** | Discover / inspect / enable are free meta-tools |
| Code by Zapier | 0 during **included** runtime; then **1 per extra 30 s** | Included: Free 1 s, Pro/Team 30 s, Enterprise 2 min. Extended runtime is opt-in on paid plans (18 min cap). |
| Zapier SDK | Free **while in beta** | Zapier will announce when beta pricing starts; assume it will join the task pool |
**Failed steps = 0 Zapier tasks.** They can still hit Verae (Autoreplay / customer retries). That is our problem, not Zapiers.
---
## 5. Task tiers and list price (USD, August 2026)
Self-serve is sold as **plan × tier**. Annual is ~33% off monthly. Figures are **per month**.
### Professional
| Tasks / mo | Annual / mo | Monthly / mo | Implied $/task (annual) |
|-----------:|------------:|-------------:|------------------------:|
| 750 | $19.99 | $29.99 | $0.027 |
| 1,500 | $39.00 | $58.50 | $0.026 |
| 2,000 | $49.00 | $73.50 | $0.025 |
| 5,000 | $89.00 | $133.50 | $0.018 |
| 10,000 | $129.00 | $193.50 | $0.013 |
| 20,000 | $189.00 | $283.50 | $0.0095 |
| 50,000 | $289.00 | $433.50 | $0.0058 |
| 100,000 | $489.00 | $733.50 | $0.0049 |
| 200,000 | $769.00 | $1,149.00 | $0.0038 |
| 500,000 | $1,499.00 | $2,199.00 | $0.0030 |
| 1,000,000 | $2,199.00 | $3,299.00 | $0.0022 |
| 2,000,000 | $3,389.00 | $5,099.00 | $0.0017 |
### Team (starts at 2,000)
| Tasks / mo | Annual / mo | Monthly / mo | Implied $/task (annual) |
|-----------:|------------:|-------------:|------------------------:|
| 2,000 | $69.00 | $103.50 | $0.035 |
| 5,000 | $119.00 | $178.50 | $0.024 |
| 10,000 | $169.00 | $253.50 | $0.017 |
| 20,000 | $249.00 | $373.50 | $0.012 |
| 50,000 | $399.00 | $598.50 | $0.008 |
| 100,000 | $599.00 | $898.50 | $0.006 |
| 1,000,000 | $2,499.00 | $3,749.00 | $0.0025 |
| 2,000,000 | $3,999.00 | $5,999.00 | $0.0020 |
Teams **entry** $/task is higher than Pro because you are buying seats, shared connections, and SSO — not cheaper tasks.
Tiers also exist at 300k / 400k / 750k / 1.25M / 1.5M / 1.75M (see getting-started §9 or zapier.com/pricing). Above 2M: Sales.
---
## 6. Overflow (pay-per-task)
On paid plans, a toggle decides what happens at the allowance:
| Setting | What happens |
|---------|----------------|
| **On** | Zaps and MCP keep running. Extra tasks bill at **1.25×** the plans base $/task (annual) or **2.5×** (monthly). Hard ceiling: **3×** subscribed tasks, then pause until next cycle or upgrade. |
| **Off** | Everything **stops** at the allowance. |
| **Free** | No overflow. Hits 100 and stops. |
Worked overage: Professional 750 annual → base ≈ $19.99 / 750 = **$0.0267**. Overflow ≈ **$0.0333**/task. Monthly base ≈ $0.0400; overflow ≈ **$0.100**/task. Same usage is ~3× more expensive on monthly overflow than annual overflow.
Enterprise uses an **annual** pool so seasonal spikes do not reset every month.
---
## 7. Other Zapier products (different models)
| Product | Model | Relation to tasks |
|---------|--------|-------------------|
| **Zap workflows** | Task | Core |
| **Zapier MCP** | Same task pool; **2 tasks** per successful execute | Meta-tools free |
| **Zapier SDK** | Beta free; expect tasks later | Consume, not publish |
| **AI by Zapier** | Task × model tier (1 / 3 / 5) | Inside the Zap |
| **Code by Zapier** | Included seconds + 1 task / 30 s extra | Inside the Zap |
| **Tables / Forms** | Plan limits (records, pages, upload size); **0 tasks** when used in Zaps | Separate caps |
| **Agents** | **Activities** (Free 400/mo; paid ~$33.33/mo annual for 1,500). Per-run cap 10 (Free) / 40 (paid). | Does **not** use tasks |
| **Chatbots** | Bot-count tiers (Free 2; paid ≈5 / ≈20) | Does **not** use tasks |
| **Canvas / Copilot** | Included; Free Copilot has a daily message limit | Not a usage meter |
| **Directory integration (us)** | **$0** to publish. Customers Zapier plan pays tasks. | Partner is not billed |
| **White Label / Powered by Zapier / embed** | Usage-based **to the product company**. End users may not need their own Zapier bill. | Sales contract |
| **NLA / AI Actions** | Retired | Do not design around this |
---
## 8. Worked examples (so the variables are visible)
Assume **Professional, billed annually**, and that every named action succeeds. Verae units are **our** meter.
### Example A — Two-step timestamp (Free-capable)
`New file in Drive``Verae: Create Timestamp`
| Volume | Zapier tasks | Fits | Zapier $ (annual) | Verae units |
|-------:|-------------:|------|-------------------|------------:|
| 80 files / mo | 80 | Free | $0 | 80 timestamps |
| 200 | 200 | Pro 750 | $19.99 | 200 |
| 600 | 600 | Pro 750 | $19.99 | 600 → **starter** (500) overflows **us** |
Lesson: the customer can still be on Zapier Free while **we** 402 them. The two meters trip at different points.
### Example B — Production pattern we recommend
`New file` → Filter → `Create Timestamp` → Formatter → write catalog row (Tables = **0** tasks) → Slack
If Slack is the only other third-party action: **2 tasks / file** (timestamp + Slack). Tables write is free.
| Files / mo | Passing filter | Zapier tasks | Cheapest Pro tier | Zapier $ | Verae timestamps |
|-----------:|---------------:|-------------:|-------------------|----------:|-----------------:|
| 1,000 | 20% (200) | 400 | 750 | $19.99 | 200 |
| 1,000 | 100% | 2,000 | 2,000 | $49 | 1,000 → **pro** on our side |
| 10,000 | 100% | 20,000 | 20,000 | $189 | 10,000 → enterprise / contract |
Filter early: 800 of 1,000 files dropped = **0 Zapier tasks and 0 Verae stamps** for those 800.
### Example C — Create and Wait vs hook
- **Wait in the Zap:** 1 task (the wait action). Fine for interactive “give me the certificate now.”
- **Async + Timestamp Completed hook + update row:** 1 task to create + 1 task when the hook fires an action = 2 tasks, but the Zap does not sit open. Prefer this at volume.
Polling `Find Job Status` every minute in a loop is the anti-pattern: each successful search is a task.
### Example D — Same work via Zapier MCP (an agent)
Agent calls: execute Create Timestamp, execute write Sheet, execute Slack.
3 executes × **2 tasks** = **6 tasks / file**, plus any Agent **activities** if they used Zapier Agents.
200 files = **1,200 Zapier tasks** → Pro 1,500 at **$39**/mo — three times the Zapier cost of Example B for the same Verae stamps (200).
**Planning rule:** MCP-shaped clients burn Zapier 2× per hop. Do not price Verae as if the customers only cost is our stamp.
### Example E — AI enrichment in the Zap
`New file` → Standard AI extract metadata (1) → Create Timestamp (1) → Sheet (1) = **3 tasks**.
Swap in Premium AI: **5 + 1 + 1 = 7 tasks**.
1,000 files: 3,000 vs 7,000 tasks → $89 vs $129 on Pro annual.
AI model choice is the customers Zapier bill, not ours — unless we bury AI inside **our** action (we should not).
### Example F — Overflow month
Customer on Pro 750 annual ($19.99). A campaign pushes 1,400 successful timestamp actions (and nothing else).
- Included: 750
- Overflow: 650 × ~$0.0333 ≈ **$22**
- Total Zapier ≈ **$42** that month
- Still under the 3× ceiling (2,250)
If they were on **monthly** Pro 750 ($29.99): overflow 650 × ~$0.100 ≈ **$65** + $30 = **~$95**.
### Example G — White Label (we are the billed party)
If Verae embeds Zapier and Zapier bills **us** per task, then 10,000 customer files × 2 tasks = 20,000 tasks ≈ **$189**/mo (Pro annual list) **plus** our timestamp COGS. That number has to sit in **our** COGS, not the customers Zapier account.
---
## 9. Veraes meter today (so we can place it)
From `verae-zapier-middleware` `PLAN_LIMITS`:
| Verae plan | Timestamps / mo | Verifications | Batch | RPM |
|------------|----------------:|--------------:|-------|----:|
| free | 50 | 50 | no | 30 |
| starter | 500 | 500 | yes, max 10 | 120 |
| pro | 5,000 | 5,000 | yes, max 100 | 600 |
| enterprise | unlimited / contract | contract | yes | 3,000 |
Over-quota → **402** `QUOTA_EXCEEDED`. Batch on free → **403** `PLAN_UPGRADE_REQUIRED`.
These fire **independently** of Zapiers pause / pay-per-task.
---
## 10. How this should shape *our* billing
1. **Never bundle “unlimited Zapier.”** We do not control their task tier, MCP multiplier, or overflow toggle.
2. **Meter what we uniquely do:** accepted timestamp jobs, verifies, maybe stored GB / pin-days / Glacier restores — not Zap steps.
3. **Mirror Zapiers shape if we want familiarity:** plan + included units + optional overage with a ceiling. Customers already understand 402 vs pause.
4. **Do not use Zapier-like 2× MCP pricing on our API.** MCP is Zapiers tax on agent hops. Our HTTP `/zapier/v1/timestamp` should stay **one Verae unit** whether the Zap used 1 task or an agent used 2.
5. **Price batch as a plan gate**, not as “N Zapier tasks.” Zapier will still charge **1 task** for the batch action; we decide whether 100 items cost 1 or 100 of *our* units. Today we count batch size against `batchMaxItems` and timestamp quota.
6. **Hook-friendly packaging:** include enough monthly stamps that the recommended “create + hook + catalog” pattern is cheaper on **our** side than polling.
7. **Three customer motions, three packages:**
- **Directory user** — they pay Zapier + they pay Verae (API key). Our list price must look fair next to ~$0.02$0.03 per Zapier task at Pro entry.
- **MCP / agent user** — they already pay 2 Zapier tasks per hop; keep Verae simple or they will skip us.
- **Embed / White Label** — we may owe Zapier usage; our price to the end user must cover that COGS or we only sell the timestamp and let them bring their own Zapier.
8. **Storage / Peergos / Glacier is a third meter** (see getting-started §10). Do not hide pin-days or restore fees inside “one timestamp.”
9. **Failed Zapier steps are free for them, not for us** if we already accepted the job. Bill on **accepted jobId** (202), not on Zapiers success callback.
10. **Quote two lines** in every proposal: “Your Zapier plan (estimate N tasks)” and “Verae (M timestamps).” Never a single blended number.
### Rough juxtaposition (order-of-magnitude)
At Pro 750 annual, Zapiers included work is about **2.7 cents per task**.
If our Create Timestamp is one Zapier task + one Verae stamp, the customers *Zapier* share of a two-step Zap is ~$0.027. Our stamp should be priced from **our** chain/ops cost, not matched 1:1 to that 2.7¢ — but if we charge **dollars** per stamp while Zapier is **cents** per step, SMB Zaps will feel “Verae-expensive” even when Zapier is the bigger invoice at volume.
---
## 11. Planning checklist
- [ ] For each target Zap, count **billable Zapier actions** (not steps on the canvas).
- [ ] Multiply MCP executes by **2**.
- [ ] Apply AI 1 / 3 / 5 if they enrich in the Zap.
- [ ] Pick the cheapest **Zapier** tier that covers that task count (or overflow math).
- [ ] Count **Verae** timestamps / verifies / batch separately; check 50 / 500 / 5,000 tripwires.
- [ ] If we embed Zapier, put Zapier list price into **our** COGS.
- [ ] Keep Peergos pin / Glacier restore off the timestamp SKU.
- [ ] Re-check [zapier.com/pricing](https://zapier.com/pricing) before any contract; this brief is dated **18 August 2026**.