[Ozon · Automation · Analytics] internal tool · human-in-the-loop

Safe Ozon repricing and unit economics

An operator tool for a catalogue with thousands of SKUs. It combines Ozon and supplier data, calculates a protective FBS price, and handles FBO liquidation separately. Prices change only after a dry-run, human review, and rollback preparation.

verified workflow

An operator tool, not a pricing autopilot

human in the loop
try it5 controls · 8 synthetic SKUs

The demo recalculates recommendations and explains every status.

audit evidence7,473 SKUs · 126 tests · 19 writes

The verified catalogue audit is separate from the page's demonstration data.

boundaryNo unattended writes

Dry-run, canary, human approval and rollback are mandatory; no causal profit claim is made.

interactive demo · synthetic data // simplified model, not the production UI
Pricing parameters
Price corridor: protection from extremes
{{ avgMargin }} % avg calculated margin
{{ clampedCount }} products hit the corridor
Product
Cost
Fee
Price
Margin
Status
{{ r.name }}
{{ r.cost }} ₽
{{ r.comm }} %
{{ r.price }} ₽
{{ r.marginPct }} %
{{ r.status }}
Calculated margin distributionsynthetic data · −40…+45% scale
{{ r.name }}

The demo illustrates price-corridor mechanics with 8 fictional products. The production FBS model also uses acquiring, tiered commission, base and stress logistics scenarios, and a verified supplier cost. Scheduled monitors read data automatically; the operator confirms every price write.

decision and verification loop

From fresh data to a verified price

The automation prepares a decision and its evidence, while the operator retains write authority. Any mismatch moves the SKU into a safe path.

01

Collect current inputs

Ozon prices and orders are matched with supplier cost, commissions and logistics.

02

Model FBS and FBO separately

Each model gets base and stress scenarios, a price floor and an allowed corridor.

03

Show the operator a dry run

The proposed price, margin, reason and every constrained SKU are visible before a write.

04

Write a small batch and verify

A rollback is saved for up to 25 SKUs, then the new price is read back from the Ozon API.

→ VERIFIED

Continue the wave

The observed price matches the calculation.

→ QUARANTINE

Human review

Incomplete data or doubtful economics never reach the write step.

→ ROLLBACK

Stop and revert

A network error or mismatch halts the process.

01 · problem

One operator manages a large Ozon catalogue. Supplier costs, commissions, logistics, stock, and supplier availability change independently. The task is to calculate safe prices, keep FBS and FBO goals separate, and prevent a bulk operation from becoming an uncontrolled risk.

02 · solution

Python tools read prices, stock, orders, and financial operations from the Ozon Seller API and supplier costs from the Sima-land API. The FBS forecast calculates a target price from commission, acquiring, logistics, fulfilment, and cost. Historical P&L covers sold SKUs only and remains approximate where account-level costs cannot be attributed reliably.

The output is an inspectable file-based plan in CSV, JSON, or XLSX. There is no unattended price-writing mode.

03 · change safety

For FBS, the tool protects a minimum price and never proposes a reduction. FBO uses a separate liquidation flow: no more than a 20% reduction, and only when FBO stock exists while FBS stock is zero. This prevents a warehouse-clearance decision from weakening active FBS economics.

live read → dry-run → human review → confirmation → rollback → canary → small batch → API reread → quarantine check

It checks current price and cost, the floor, market-index bounds, and stress economics. A batch is capped at 25 items; rollback is saved before writing and the API price is read back afterwards. A network error, data mismatch, or quarantine result stops the next wave for an operator decision.

04 · verified outcome
7,473 SKUsin the verified 21 July 2026 audit
3 / 2,932passed automatically / routed to manual review
19 SKUswith confirmed price writes reached their targets

All 126 automated tests pass. No isolated causal before-and-after financial study has been run, so this case does not attribute an unverified profit increase to the tool.

05 · current boundaries

This is a production-assisted tool, not an autonomous service: there is no unified production database or central scheduler yet. Taxes are outside the model, some P&L attribution is approximate, and scheduled monitors need stronger network resilience. Price writes and quarantine release remain human decisions.

my role

I defined the business rules, FBS and FBO strategies, acceptable risk, and each write decision; I reconciled results against orders and settlements. AI assisted with engineering implementation, tests, and rollback mechanics.

Python httpx pydantic-settings pytest Ozon Seller API Sima-land API launchd CSV · JSON · XLSX
next case: MUTUAL →