Skip to content

Monthly repricing that holds margin across a whole parts catalog

Their problem

Staff repriced the catalog by hand each month, item by item, against supplier costs and competitor prices.

What we did

A rules engine that checked the full active catalog every month and wrote approved prices back to the ERP.

What changed

Every item checked every month, with only the exceptions left for a person to decide.

  • 100%

    Of the active catalog checked every month

  • 0

    Prices set below the margin floor

  • 3

    Reports after every run: summary, updates, exceptions

The problem

The client distributes electronic components to business buyers, and every part is identified by manufacturer and part number. Two prices matter for each item: the base selling price, which has to keep pace with supplier cost, and the online price, which has to stay competitive with other sellers of the same part. Both were maintained by hand once a month.

  • Staff compared each item's supplier cost with last month's, one item at a time, to find increases.

  • Every cost increase meant recalculating the selling price from that item's markup by hand.

  • Competitor prices were looked up part by part to keep online prices competitive.

  • A cost increase that slipped through quietly ate into margin until someone noticed.

  • At catalog scale the work was slow, and the same rules were not applied the same way every month.

What we built

We kept it deterministic. Pricing decisions with money on the line need to be predictable and explainable, so the engine runs two plain rules, not a model. Once a month it reads the catalog from the ERP, compares this month's costs with its own snapshot of last month's, checks live competitor offers for eligible parts, and applies only the changes that pass every guard. Anything that needs judgment goes to a person, with the reason attached.

Monthly run

PartWhat changedRuleDecisionStatus
Part A-1001Supplier cost up 8%MarginBase price raised at the item's markupUpdated
Part A-1002Lower in-stock offer foundCompetitorOnline price set just under it, above the floorUpdated
Part A-1003Supplier cost down 5%MarginHeld for review, not cutFlagged
Part A-1004Rival price below the margin floorCompetitorNot matchedFlagged
Part A-1005No change since last monthBothAlready correctSkipped
Part A-1006Markup missing in the ERPMarginNot pricedFlagged
  • Margin rule

    When a supplier's cost rises, the base price is recalculated from that item's own markup, so the margin holds

  • Competitor rule

    Finds the lowest in-stock, single-unit offer for the same part and undercuts it by a set percentage, but only if the result stays above a minimum margin over cost

  • Cost memory

    A month-by-month snapshot of costs, so increases are measured against last month rather than guessed

  • Exception queue

    Cost decreases, missing data and matches that would break the margin floor are listed for review instead of priced

  • ERP write-back

    Approved prices go straight into the ERP, and items that are already priced correctly are skipped

  • Run reports

    A summary, a list of updates and a list of exceptions emailed to the pricing team after every run

How it works

From trigger to result.

How the system works

8 stages

  1. 01Monthly schedule

    Logic

    Runs once a month, unattended, and never twice for the same month.

  2. 02ERP catalog

    Trigger

    Active items, current costs and price levels.

  3. 03Last month's costs

    Data

    A snapshot the engine keeps, so increases are measured, not guessed.

  4. 04Margin rule

    Logic

    Cost up: new base price from the item's own markup.

  5. 05Competitor offers

    Trigger

    Lowest in-stock, single-unit price for the same part.

  6. 06Margin floor check

    Logic

    Undercut only if the price stays above the floor.

  7. 07Exceptions

    Person

    Cost drops, missing data and floor breaches go to a person.

  8. 08Write-back and reports

    Result

    Approved prices written to the ERP. Summary, updates and exceptions emailed.

Rules-based by design. There is no AI in the pricing decision, so every change can be traced back to a rule and a number.

Our approach

How we worked.

  1. Discovery

    Mapped how the pricing team set prices by hand and turned it into two written rules with clear limits.

  2. Guards first

    Agreed what must never happen automatically, such as cutting a price because a cost fell, or pricing below the margin floor.

  3. Build

    Connected the ERP catalog, the month-over-month cost snapshot and the competitor data source, with rate limits and one-at-a-time ERP writes.

  4. Baseline

    The first run recorded costs without changing a single price, so every later run compared like with like.

  5. Run

    An unattended monthly schedule that can never apply the same month twice, with reports to the team after each run.

The outcome

What changed.

  • The whole active catalog was checked every month without anyone opening a spreadsheet.

  • Supplier cost increases reached the selling price in the same monthly run, at each item's own markup.

  • Online prices followed the market down only as far as the margin floor allowed.

  • Cost drops and unusual cases reached a person with the reason attached, instead of being applied silently.

  • Every run left an audit trail: what changed, what was skipped and why.

Questions

What people ask.

Can NetSuite prices update automatically when supplier costs change?

Yes, with an integration. The engine reads item costs and price levels from NetSuite, compares them with last month's costs, recalculates the selling price from each item's markup when a cost rises, and writes the approved price back.

How do you stop automated repricing from eroding margin?

With guards that run before any price is written. A competitor price is only matched if the result stays above a minimum margin over cost, and a falling cost never cuts a price on its own. Those cases go to a person instead.

Why use rules instead of AI for pricing?

Because every price change has to be explainable. A rule and a number can be checked line by line; a model's output cannot. For repricing against costs and competitor offers, plain rules are faster to audit and safer to trust.

What happens to items the engine cannot price?

They are listed in an exceptions report with the reason, such as missing data, a cost decrease or a competitor price below the margin floor, so the pricing team decides those by hand.

Related work

See all work

Hasaan WaseemHasaan WaseemFounder & CEO

Have a problem like this one?