Корпоративному клиенту, который заказывает десять футболок с логотипом, обычно говорят одно и то же: возьмите пятьдесят, будет дешевле. Я захотел проверить, сколько именно дешевле и как внутри шкалы тиража устроена скидка за тираж. Не на пальцах, а по реальному оптовому прайсу производства корпоративного мерча, где шкала задана явно. Ниже код, числа из прогона и два места, где моя гипотеза разошлась с данными.

Откуда данные и как их парсил

Прайс на печать на футболках на заказ и смежные позиции: 15 товаров, от футболок и худи до кружек, пауэрбанков и ежедневников. У каждой позиции одна шкала тиража: 10 / 50 / 200 штук. Нанесение DTF формата А7 входит в цену позиции. От 201 штуки прайс чисел не даёт, там сказано «согласовывается с руководством». Первый вывод можно сделать ещё до кода: шкала короткая, дальше начинается переговорная зона.

Данные сняты из прайса февраля 2026 года, сверенного по сканам страниц. Таблицу выгрузил в JSON, считал в Python. Парсинг на регулярках:

import re

ROW = re.compile(
    r"^\|\s*(?P<name>[^|]+?)\s*\|\s*(?P<p10>[\d\s]+)\s*\|"
    r"\s*(?P<p50>[\d\s]+)\s*\|\s*(?P<p200>[\d\s]+)\s*\|"
)

def parse(md_text: str) -> list[dict]:
    rows = []
    for line in md_text.splitlines():
        m = ROW.match(line.strip())
        if m:
            rows.append({
                "name": m["name"].strip(" ¹²"),
                "price_10": int(m["p10"].replace(" ", "")),
                "price_50": int(m["p50"].replace(" ", "")),
                "price_200": int(m["p200"].replace(" ", "")),
            })
    return rows

def pct(a: int, b: int) -> float:
    """Насколько процентов цена b ниже цены a."""
    return (a - b) / a * 100

Что получилось по всем 15 позициям

Позиция

10 шт

50 шт

200 шт

Шаг 1 (10→50)

Шаг 2 (50→200)

Итого (10→200)

Футболка классика

680

610

550

10,3%

9,8%

19,1%

Футболка оверсайз

1470

1330

1190

9,5%

10,5%

19,0%

Поло

910

820

730

9,9%

11,0%

19,8%

Свитшот

1940

1750

1570

9,8%

10,3%

19,1%

Худи

2430

2210

1980

9,1%

10,4%

18,5%

Кепка

630

570

510

9,5%

10,5%

19,0%

Панама

630

570

510

9,5%

10,5%

19,0%

Шоппер

360

330

290

8,3%

12,1%

19,4%

Рюкзак

840

760

680

9,5%

10,5%

19,0%

Кружка

210

190

170

9,5%

10,5%

19,0%

Бутылка для воды

606

550

491

9,2%

10,7%

19,0%

Термокружка

978

885

792

9,5%

10,5%

19,0%

Пауэрбанк

1360

1240

1110

8,8%

10,5%

18,4%

Блокнот

870

760

680

12,6%

10,5%

21,8%

Ежедневник

1010

930

840

7,9%

9,7%

16,8%

Сводные цифры прогона от 04.11.2026:

  • суммарная скидка от 10 до 200 штук: медиана 19,0%, разброс от 16,8% у ежедневника до 21,8% у блокнота;

  • первый шаг (10 → 50, рост тиража в пять раз): медиана 9,5%;

  • второй шаг (50 → 200, рост в четыре раза): медиана 10,5%;

  • у 13 позиций из 15 второй шаг больше первого.

Оптовый прайс и скидка за тираж: суммарная скидка от 10 до 200 штук по 15 позициям

Оптовый прайс и скидка за тираж: суммарная скидка от 10 до 200 штук по 15 позициям

Что из этого следует

Скидка внутри шкалы не выдыхается. Моя стартовая гипотеза была про убывающую отдачу: первый скачок большой, дальше плато. Данные дают обратное: второй шаг обычно чуть круче первого. В процентах прайс почти линеен. Рост тиража в пять раз даёт минус примерно 9,5% к цене штуки, ещё рост в четыре раза даёт минус ещё примерно 10,5%. Двадцатикратный тираж стоит около минус 19%.

В рублях картина предметнее. Худи от 2430 до 1980 ₽: минус 450 ₽ на каждой штуке, на партии в 200 штук экономия 90 000 ₽. Свитшот даёт 370 ₽ на штуке (74 000 ₽ с партии), оверсайз 280 ₽ (56 000 ₽), пауэрбанк 250 ₽ (50 000 ₽). На дешёвых позициях эффект скромный: кружка экономит 40 ₽ на штуке и 8 000 ₽ с партии.

Практический вывод для выбора объёма: если весь тираж гарантированно уйдёт, следующая ступень шкалы почти всегда стоит перехода. Но после 200 штук прейскурант заканчивается, и «закажем пятьсот, будет ещё дешевле» опирается уже не на прайс, а на переговоры.

Где мой метод соврал с данными

Первое: я ждал, что скидка одинаковая у всех позиций. 13 из 15 действительно лежат в узком коридоре 18,4–19,8%, но пара позиций из искусственной кожи выбивается: блокнот 21,8%, ежедневник 16,8%. У ежедневника оба шага ниже медианных (7,9% и 9,7%), у блокнота первый шаг наоборот резкий (12,6%). Если считать бюджет по «средней скидке 19%», промах по этим двум позициям дойдёт до трёх процентных пунктов.

Второе: я ждал, что самый выгодный переход стоит на первой ступени. По медиане это почти так, но разница между шагами мала (9,5% против 10,5%), и полагаться на «первый скачок самый большой» не стоит.

Границы расчёта и оговорки по данным

Это одна вёрстка одного прайса, и три оговорки по данным.

У бутылки, термокружки и стикерпака в другой вёрстке того же прайса шкала другая, 50 / 200 / 500 штук; какая из двух вёрсток верна, по документам не установить. В расчёте основная таблица.

У блокнота и ежедневника в той же другой вёрстке шкала 20 / 100 / 250 штук. Их шаги из моего расчёта нельзя переносить в другой документ.

Скидка бывает не только процентной. В другом КП, которое я смотрел рядом для сравнения, цена на каждой позиции падает на фиксированную сумму: у худи это минус 50 ₽ на ступени (2650 → 2600, всего минус 1,9%), у ручки те же 50 ₽ дают минус 62,5% (80 → 30). Рублёвую шкалу в проценты не пересчитать, и наоборот: считать скидку «в среднем по отрасли» нельзя.

Источник данных: оптовый прайс производства корпоративного мерча, февраль 2026 года, сверка по сканам страниц 14.10.2026. Прогон и сводная таблица: 04.11.2026.