This is a sample report. Start your own assessment below. Start Your Assessment →
← All use cases
E-commerce & retail

Prices tracked and adjusted within the margins you set.

What the audit checks

Somebody checks competitor prices by hand now and then, and the reaction comes late. The audit looks at how available the price data is, what rules have to hold so you do not wreck your margin, and why you probably do not need AI for this one.

Self-Audit Assessment Report

Dynamic repricing against competitors

01 Jan 2026

01/Recommendation
Recommended path

Traditional Code

A rules-based Shopify integration will automate 75% of repricing runs and pay back within two months.

Dynamic repricing against competitors is a high-volume, rule-driven process with clear margin guardrails, making it an excellent candidate for traditional code rather than AI. The routine cases follow deterministic logic: if a competitor price falls within defined bounds, adjust and update Shopify via API. The founder already writes SQL and has built custom scripts, so a lightweight Python service or Shopify script that polls competitor price feeds and applies the margin rules is entirely within reach. This approach handles the 75% of standard cases automatically, routes the remaining 25% of exceptions to the ops team for review, and avoids the overhead and unpredictability of an AI layer that is simply not needed here. The recommended path fits the existing Shopify-plus-custom-scripts stack directly.

The recommended traditional code path maps directly onto the client's Shopify environment and the founder's existing scripting capability, requiring no new platforms or vendor dependencies.

02/Process Overview

Process Overview

Dynamic repricing against competitors is a recurring operational process run by a two-person ops team and the founder several times a week. The team manually checks competitor prices across relevant products, compares those prices against their own current Shopify listings and a set of margin guardrails, and decides whether to adjust prices upward or downward within the allowed boundaries. Once a decision is made, prices are updated directly in Shopify. Any cases that fall outside the standard rules, roughly a quarter of all runs, are handled separately through a mix of judgement calls, email and spreadsheets.

The process runs approximately 260 times a year and takes around 90 minutes per run, adding up to roughly 390 hours of manual effort annually. The core logic is largely deterministic: if a competitor price moves and the corresponding adjustment keeps the product within defined margin floors and ceilings, the update should happen. The complication is that a meaningful share of cases involve ambiguity, data quality issues or conflicts between margin rules and competitive positioning, all of which currently land back on the ops team to resolve by hand.

The founder has already built custom scripts and integrations on top of Shopify, and the Shopify Admin API is fully available. The internal pricing rules exist but are only partially documented, which means some of the logic currently lives in people's heads rather than in any system. That gap is the main thing that needs closing before any automation can be built reliably.

03/Path Scores

Path Scores

Traditional Code Recommended
9/10

The repricing logic is deterministic: compare competitor price, check margin bounds, update or escalate. The Shopify API is available and the founder can build and maintain the integration. This is the simplest approach that solves the problem completely for the routine majority of cases.

AI Agent + human review
7/10

A hybrid approach adds a human review gate for the 25% of exception cases on top of the automated core, which is essentially what the recommended traditional code solution already does by design. It is viable but not a distinct path here since the exception routing is built into the code solution.

RPA
5/10

RPA could scrape competitor prices and update Shopify without an API, but since the Shopify API is available and the team can code, RPA adds fragility and licensing cost for no benefit over a direct integration.

AI Workflow Not recommended
4/10

The repricing rules are explicit and do not require inference or language understanding, so an AI workflow introduces unnecessary complexity and cost. It would be useful only if the rules were ambiguous or the data unstructured, which is not the case here.

AI Agent Not recommended
3/10

An autonomous AI agent is significant overkill for a process governed by clear margin rules. The unpredictability of agent behaviour would be a liability in a pricing context where margin violations have direct financial consequences.

Education (AIRIES) Not recommended
3/10

Training alone would not reduce the 390 hours of annual manual effort. The team already understands the process; the gap is tooling, not knowledge.

Stay Manual Not recommended
1/10

The current manual process is slow, error-prone and costs roughly 390 hours per year. Staying manual is not defensible when a straightforward API integration can eliminate the bulk of that effort.

04/Process Dimensions

Process Dimensions

Eight dimensions drive the recommendation, scored 0–10 with a note on each.

Data Structure 7/10

Competitor price data is currently pulled manually but is inherently structured numeric data; once a feed or scraper is in place the structure is clean and machine-readable.

Rule Clarity 8/10

Margin guardrails are explicit and the repricing logic is deterministic, making the rules straightforward to encode without ambiguity.

