Skip to content

Commit

Permalink
[wip] Pricing Update (#57)
Browse files Browse the repository at this point in the history
* pricing header

* graphics -> images

* Update pricing.mdx

* Update pricing.mdx

* cost projection

* estimating

* breaking things up

* broken up

* Update estimating-costs.mdx

* Update overview.mdx

* enterprise

* Update pricing.mdx

* add discord social

* graphic

* Update voice-pipeline-cost-breakdown.png

* Update pricing.mdx

* graphic + card rework

* tweak

* Update pricing.mdx

* welcome, get started, concepts, workflows, learn, knowledge, community, legal

* more restructure

* Update pricing.mdx

* case example start

* ex 1

* billing examples

* more examples
  • Loading branch information
bephrem1 authored Apr 15, 2024
1 parent e95bb77 commit 1fc55bc
Show file tree
Hide file tree
Showing 47 changed files with 489 additions and 119 deletions.
Binary file modified .DS_Store
Binary file not shown.
4 changes: 2 additions & 2 deletions introduction.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import FaqSnippet from "/snippets/faq-snippet.mdx";
import { SdkCards } from "/snippets/sdk.mdx";

<Frame>
<img src="/static/graphics/intro/custom-vs-vapi.png" />
<img src="/static/images/intro/custom-vs-vapi.png" />
</Frame>

Vapi lets developers build, test, & deploy voice AI agents in minutes rather than months — solving for the foundational challenges voice AI applications face:
Expand Down Expand Up @@ -95,7 +95,7 @@ Gain a deep understanding of key concepts in Vapi, as well as how Vapi works:
title="How Vapi Works"
icon="network-wired"
iconType="solid"
href="/platform/how-vapi-works"
href="/learn/platform/how-vapi-works"
>
Learn what goes on behind-the-scenes to make Vapi work.
</Card>
Expand Down
28 changes: 28 additions & 0 deletions learn/billing/billing-limits.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
title: "Billing Limits"
sidebarTitle: "Billing Limits"
description: "Set billing limits on your Vapi account."
---

You can set billing limits in the billing section of your dashboard.

<Note>
You can access your billing settings at
[dashboard.vapi.ai/billing](https://dashboard.vapi.ai/billing)
</Note>

### Setting a Monthly Billing Limit

In your billing settings you can set a monthly billing limit:

<Frame>
<img src="/static/images/learn/billing/billing-limits.png" />
</Frame>

### Exceeding Billing Limits

Once you have used all of your starter credits, or exceeded your set monthly usage limit, you will start seeing errors in your dashboard & via the API mentioning `Billing Limits Exceeded`.

<Frame caption="Once you have gone over on your monthly billing limits, the API & dashboard will throw billing-related errors.">
<img src="/static/images/learn/billing/billing-limits-exceeded.png" />
</Frame>
47 changes: 47 additions & 0 deletions learn/billing/cost-routing.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
title: "Cost Routing"
sidebarTitle: "Cost Routing"
description: "Learn more about how your Vapi account is billed for provider expenses."
---

<Frame caption="Provider expenses can either end up provider-side, or at-cost in your Vapi account.">
<img src="/static/images/learn/billing/cost-routing.png" />
</Frame>

During calls, requests will be made to different providers in the voice pipeline:

- **transcription providers:** providers conducting speech-to-text
- **model providers:** LLM providers
- **voice providers:** providers conducting text-to-speech
- **telephony providers:** providers like [Twilio](https://www.twilio.com)/[Vonage](https://www.vonage.com) that facilitate phone calls

<Info>
Per-minute telephony costs only occur during inbound/outbound phone calling. Web calls do not
incur this cost.
</Info>

## Where Provider Costs End-up

There are 2 places these charges can end up:

1. **Provider-side:** in the account you have with the provider.
2. **With Vapi:** in your Vapi account.

### Provider-side Billing

If we have [provider keys](/provider-keys) on file for a provider, the cost will be seen directly
in your account with the provider. Vapi will have made the request on your behalf with your provider key.

No charge will be made to your Vapi account.

### Billed with Vapi

If no key is found on-file for the provider, Vapi will make the API request itself (with Vapi's own keys, at Vapi's expense). This expense is then passed on [**at-cost**](/glossary#at-cost) to be billed directly to your Vapi account.

No charge will show up provider-side.

## Billing That "Just Works"

The central idea is that everything is designed to "just work". Whether you are billed provider-side, or on Vapi's side, you will never be charged with any margin for provider fees incurred during calls.

All operational costs would have been incurred anyway.
74 changes: 74 additions & 0 deletions learn/billing/estimating-costs.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
---
title: "Estimating Costs"
sidebarTitle: "Estimating Costs"
description: "Get information on your voice pipeline's projected costs."
---

Since there are so many moving parts to the voice pipeline that can incur cost, it would be ideal for us to get a good estimate of our final projected per-minute cost for calls.

### Dashboard Cost Estimates

The Vapi dashboard provides static cost projections on a per-assistant basis, so you can get a rough idea of the costs your assistant will incur during live execution.

<Tip>
You can view your dashboard at [dashboard.vapi.ai](https://dashboard.vapi.ai/) & get started with
our [dashboard quickstart](/quickstart/dashboard).
</Tip>

<Frame caption="Vapi-computed per-minute cost projection, as well as latency projection.">
<img className="hidden h-32 dark:block" src="/static/images/learn/billing/cost-estimate.gif" />
</Frame>

### Calling Your Assistant

One good way to get an empirical per-minute cost on your whole voice pipeline is to actually call in, use it for a few minutes, & observe the average cost/minute at the call level.

<Note>
You can view a breakdown of your cost per call in your dashboard at
[dashboard.vapi.ai/calls](https://dashboard.vapi.ai/calls)
</Note>

Your call cost breakdowns will look something like this:

<Frame caption="Cost breakdown for a call viewed in the Vapi web dashboard.">
<img src="/static/images/learn/billing/call-pricing-breakdown.png" />
</Frame>

Here is what each line item corresponds to:

- `STT`: Speech-to-text (providers often bill per-minute, prorated)
- `LLM`: LLM inference (providers often bill per-million or per-thousand tokens)
- `TTS`: Text-to-speech (providers often bill per-character)
- `Vapi`: the Vapi platform fee of 5¢/minute (prorated per-second)
- `Transport`: telephony costs (incurred for inbound/outbound phone calls to/from a phone number) (providers often bill per-minute)

This method can be effective because **per-minute costs will not scale** with the amount of call minutes you consume. The cost for the 1st minute will be the same as the 10,000th minute.

<Tip>
Bulk discounts are available on enterprise plans which can make the per-minute cost cheaper as
volume increases. View [pricing](/pricing) to learn more.
</Tip>

### General Provider Estimates

The provider costs listed below are subject to change as we get more data, but they will always reflect our best estimate of the provider costs per minute:

<AccordionGroup>
<Accordion title="Speech-to-text Provider Estimates (Transcription)" defaultOpen={true}>
<Card title="Speech-to-text Provider">Deepgram: **\$0.01/min** (=\$0.60/hr)</Card>
</Accordion>
<Accordion title="Model Provider Estimates" defaultOpen={true}>
<Card title="Model Provider">
- OpenAI (gpt-4-turbo): **\$0.20/min** (=\$12.00/hr) <br /> OpenAI (gpt-3.5-turbo):
**\$0.02/min** (=\$1.20/hr)
</Card>
</Accordion>
<Accordion title="Voice Provider Estimates" defaultOpen={true}>
<Card title="Voice Provider">
- ElevenLabs: **\$0.04/min** (=\$2.40/hr) <br /> PlayHT: **\$0.07/min** (=\$4.20/hr)
<br /> Deepgram: **\$0.02/min** (=\$1.20/hr) <br /> OpenAI: **\$0.02/min** (=\$1.20/hr) <br />{" "}
RimeAI: **\$0.03/min** (=\$1.80/hr) <br /> Azure: **\$0.02/min** (=\$1.20/hr) <br /> Neets: **\$0.005/min**
(=\$0.30/hr) <br /> LMNT: **\$0.03/min** (=\$1.80/hr)
</Card>
</Accordion>
</AccordionGroup>
194 changes: 194 additions & 0 deletions learn/billing/examples.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,194 @@
---
title: "Billing Examples"
sidebarTitle: "Billing Examples"
description: "End-to-end examples estimating voice workflow cost on Vapi."
---

<Frame>
<img src="/static/images/learn/billing/billing-example-template.png" />
</Frame>

## Case Examples

Here are a few case-examples of what billing would look like on Vapi for different voice pipeline configurations.

<Tip>
Read our guide on [estimating costs](/learn/billing/estimating-costs) to learn more about provider
pricing.
</Tip>

### Call Center (Inbound Phone)

A customer is looking to use Vapi to assist their call center staff taking phone calls inbound:

<Steps>
<Step title="Scenario">
<div>
"I want to use Vapi voice assistants to support my human customer service reps in a call
center. However, I have a custom LLM I would prefer to use instead of the ones offered through
the platform.
</div>

<div>
Expected monthly usage will be 10,000 calls, with an average of 2 minutes per call. For Voice,
PlayHT will suit our needs.
</div>

<div>What is my pricing breakdown?"</div>

</Step>
<Step title="Providers">
The providers used will determine per-minute cost. The following providers will be involved:

<div>**Deepgram:** transcription</div>
<div>**Custom Model:** model</div>
<div>**PlayHT:** voice</div>
<div>**Twilio:** telephony (receiving inbound phone calls)</div>

<br/>
<Frame caption="The customer will be using a custom model & taking inbound phone calls.">
<img src="/static/images/learn/billing/custom-model-inbound-phone-example.png" />
</Frame>
<br/>

</Step>
<Step title="Cost Breakdown">
We will break down the costs of each piece of the voice pipeline, then later multiply by call volume:

<div>**Deepgram:**\$0.01/min</div>
<div>**Custom Model:**\$0.04/min (vague assumption, can vary widely)</div>
<div>**PlayHT:**\$0.07/min</div>
<div>**Twilio:**\$0.02/min (inbound, toll-free number) (see Twilio [phone call pricing](https://www.twilio.com/en-us/voice/pricing))</div>
<div>**Vapi:** \$0.05/min</div>

<Tip>Our [estimating costs](/learn/billing/estimating-costs) guide can help you determine these values.</Tip>

</Step>
<Step title="Final Estimate">
Call Minutes / Month: 10,000 calls x 2 min/call = **20,000 call minutes**

<div>**Transcription:** \$0.01/min x 20,000 = **\$200**</div>
<div>**Custom Model:** \$0.04/min x 20,000 = **\$800**</div>
<div>**Voice:**\$0.07/min x 20,000 = **\$1,400**</div>
<div>**Telephony:**\$0.02/min x 20,000 = **\$400**</div>
<div>**Vapi:** \$0.05/min x 20,000 = **\$1,000**</div>

**Total**: **\$3,800**/mo

</Step>
</Steps>

### Real Estate Lead Generation (Outbound Phone)

A customer doing real estate lead generation is looking to use Vapi to automate parts of their sales calling operation:

<Steps>
<Step title="Scenario">
"I have a company that does real estate lead generation, and would like to use Vapi voice
assistants to automate parts of my sales process.

Calls would average ~4 minutes, for Model I want to use GPT-4-turbo through your platform, and for Voice I will be using a ElevenLabs.

I’d like a breakdown based on sending 1,000 outbound calls in one month."

</Step>
<Step title="Providers">
<div>**Deepgram:** transcription</div>
<div>**OpenAI (GPT-4 Turbo):** model</div>
<div>**ElevenLabs:** voice</div>
<div>**Vonage:** telephony (sending outbound phone calls)</div>

<br/>
<Frame caption="The customer will be using GPT-4 & making outbound phone calls.">
<img src="/static/images/learn/billing/outbound-phone-example.png" />
</Frame>
<br/>

</Step>
<Step title="Cost Breakdown">
<div>**Deepgram:**\$0.01/min</div>
<div>**OpenAI (GPT-4 Turbo):**\$0.20/min</div>
<div>**ElevenLabs:**\$0.04/min</div>
<div>**Vonage:**\$0.01/min (outbound call) (see Vonage's [phone call pricing](https://www.vonage.com/communications-apis/voice/pricing))</div>
<div>**Vapi:** \$0.05/min</div>

<Tip>Our [estimating costs](/learn/billing/estimating-costs) guide can help you determine these values.</Tip>

</Step>
<Step title="Final Estimate">
Call Minutes / Month: 1,000 calls x 4 min/call = **4,000 call minutes**

<div>**Transcription:** \$0.01/min x 4,000 = **\$40**</div>
<div>**Model:** \$0.20/min x 4,000 = **\$800**</div>
<div>**Voice:**\$0.04/min x 4,000 = **\$160**</div>
<div>**Telephony:**\$0.01/min x 4,000 = **\$40**</div>
<div>**Vapi:** \$0.05/min x 4,000 = **\$200**</div>

**Total**: **\$1,240**/mo

</Step>
</Steps>

### Mock Intervieweing Application (Web)

A web engineer is looking to develop a website that helps job candidates practice for job interviews. They are looking to use Vapi for their virtual interviewers:

<Steps>
<Step title="Scenario">
"Hi, I'm looking to develop a web application for mock interviews. Users will be able to practice for a variety
of job interviews with AI interviewers.

Interviews will be 30-minutes each (at max), for model I'll be using a custom open-source model hosted with Baseten & for voice I'll be using PlayHT.

How much would this cost me each month if I service 1,000 interviews per month?"

</Step>
<Step title="Providers">
<div>**Deepgram:** transcription</div>
<div>**Custom Model:** model</div>
<div>**PlayHT:** voice</div>

<br/>
<Frame caption="The customer will be using a custom model & making web calls (no telephony will be involved).">
<img src="/static/images/learn/billing/web-interviews-example.png" />
</Frame>
<br/>

</Step>
<Step title="Cost Breakdown">
<div>**Deepgram:**\$0.01/min</div>
<div>**Custom Model:**\$0.10/min (vague assumption, can vary widely)</div>
<div>**PlayHT:**\$0.07/min</div>
<div>**Vapi:** \$0.05/min</div>

<Tip>Our [estimating costs](/learn/billing/estimating-costs) guide can help you determine these values.</Tip>

</Step>
<Step title="Final Estimate">
Call Minutes / Month: 1,000 calls x 30 min/call = **30,000 call minutes**

<div>**Transcription:** \$0.01/min x 30,000 = **\$300**</div>
<div>**Model:** \$0.10/min x 30,000 = **\$3,000**</div>
<div>**Voice:**\$0.07/min x 30,000 = **\$2,100**</div>
<div>**Vapi:** \$0.05/min x 30,000 = **\$1,500**</div>

**Total**: **\$6,900**/mo

</Step>
</Steps>

### Further Reading

<CardGroup cols={2}>
<Card title="Provider Costs" icon="route" iconType="solid" href="/learn/billing/cost-routing">
Learn more about where provider costs end up getting billed.
</Card>
<Card
title="Estimating Costs"
icon="equals"
iconType="solid"
href="/learn/billing/estimating-costs"
>
Learn more about determining per-minute costs for providers.
</Card>
</CardGroup>
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Multilingual Support"
sidebarTitle: "Multilingual Support"
title: "Introduction"
sidebarTitle: "Introduction"
description: "Learn how to set up and test multilingual support in Vapi."
---

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Vapi acts as an orchestration layer over Speech-to-Text (STT), Large Language Mo
Let’s take a closer look at what Vapi does:

<Frame>
<img src="/static/graphics/platform/vapi-orchestration.png" />
<img src="/static/images/learn/platform/vapi-orchestration.png" />
</Frame>

<Steps>
Expand Down
Loading

0 comments on commit 1fc55bc

Please sign in to comment.