SABSUS / PRACTICAL GUIDEПРАКТИЧЕСКОЕ РУКОВОДСТВО
GMROI, turnover and sell-through: compare categoriesGMROI и оборачиваемость: сравнение категорий
A category can have a strong gross margin and still tie up a large stock balance. Use three different questions before changing the next purchase order: how much gross profit the average stock produces, how quickly its cost turns into sales, and what share of available units has sold. You need sales, refunds, product costs and dated stock balances for the same scope.Категория может давать высокую валовую маржу и одновременно связывать большой запас. Перед изменением закупки ответьте на три разных вопроса: сколько валовой прибыли приносит средний запас, как быстро его стоимость проходит через продажи и какая доля доступных единиц продана. Нужны продажи, возвраты денег, себестоимость и остатки на конкретные даты в одних границах учёта.
Choose one period and one cost basisВыберите один период и одну базу стоимости
Start with a measurement note: dates and timezone, included stores, categories, currency, tax treatment and inventory valuation method. Compare a September result with September, not an annual result with one month. A transfer between two included stores is internal movement; it is not a new purchase or sale for the combined category.Начните с паспорта расчёта: даты и часовой пояс, магазины, категории, валюта, порядок учёта налогов и метод оценки запаса. Сравнивайте сентябрь с сентябрём, а не годовой результат с месячным. Передача между двумя включёнными магазинами — внутреннее движение, а не новая закупка или продажа общей категории.
For the example below, the period is September 1–30, 2026, in UTC. All amounts are USD, excluding indirect taxes. Each category has one constant acquisition cost per unit; there are no separate freight charges, transfers, losses or write-downs. Net sales are after discounts and refunds. Cost of goods sold (COGS) is reduced when a same-period sale is returned to saleable stock.В примере ниже период — 1–30 сентября 2026 года, UTC. Все суммы указаны в долларах США без косвенных налогов. У каждой категории постоянная закупочная стоимость единицы; отдельных расходов на доставку, перемещений, потерь и уценки запаса нет. Чистая выручка учитывает скидки и возврат денег. Себестоимость проданного товара уменьшается при возврате продажи этого же периода в пригодный для продажи запас.
Real stock may use a different documented valuation method. Apply the same method to sold goods and inventory balances. Rent, payroll and financing costs belong in the wider result analysis; the gross-profit model here does not establish net profit or cash available to spend.В реальном учёте может использоваться другой документированный метод оценки. Применяйте его согласованно к проданным товарам и остаткам. Аренда, зарплата и финансирование учитываются при анализе общего результата; приведённая модель валовой прибыли не показывает чистую прибыль или свободные деньги.
Three formulas answer different questionsТри формулы отвечают на разные вопросы
Shopify defines GMROI as gross profit divided by average inventory at cost. Keep that cost denominator explicit. Shopify: GMROI definitionShopify определяет GMROI как валовую прибыль, делённую на средний запас по себестоимости. Эту базу знаменателя важно указывать явно. Определение GMROI у Shopify
On a small screen, focus this table and scroll horizontally.На узком экране выделите таблицу и прокрутите её по горизонтали.
| MetricПоказатель | Formula for the same periodФормула за один период | QuestionВопрос |
|---|---|---|
| GMROI | Gross profit ÷ average inventory at costВаловая прибыль ÷ средний запас по себестоимости | Gross profit per dollar of average stockВаловая прибыль на доллар среднего запаса |
| Inventory turnoverОборачиваемость | Net COGS ÷ average inventory at costЧистая себестоимость продаж ÷ средний запас по себестоимости | How many times inventory cost turned overСколько оборотов совершила стоимость запаса |
| Net-unit sell-through, our conventionSell-through по чистым единицам, наш метод | (Units sold − units returned) ÷ (opening units + receipts) × 100%(Проданные − возвращённые единицы) ÷ (начальный запас + поступления) × 100% | Share of units available in the period that were sold, net of returnsДоля доступных в периоде единиц, проданных за вычетом возвратов |
GMROI is a ratio: 1.20 means 1.20 dollars of gross profit per dollar of average inventory during the stated period. It is not a 120% net return or evidence that the business is profitable. Turnover is also a ratio. This guide expresses only sell-through as a percentage.GMROI — коэффициент: 1,20 означает 1,20 доллара валовой прибыли на доллар среднего запаса за указанный период. Это не 120% чистой доходности и не доказательство прибыльности бизнеса. Оборачиваемость также выражается коэффициентом. В этом руководстве только sell-through показан в процентах.
Name the sell-through method beside the number. Shopify’s report instead uses sold units ÷ (sold units + ending stock), and its sold-unit field excludes return adjustments. With returns, that result need not match our net-unit method. Shopify inventory-report definitionsУказывайте метод sell-through рядом с результатом. В отчёте Shopify используется число проданных единиц ÷ (проданные единицы + конечный остаток), причём поле продаж не учитывает корректировки возвратами. При возвратах результат может отличаться от нашего метода чистых единиц. Определения отчёта Shopify
A hypothetical ledger you can reconcileУсловные записи, которые можно сверить
These are invented teaching categories, not a customer case. All returns in A relate to sales in the same month, receive a full refund and return to saleable inventory at the original cost. Both categories have three movement days; all other days have no movements.Это вымышленные учебные категории, а не история клиента. Все возвраты категории A относятся к продажам того же месяца: деньги возвращаются полностью, товар восстанавливается в пригодном запасе по исходной себестоимости. Движения есть только в три дня; в остальные дни их нет.
On a small screen, focus this table and scroll horizontally.На узком экране выделите таблицу и прокрутите её по горизонтали.
| InputИсходное значение | A · everyday goodsA · повседневные товары | B · specialty goodsB · специализированные товары |
|---|---|---|
| Cost / realised sale price per unitСебестоимость / фактическая цена единицы | 10 / 20 | 20 / 50 |
| Opening units, September 1 before movementsНачальные единицы на 1 сентября до движений | 100 | 140 |
| September 1: received / sold / returned1 сентября: поступило / продано / возвращено | 100 / 80 / 0 | 20 / 20 / 0 |
| September 11: received / sold / returned11 сентября: поступило / продано / возвращено | 0 / 20 / 0 | 0 / 20 / 0 |
| September 21: received / sold / returned21 сентября: поступило / продано / возвращено | 0 / 30 / 10 | 0 / 20 / 0 |
| Sales before refunds / refunds, USDВыручка до возвратов / возврат денег, USD | 2,600 / 2002 600 / 200 | 3,000 / 03 000 / 0 |
| Ending units, September 30Конечные единицы на 30 сентября | 80 | 100 |
Quantity checks: A = 100 + 100 − 130 + 10 = 80; B = 140 + 20 − 60 = 100. Net units sold are 120 and 60. Returns are subtracted from the numerator once; they are not also counted as new supplier receipts.Сверка количества: A = 100 + 100 − 130 + 10 = 80; B = 140 + 20 − 60 = 100. Чистые продажи составляют 120 и 60 единиц. Возврат один раз вычитается из числителя; он не добавляется повторно как новое поступление от поставщика.
On a small screen, focus this table and scroll horizontally.На узком экране выделите таблицу и прокрутите её по горизонтали.
| Ten-day interval, inclusiveДесятидневный интервал, включительно | A: units / cost, each dayA: единицы / стоимость каждый день | B: units / cost, each dayB: единицы / стоимость каждый день |
|---|---|---|
| September 1–101–10 сентября | 120 / 1,200120 / 1 200 | 140 / 2,800140 / 2 800 |
| September 11–2011–20 сентября | 100 / 1,000100 / 1 000 | 120 / 2,400120 / 2 400 |
| September 21–3021–30 сентября | 80 / 800 | 100 / 2,000100 / 2 000 |
The chosen average is the sum of 30 end-of-day cost balances divided by 30. A: (10 × 1,200 + 10 × 1,000 + 10 × 800) / 30 = 1,000. B: (10 × 2,800 + 10 × 2,400 + 10 × 2,000) / 30 = 2,400. An opening-and-closing average would be a different sampling rule; do not silently mix it into this comparison.Выбранный средний запас — сумма 30 ежедневных конечных остатков по себестоимости, делённая на 30. A: (10 × 1 200 + 10 × 1 000 + 10 × 800) / 30 = 1 000. B: (10 × 2 800 + 10 × 2 400 + 10 × 2 000) / 30 = 2 400. Среднее начального и конечного остатка — другой способ выборки; незаметно подменять им этот расчёт нельзя.
Calculate and interpret the resultРассчитайте и объясните результат
On a small screen, focus this table and scroll horizontally.На узком экране выделите таблицу и прокрутите её по горизонтали.
| MetricПоказатель | A | B |
|---|---|---|
| Net sales, USDЧистая выручка, USD | 2,600 − 200 = 2,4002 600 − 200 = 2 400 | 3,000 − 0 = 3,0003 000 − 0 = 3 000 |
| Net COGS, USDЧистая себестоимость продаж, USD | (130 − 10) × 10 = 1,200(130 − 10) × 10 = 1 200 | 60 × 20 = 1,20060 × 20 = 1 200 |
| Gross profit, USDВаловая прибыль, USD | 2,400 − 1,200 = 1,2002 400 − 1 200 = 1 200 | 3,000 − 1,200 = 1,8003 000 − 1 200 = 1 800 |
| Gross marginВаловая маржа | 1,200 / 2,400 = 50%1 200 / 2 400 = 50% | 1,800 / 3,000 = 60%1 800 / 3 000 = 60% |
| GMROI | 1,200 / 1,000 = 1.201 200 / 1 000 = 1,20 | 1,800 / 2,400 = 0.751 800 / 2 400 = 0,75 |
| Turnover in the monthОбороты за месяц | 1,200 / 1,000 = 1.201 200 / 1 000 = 1,20 | 1,200 / 2,400 = 0.501 200 / 2 400 = 0,50 |
| Net-unit sell-throughSell-through по чистым единицам | 120 / (100 + 100) = 60% | 60 / (140 + 20) = 37.5%60 / (140 + 20) = 37,5% |
B earns more gross-profit dollars and has a higher gross margin, yet produces less gross profit per dollar of average inventory. That is a reason to inspect the size and timing of its stock commitment. It does not prove that B should be removed: its selling season, supplier lead time and role in the assortment may justify holding it.B приносит больше валовой прибыли в деньгах и имеет более высокую валовую маржу, но даёт меньше валовой прибыли на доллар среднего запаса. Это повод проверить объём и сроки вложения в запас. Само по себе это не основание убрать B: сезон продаж, срок поставки и роль в ассортименте могут объяснять необходимость такого остатка.
As an arithmetic cross-check, GMROI = (gross profit / net COGS) × turnover when both denominators are positive: A = 1 × 1.20; B = 1.5 × 0.50. The multiplier is profit relative to cost, not the gross-margin percentage based on revenue.Для арифметической сверки: GMROI = (валовая прибыль / чистая себестоимость продаж) × оборачиваемость, если оба знаменателя положительны. A = 1 × 1,20; B = 1,5 × 0,50. Первый множитель выражает прибыль относительно себестоимости, а не процент валовой маржи от выручки.
Do not multiply this September GMROI by 12 and present it as a measured annual result. One monthly snapshot cannot establish the full selling cycle or a universal “good” GMROI.Не умножайте сентябрьский GMROI на 12, выдавая итог за измеренный годовой результат. Один месяц не описывает полный цикл продаж и не задаёт универсальный «хороший» GMROI.
Stop comparisons when the inputs change meaningПриостановите сравнение, если меняется смысл данных
- A late seasonal delivery increases stock before it has had time to sell. Compare exposure time and the corresponding season; retain the original receipt dates.Поздний сезонный завоз увеличивает запас раньше, чем товар успевает продаться. Сравнивайте время нахождения в продаже и одинаковый сезон; сохраняйте даты поступления.
- Discounts reduce realised revenue. Reconstruct net sales from the transactions instead of multiplying units by today’s list price.Скидки уменьшают фактическую выручку. Восстанавливайте чистую выручку по операциям, а не умножайте количество на сегодняшнюю цену из прайс-листа.
- An older-period return or an unsaleable return breaks the simple example’s assumptions. Keep financial refund, cost reversal and stock disposition separate; disclose your cross-period policy.Возврат продажи прошлого периода или непригодный товар нарушают предпосылки примера. Разделите возврат денег, восстановление себестоимости и судьбу запаса; укажите правило для разных периодов.
- If average inventory or the sell-through denominator is zero, show “not calculable” with a reason. Negative stock and unknown item costs require investigation, not a silent zero or an infinite score.При нулевом среднем запасе или знаменателе sell-through покажите «не рассчитывается» и причину. Отрицательный остаток и неизвестная себестоимость требуют проверки, а не незаметного нуля или бесконечного коэффициента.
- For missing costs, state how many units and sales dollars are excluded. A ranking based only on the cost-complete subset can reverse when the missing category is restored.При пропущенной себестоимости укажите число исключённых единиц и объём выручки. Рейтинг по известной части может измениться после восстановления данных.
- A stockout can make inventory look lean while concealing missed demand. Read availability and unfulfilled requests beside the ratios before cutting stock further.Дефицит может создавать видимость компактного запаса, скрывая неудовлетворённый спрос. Перед дальнейшим сокращением остатка проверьте доступность и неисполненные запросы.
Turn a ratio into a purchasing questionПревратите коэффициент в вопрос к закупке
For A, first inspect availability: its stronger turnover could justify protecting the supply rhythm, but not an unlimited increase in purchases. For B, inspect ageing by variant and the next selling event. A smaller or later delivery is worth evaluating only if it still covers the expected demand and supplier constraints.Для A сначала проверьте доступность: более высокая оборачиваемость может быть доводом сохранить ритм поставок, но не бесконечно увеличивать закупку. Для B посмотрите возраст отдельных вариантов и ближайший сезонный повод. Меньшую или более позднюю поставку имеет смысл рассматривать, только если она покрывает ожидаемый спрос и ограничения поставщика.
Write down one proposed change, the affected SKUs, the next comparable review period and the downside to watch. Review gross-profit dollars, average stock and unavailable selling time together. An improved ratio caused only by empty shelves is a different outcome from better stock allocation.Запишите одно предлагаемое изменение, затронутые SKU, следующий сопоставимый период проверки и возможный отрицательный эффект. Рассматривайте вместе валовую прибыль в деньгах, средний запас и время отсутствия товара. Улучшенный коэффициент из-за пустой полки — иной результат, чем более точное распределение запаса.
For the broader context, use the margin dashboard guide. Keep the cost and ROI of an inventory system as a separate decision.Для более широкого контекста используйте руководство по панели маржи. Затраты и ROI складской системы рассматривайте как отдельное решение.
Scenario checks before implementationПроверки сценариев перед внедрением
- Reproduce one category from receipts, refunds, cost records and dated balances; retain the export date and reporting cutoff.Восстановите одну категорию по продажам, возвратам, себестоимости и датированным остаткам; сохраните дату выгрузки и границу отчёта.
- Confirm whether the report uses daily balances, two endpoints or another average; check receipt and return timing.Уточните, использует ли отчёт ежедневные остатки, две крайние точки или другое среднее; проверьте даты поступлений и возвратов.
- Demonstrate a full return, a partial refund, an unknown cost, zero stock and an internal transfer. Each must have an explained effect or exclusion.Проверьте полный возврат, частичный возврат денег, неизвестную себестоимость, нулевой остаток и внутреннее перемещение. Для каждого должно быть объяснено влияние или исключение.
- Label the period, currency, ratio units, cost basis and sell-through denominator beside the output. Agree who investigates exceptions before a buying decision.Подпишите период, валюту, единицы коэффициентов, базу стоимости и знаменатель sell-through рядом с результатом. Назначьте ответственного за исключения до решения о закупке.
These checks are requirements for evaluating a configuration. They do not establish that every formula is a ready-made SABSUS report. Use the reports and analytics module as the starting point for discussing the required data and output.Это требования для проверки конфигурации. Они не означают, что каждая формула уже представлена готовым отчётом SABSUS. Начните обсуждение нужных данных и результата со страницы отчётов и аналитики.
Sources checked October 6, 2026. Vendor documentation can change; the formulas, sample assumptions and comparison rules above define this particular worked example.Источники проверены 6 октября 2026 года. Документация поставщиков может меняться; формулы, предпосылки и правила сравнения выше определяют именно этот учебный пример.
Discuss inventory reporting requirementsОбсудить требования к отчётам по запасу