Exception Frequency 6/10

Approximately 25% of runs are non-standard and require human judgement, which is manageable via an exception queue but means full automation is not possible.

Integration Readiness 8/10

Shopify exposes a well-documented API and the founder has already built custom integrations, so the technical path to automation is clear and low-risk.

Volume / ROI 8/10

At 260 runs per year and 90 minutes each the process consumes roughly 390 hours annually, giving a strong ROI case even for a modest build investment.

Process Stability 6/10

Pricing rules and margin thresholds may shift with business strategy, but changes are infrequent and the codebase would be small enough to update quickly.

Human Judgment Required 5/10

The routine majority requires no judgement, but the 25% exception tail involves genuine commercial decisions that must stay with a human.

Compliance Requirements 4/10

Consumer pricing law and GDPR apply but are not heavyweight; the main compliance requirement is that prices never breach defined margin floors, which the rules engine enforces by design.

05/ROI Estimate

ROI Estimate

£29,250

Current annual cost

70%

Estimated time saved

£20,475

Annual savings

1mo

Payback period

Build cost estimate: £3,000 – £7,000

Current annual cost is based on 260 runs x 90 minutes x GBP 45 per hour = GBP 29,250. A 70% saving assumes the automated engine handles the 75% routine cases fully and reduces handling time on the 25% exception cases by roughly half; build cost reflects a founder-led build with light external support.

06/Implementation Roadmap

Implementation Roadmap

1
Define and document repricing rules 1 week

Work with the founder and ops team to write down every margin rule, floor price, ceiling price and escalation condition as explicit logic. This is the foundation everything else depends on and typically surfaces edge cases that are currently held only in people's heads. Effort is low but the output must be signed off before any code is written.

2
Build competitor price feed ingestion 1-2 weeks

Identify the competitor price sources (retailer sites, price comparison APIs, or a third-party data provider) and build a lightweight Python service that fetches and normalises the data on a schedule. The founder's existing scripting capability makes this straightforward. Key dependency is confirming the data sources and their reliability.

3
Build the repricing engine and Shopify integration 1-2 weeks

Implement the documented rules as a decision function that compares competitor prices against current Shopify prices and margin bounds, then calls the Shopify Admin API to update prices for standard cases and writes exception records to a queue for human review. Include logging so every price change is auditable.

4
Build the exception review interface 1 week

Create a simple dashboard or email digest that surfaces the 25% of non-standard cases with the relevant context so the ops team can make a decision quickly. This can be as simple as a formatted Slack message or a lightweight web view. The goal is to make exception handling faster, not to eliminate it.

5
Test, tune and go live 1-2 weeks

Run the engine in shadow mode alongside the manual process for one to two weeks, comparing automated decisions against what the team would have done. Tune thresholds, fix edge cases and confirm the exception rate matches expectations before switching off the manual workflow.

07/Risks & Considerations

Risks & Considerations

The biggest risk is incomplete rule documentation: if margin floors or special-case logic remain undocumented, the engine will either make wrong pricing decisions or escalate too many cases to be useful. A shadow-mode testing period before go-live is essential to catch gaps before they affect live prices. Consumer pricing law requires that automated price changes never breach advertised or legally required price commitments, so the rules engine must treat margin floors as hard constraints with no override path, and every change must be logged for audit purposes. The ops team must remain genuinely engaged with the exception queue rather than treating it as a rubber-stamp step; if exceptions are approved without review the human oversight value is lost. Finally, competitor data feed reliability is a dependency: if the feed goes stale or returns bad data, the engine should fail safe by holding current prices rather than acting on corrupt inputs.

AIRIES/Learning recommendation

Train the team, not just the tool.

In partnership with AIRIES, the Swiss AI learning platform. These levels fit your result.

Recommended levels
  1. 3
    Corporate Applied Intelligence & Automation
    Turn your own tasks into AI workflows, build reports and dashboards, set up a personal AI assistant.
  2. 5
    AI for Strategy & Operations
    Optimise operations, forecast, and automate KPIs and executive reporting.
Why these levels

The ops team and founder will own, maintain and evolve this automation, so they need the skills to audit their own workflows, build on top of what is delivered and spot when the rules need updating. Level 3 gives them the practical workflow-automation mindset to extend the repricing engine and connect it to reporting. Level 5 adds the operations and performance-intelligence layer so they can track pricing KPIs, monitor margin outcomes and make data-driven decisions about when to adjust the rules.

