
Корпоративному клиенту, который заказывает десять футболок с логотипом, обычно говорят одно и то же: возьмите пятьдесят, будет дешевле. Я захотел проверить, сколько именно дешевле и как внутри шкалы тиража устроена скидка за тираж. Не на пальцах, а по реальному оптовому прайсу производства корпоративного мерча, где шкала задана явно. Ниже код, числа из прогона и два места, где моя гипотеза разошлась с данными.
Откуда данные и как их парсил
Прайс на печать на футболках на заказ и смежные позиции: 15 товаров, от футболок и худи до кружек, пауэрбанков и ежедневников. У каждой позиции одна шкала тиража: 10 / 50 / 200 штук. Нанесение DTF формата А7 входит в цену позиции. От 201 штуки прайс чисел не даёт, там сказано «согласовывается с руководством». Первый вывод можно сделать ещё до кода: шкала короткая, дальше начинается переговорная зона.
Данные сняты из прайса февраля 2026 года, сверенного по сканам страниц. Таблицу выгрузил в JSON, считал в Python. Парсинг на регулярках:
import reROW = 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 rowsdef 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 второй шаг больше первого.
Что из этого следует
Скидка внутри шкалы не выдыхается. Моя стартовая гипотеза была про убывающую отдачу: первый скачок большой, дальше плато. Данные дают обратное: второй шаг обычно чуть круче первого. В процентах прайс почти линеен. Рост тиража в пять раз даёт минус примерно 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.
ссылка на оригинал статьи https://habr.com/ru/articles/1105792/