Pricing Appendix
Этот документ фиксирует публичные правила расчёта стоимости платформы.
- Модель:
PLATFORM_PRICING_V2 - Статус: Public / normative
- Дата вступления версии: 4 марта 2026
- Применение: все начисления после даты вступления версии
- Scope: Compute, Isolate, Static, Managed PostgreSQL, Common — все billable метрики платформы
1. Назначение и границы
Заголовок раздела «1. Назначение и границы»Pricing Appendix задаёт:
- какие метрики тарифицируются по каждому слою;
- какие события не тарифицируются;
- как считаются overage и line items;
- как применяются округления и итоговая сумма.
Документ не раскрывает внутреннюю инфраструктуру и не описывает реализацию metering pipeline.
2. Термины
Заголовок раздела «2. Термины»Compute
Заголовок раздела «Compute»Invocation— пользовательское выполнение Runtime по запросуCPU Seconds— фактическое процессорное время выполненияMemory GB-Seconds— интеграл потребления памяти во времениResidency Seconds— время удержания готовых экземпляровStreaming Seconds— длительность потоковой выдачиWebSocket Seconds— время активных WebSocket-соединений
Isolate
Заголовок раздела «Isolate»Invocation— выполнение isolate-кода по запросуCPU Seconds— wall-time выполнения isolateMemory GB-Seconds— интеграл сконфигурированной памяти на время выполненияSubrequests— внешние операции isolate (KV ops + HTTP fetch)
Egress GB— объём данных, доставленных пользователюStorage GB-Month— хранение артефактов деплояImage Transforms— трансформации изображенийOrigin Fetch GB— запросы к origin при cache miss
Managed PostgreSQL
Заголовок раздела «Managed PostgreSQL»CU Seconds— CU-weighted compute time (cu_size × active_time_seconds)Storage GB— пиковый объём хранилища (данные + WAL, стоимость включает written_data)Data Transfer GB— сетевой трафик между приложением и базойExtra Databases— количество БД сверх включённых в планExtra Branches— количество веток сверх включённых в план
3. Billable метрики и единицы
Заголовок раздела «3. Billable метрики и единицы»Compute
Заголовок раздела «Compute»| Ключ | Единица |
|---|---|
invocations | count |
cpu_seconds | seconds |
memory_gb_seconds | GB-s |
residency_seconds | seconds |
streaming_seconds | seconds |
websocket_seconds | seconds |
Isolate
Заголовок раздела «Isolate»| Ключ | Единица |
|---|---|
invocations | count |
cpu_seconds | seconds |
memory_gb_seconds | GB-s |
subrequests | count |
| Ключ | Единица |
|---|---|
egress_gb | GB |
storage_gb_month | GB-month |
image_transforms | count |
origin_fetch_gb | GB |
Managed PostgreSQL
Заголовок раздела «Managed PostgreSQL»| Ключ | Единица |
|---|---|
cu_seconds | CU-seconds |
storage_gb | GB |
data_transfer_gb | GB |
extra_databases | count |
extra_branches | count |
| Ключ | Единица |
|---|---|
build_minutes | minutes |
kv_storage_gb | GB |
4. Что тарифицируется и что нет
Заголовок раздела «4. Что тарифицируется и что нет»4.1 Тарифицируется
Заголовок раздела «4.1 Тарифицируется»- Запрос, дошедший до пользовательского кода и завершившийся пользовательским ответом (Compute/Isolate)
- Ресурсное потребление (CPU, memory, residency) в рамках выполнений
- Доставка данных пользователю, хранение артефактов и трансформация изображений (Static)
- Внешние операции isolate (KV, HTTP fetch)
- CU-weighted compute, хранилище, трафик и доп. ресурсы managed PostgreSQL
4.2 Не тарифицируется
Заголовок раздела «4.2 Не тарифицируется»- Запросы, отклонённые до запуска пользовательского кода
- ISR cache hits без выполнения isolate
- Внутренний service-to-service трафик платформы
- Health-check и telemetry вызовы
- Кэш-хиты, не создающие origin egress
- Системные ретраи без пользовательского ответа
5. Нормализация usage
Заголовок раздела «5. Нормализация usage»Compute
Заголовок раздела «Compute»Q_invocations = SUM(invocation_count)Q_cpu_seconds = SUM(cpu_us) / 1_000_000Q_memory_gb_seconds = SUM(memory_mb_us) / (1024 × 1_000_000)Q_residency_seconds = (SUM(ready_us) + SUM(reserved_us)) / 1_000_000Q_streaming_seconds = SUM(streaming_us) / 1_000_000Q_websocket_seconds = SUM(websocket_us) / 1_000_000Isolate
Заголовок раздела «Isolate»Q_isolate_invocations = SUM(isolate_invocation_count)Q_isolate_cpu_seconds = SUM(isolate_cpu_us) / 1_000_000Q_isolate_memory_gb_seconds = SUM(isolate_memory_mb_us) / (1024 × 1_000_000)Q_isolate_subrequests = SUM(isolate_kv_reads + isolate_kv_writes + isolate_fetch_count)Q_static_egress_gb = SUM(static_egress_bytes) / (1024³)byte_seconds = Σ(artifact_size_bytes × overlap_seconds_in_period)Q_static_storage_gb_month = byte_seconds / (1024³ × 2_592_000)Q_static_image_transforms = SUM(static_image_transform_count)Q_static_origin_fetch_gb = SUM(static_origin_fetch_bytes) / (1024³)Примечание: storage_gb_month считается как аналитический byte-seconds интеграл по жизненному циклу артефактов.
Managed PostgreSQL
Заголовок раздела «Managed PostgreSQL»Q_kaiki_cu_seconds = SUM(kaiki_cu_seconds)Q_kaiki_cu_hours = Q_kaiki_cu_seconds / 3600Q_kaiki_storage_gb = MAX(kaiki_data_storage_bytes) / (1024³)Q_kaiki_data_transfer_gb = SUM(kaiki_data_transfer_bytes) / (1024³)Q_kaiki_database_count = COUNT(databases WHERE status != DELETED)Q_kaiki_total_branch_count = COUNT(branches WHERE status != DELETED)Примечание: cu_seconds = cu_size × active_time_seconds. storage использует gauge-семантику (пик за период). cu_hours тарифицируется блоками по 1 CU-час (BlockSize = 3600 CU-секунд). Storage стоимость включает written_data (WAL).
build_overlap_seconds_i = overlap_seconds(build_i_started_at..build_i_finished_at, period_start..period_end)Q_build_minutes = ceil( SUM(build_overlap_seconds_i) / 60 )Q_kv_storage_gb = MAX(kv_storage_bytes) / (1024³)Примечание: kv_storage использует gauge-семантику (максимум за период).
Примечание: build_minutes считается по пересечению build-window с расчётным периодом; ceil применяется один раз к суммарной длительности периода.
6. Формулы overage
Заголовок раздела «6. Формулы overage»Для любой метрики M любого слоя:
Q_overage_M = max(0, Q_used_M - Limit_M)6.1 Тариф per_unit
Заголовок раздела «6.1 Тариф per_unit»Amount_M = Q_overage_M × Rate_M6.2 Тариф per_block
Заголовок раздела «6.2 Тариф per_block»Blocks_M = ceil(Q_overage_M / BlockSize_M)Amount_M = Blocks_M × BlockRate_M6.3 Итог
Заголовок раздела «6.3 Итог»Subtotal = Σ Amount_M (по всем line items всех слоёв)Каждый line item содержит layer и metric теги для идентификации слоя и метрики.
7. Округления
Заголовок раздела «7. Округления»- Usage и промежуточные quantity считаются без раннего округления
- Для
per_blockсначала применяетсяceilколичества блоков - Денежные значения line item округляются
round_half_upдо денежной точности - Сумма формируется из line items после их округления
8. Структура счёта
Заголовок раздела «8. Структура счёта»InvoiceTotal = Subtotal + Adjustments - Credits + TaxesГде:
Subtotal— сумма всех line items (compute + isolate + static + managed postgresql + common)Adjustments— корректировки начисленийCredits— промо/компенсационные кредитыTaxes— налоги по платёжному профилю
9. Invoice diagnostics
Заголовок раздела «9. Invoice diagnostics»Каждый инвойс содержит diagnostics-блок:
quantities— нормализованные значения по каждой метрикеoverages— превышения по каждой метрикеlimits— действующие лимиты по каждой метрике
10. Hard Cap и защитные политики
Заголовок раздела «10. Hard Cap и защитные политики»Hard Capограничивает максимальные overage-расходы за период- При достижении порога могут применяться защитные ограничения
- Guardrails автоматически детектируют аномалии (velocity spike, jump anomaly) по каждому слою
- Полный перечень лимитов и ставок: Лимиты и квоты
11. Источник актуальных ставок
Заголовок раздела «11. Источник актуальных ставок»- Эта страница описывает методику расчёта
- Текущие ставки и включённые лимиты публикуются на Pricing и в биллинге workspace
12. Приоритет источников
Заголовок раздела «12. Приоритет источников»При расхождении источников:
- Индивидуальные коммерческие условия (если есть)
- Выставленный инвойс с детализацией line items за конкретный период
- Публичная pricing-страница и активные лимиты workspace
- Этот appendix как нормативная методика расчёта
13. Версионирование
Заголовок раздела «13. Версионирование»Изменения модели публикуются как новая версия (PLATFORM_PRICING_V*) с датой вступления. Для каждой версии фиксируются:
- список billable-метрик по слоям
- формулы overage
- политика округлений
- правила применения line items
Ретроактивное изменение уже выставленных и закрытых инвойсов не применяется, кроме случаев явной ошибки начисления.
14. Пример проверки начисления
Заголовок раздела «14. Пример проверки начисления»- Возьмите usage по каждой метрике каждого слоя за расчётный период
- Вычтите включённый лимит по метрике — получите
Q_overage_M - Примените
per_unitилиper_blockтариф - Проверьте округления по правилам раздела 7
- Сложите line items и примените корректировки/кредиты/налоги
Для пошаговых формул: Формулы и переменные.