Focus topics
Who should take it

The two-person ops team and the founder, who will maintain the codebase and own the exception review process.

Explore these levels on AIRIES → The levels come from the AIRIES course catalogue. Opening the link does not commit you to anything.
08/Architecture Overview

Architecture Overview

flowchart TD A(["Scheduled Trigger"]) B["Fetch Competitor Prices"] C["Apply Margin Rules"] D{"Within guardrails?"} E["Update Shopify via API"] F["Write to Exception Queue"] G["Ops Team Review"] H(["Prices Updated"]) subgraph External["External Systems"] P("Competitor Price Feed") S("Shopify") end A --> B P --> B B --> C C --> D D -->|"Yes"| E D -->|"No"| F E --> S E --> H F --> G G --> S G --> H

Hover to zoom · click for fullscreen

09/Why This Approach

Why This Approach

The recommended path is Traditional Code, specifically a lightweight Python service that polls competitor price data on a schedule, applies the documented margin rules as a decision function, and calls the Shopify Admin API to update prices for routine cases automatically. This is the right call because the repricing logic is fundamentally deterministic. There is no ambiguity that requires inference, no unstructured language to interpret, and no need for a model to make judgement calls. The rules either permit an adjustment or they do not, and that is exactly the kind of logic that belongs in clean, testable code rather than an AI system.

The recommendation fits the client's preferred stack directly. The founder already writes custom scripts, has built Shopify integrations before, and is comfortable working at this level of technical depth. There is no new platform to procure, no vendor dependency to manage, and no licensing cost beyond whatever data feed is needed for competitor prices. The entire solution can be built, tested and owned in-house, which matters for a two-person ops team that needs to maintain and adjust the rules as business strategy evolves. That alignment between the recommended approach and the existing tooling is not a coincidence: it is one of the reasons Traditional Code scores so strongly here.

Hybrid was also assessed and scores reasonably well, but it is not a meaningfully distinct path in this case. The exception routing that defines a hybrid approach is already built into the Traditional Code solution by design: standard cases are automated, non-standard cases are written to a review queue for the ops team. Calling it a separate path would be misleading. The hybrid label is more useful when the automation layer and the human review layer come from different systems or vendors; here they are part of the same build.

RPA was considered and is technically capable of scraping competitor prices and updating Shopify, but it is the wrong tool when an API is available and the team can code. RPA adds fragility because it depends on screen layouts staying consistent, it introduces licensing cost, and it offers no advantage over a direct API integration in this context. An AI Workflow or AI Agent scores even lower for the same fundamental reason: the rules are explicit, so adding an inference layer creates unpredictability and cost without solving any problem that the rules engine does not already handle cleanly. In a pricing context where margin violations have direct financial consequences, unpredictability is a liability, not a feature.

The honest tradeoff to acknowledge is that the 25% exception tail will not disappear. The automation handles the routine majority and makes the exception cases faster to process by surfacing them with context, but it does not eliminate the need for human judgement on edge cases. That is appropriate. The goal is not to automate everything; it is to remove the repetitive majority from the ops team's plate and make the genuinely difficult decisions easier to act on. A payback period measured in weeks, not months, makes the case for building this straightforwardly.

10/Comparing the Top Approaches

Comparing the Top Approaches

Traditional Code is the clear winner here, and the reason is simple: the repricing logic is already deterministic. Margin floors exist, guardrails are defined, and the Shopify API is open. When a process has explicit rules and a clean API endpoint to write to, introducing an AI layer is not sophistication, it is unnecessary complexity. The routine 75% of cases follow a compare-and-update pattern that a Python service can execute reliably, cheaply, and auditably without any inference or language understanding involved.

The Hybrid path scored second and is worth addressing directly, because on the surface it sounds like a different recommendation. It is not. The traditional code solution already routes exceptions to a human review queue by design, which means the hybrid approach is effectively built into the recommended path rather than sitting alongside it as an alternative. Calling it out separately would overstate the architectural decision involved.

RPA is the only other path that could plausibly work, but it would be the wrong tool given what the team already has. RPA earns its place when there is no API and a human has to navigate a UI to interact with a system. Here, Shopify exposes a well-documented Admin API and the founder already writes scripts against it. Choosing RPA over a direct API integration would mean accepting browser-based fragility, licensing costs, and a maintenance burden that a clean Python service simply does not carry. The founder's existing capability makes Traditional Code not just the best path in theory but the most practical one to actually deliver and own.

