Где кончается скидка за тираж: считаю оптовый прайс печати на футболках

Корпоративному клиенту, который заказывает десять футболок с логотипом, обычно говорят одно и то же: возьмите пятьдесят, будет дешевле. Я захотел проверить, сколько именно дешевле и как внутри шкалы тиража устроена скидка за тираж. Не на пальцах, а по реальному оптовому прайсу производства корпоративного мерча, где шкала задана явно. Ниже код, числа из прогона и два места, где моя гипотеза разошлась с данными.
Откуда данные и как их парсил
Прайс на печать на футболках на заказ и смежные позиции: 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 второй шаг больше первого.

Что из этого следует
Скидка внутри шкалы не выдыхается. Моя стартовая гипотеза была про убывающую отдачу: первый скачок большой, дальше плато. Данные дают обратное: второй шаг обычно чуть круче первого. В процентах прайс почти линеен. Рост тиража в пять раз даёт минус примерно 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.
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.