11/How to Build It

How to Build It

The foundation of everything is rule documentation, and it needs to happen before a single line of code is written. The founder and ops team should sit down and write out every margin floor, ceiling price, and escalation condition as explicit if-then logic. This exercise almost always surfaces edge cases that have been living in someone's head rather than in any document, and those gaps are exactly what cause automated systems to make bad decisions on live prices. The output should be a signed-off rules document that the code will faithfully implement, not interpret.

With the rules documented, the next build is competitor price feed ingestion. Depending on where competitor prices currently come from, this is either a scraper targeting retailer product pages, a call to a third-party price intelligence service such as Prisync or Skuuudle, or a lightweight crawler that normalises raw HTML into structured records. The result is a scheduled Python service, likely running on a small cloud instance or a tool like GitHub Actions on a cron schedule, that fetches competitor prices, cleans the data, and writes normalised records to a simple database or flat file that the repricing engine can read from. The founder's existing scripting capability makes this the most straightforward part of the build.

The repricing engine itself is a decision function that takes a competitor price, looks up the current Shopify price and the applicable margin bounds from the rules document, and either calls the Shopify Admin API to update the price or writes a record to an exception queue. Every action the engine takes should be logged to a persistent store, whether that is a Postgres table, a SQLite file, or even a structured CSV, so that every automated price change is fully auditable. The Shopify Admin API's product variant endpoint handles price updates cleanly, and the founder will already be familiar with its authentication model from previous integrations.

The exception queue needs a review surface that the ops team will actually use. This does not need to be a custom web application. A formatted Slack message that presents the relevant context, the competitor price, the current price, the margin position, and why the case was escalated, gives the ops team everything they need to make a quick decision. If the team prefers email, a digest can be sent at a fixed time each day. The goal is to compress the time spent on the 25% of non-standard cases rather than to eliminate them, and a well-formatted notification does that without requiring a separate tool to be built and maintained. Once the queue surface is in place, the final step is a shadow-mode period of one to two weeks where the engine runs alongside the manual process and its decisions are compared against what the team would have done. That comparison catches rule gaps, data quality issues, and threshold mismatches before any automated change touches a live price.

12/Risks in Detail

Risks in Detail

The most consequential risk is incomplete rule documentation, and it is worth being direct about what that failure mode looks like in practice. If a margin floor or a category-specific pricing exception remains undocumented when the engine goes live, the system will either make pricing decisions that erode margin or escalate so many cases that the ops team stops engaging with the queue meaningfully. Both outcomes are bad. The shadow-mode testing period exists specifically to catch these gaps, but it only works if the team takes the comparison seriously and investigates every divergence between the automated decision and what they would have done manually. Treating shadow mode as a formality is the fastest way to ship a system that fails quietly on edge cases.

The second category of risk sits at the intersection of data quality and financial exposure. If the competitor price feed returns stale, missing, or corrupted data, the engine must be designed to hold current prices rather than act on bad inputs. A fail-safe default is not optional here, it is a hard design requirement. Beyond feed reliability, consumer pricing law creates a compliance constraint that the rules engine must treat as non-negotiable: automated price changes must never breach advertised price commitments or legally required price floors, and the audit log must be complete enough to demonstrate that if challenged. The ops team also needs to stay genuinely engaged with the exception queue rather than approving cases without review. If exception handling becomes a rubber-stamp step, the human oversight that justifies the automation design is lost, and the team loses the feedback loop that tells them when the rules need updating.

⚡

Claude Code Starter

A scaffolded project ready to open in Claude Code. Unzip, open the folder, and Claude starts building immediately.

Claude Code Starter (.zip)

Your own assessment includes a ready-to-use project scaffold: CLAUDE.md, pyproject.toml, src/agent.py and .env.example. Open the folder in Claude Code and it starts building.

📁 your-process/
📄 CLAUDE.md
📄 pyproject.toml
📁 src/agent.py
📄 .env.example
Start Your Assessment

What's next?

That was someone else's process. Now do yours.

Same seven paths, same eight dimensions, same honest verdict, except scored against how your team actually works. Five to eight questions, about fifteen minutes.

Start Your Assessment
E-commerce & retail
Product descriptions generated from a photo Automated review responses Abandoned carts and personalised follow-up Returns triage from photo and description
Illustrative scenario based on how these processes typically run. Not a customer case study. Run this on your own process