Normalize
Map every proposal to the same requirements, templates, states, and responsibilities.
A useful proposal comparison reveals what each price buys, what it leaves with your team, and what the storefront will cost to own after launch.

Map every proposal to the same requirements, templates, states, and responsibilities.
Test claims about discovery, quality, accessibility, performance, and delivery.
Expose apps, assumptions, internal work, handover, and ongoing support.
Compare total cost and retained risk across the same operating horizon.
A Shopify theme proposal can look precise while leaving the most important delivery questions unanswered.
It may contain a timeline, a price and a list of pages. It may describe a premium experience, flexible components and best-practice development. But those phrases do not reveal which problems will be investigated, which templates and states will be delivered, how apps will be integrated, what will be tested or what the merchant will own.
That is why three proposals for the “same” project can have very different prices without describing equivalent work.
The objective is not to make every proposal identical. It is to normalize them sufficiently that the differences become intentional, understandable and priced.
A proposal price reflects more than design and development time. It also reflects how scope, uncertainty and delivery risk have been allocated.
One agency might include research, content modelling, edge cases, migration and post-launch stabilization. Another might exclude them. One may assume the client will provide complete approved content. Another may include content support. One may price custom components. Another may configure an existing theme.
Before comparing totals, identify:
The cheapest proposal can become expensive when missing work is discovered during delivery. The highest proposal can also be poor value if its additional cost does not address relevant outcomes or risks.
Do not use each proposal’s structure as the comparison structure. Create your own baseline from the approved project brief.
The baseline should state:
Then classify every baseline item in each proposal as:
Discovery determines whether the team is solving the right problem before expensive implementation begins.
Compare:
A workshop is not automatically useful discovery. Ask what evidence will be collected, what decisions it will support and what artefacts will be produced.
If discovery is excluded because the brief is already detailed, confirm how the agency will validate assumptions. If it is extensive, confirm why that depth is proportionate to the project.
“Homepage, product page and collection page” rarely describes the complete storefront.
Shopify’s theme architecture uses layouts, templates, section groups, sections, blocks and supporting assets. Proposals should therefore identify not only visible page concepts, but the reusable system and variations behind them.
Create a coverage matrix containing:
For each item, ask whether the proposal includes discovery, design, implementation, content setup and testing. A designed page is not necessarily a built template, and a built template is not necessarily populated or tested.
Also compare merchant control. Which sections and blocks can editors use? Where can they be reordered? Which settings and safeguards are included? How will the agency prevent flexibility from becoming an inconsistent or overwhelming editor?
Two storefronts can look similar while creating very different ownership costs.
Ask each team to explain:
Avoid rewarding complexity for its own sake. A simpler approach can be stronger when it meets the requirement cleanly. Equally, a low-code proposal is not automatically maintainable if it creates duplicated templates, excessive settings or operational workarounds.
Shopify advises merchants to treat theme code edits carefully because incompatible changes might not transfer to updated theme versions. Proposals involving substantial code modification should explain version control, update strategy, documentation and regression testing.
An app can be a responsible way to adopt mature functionality. It can also change recurring cost, performance, data flows, support and exit options.
For every required or recommended app, record:
Do not compare a proposal using existing paid apps with one including app replacement as if the technical and recurring costs are equivalent.
Where an app integrates through Shopify’s theme app extension model, app blocks and embeds can be managed without directly editing theme code. That is useful architectural information, but the proposal must still include configuration, styling and testing where required.
“Fully tested” is not a test plan.
A credible proposal should identify:
Clarify who supplies devices, test data, accounts and app credentials. Ask which defects block launch, what warranty or stabilization period applies and how unresolved issues are handled.
QA effort should match risk. A focused theme adjustment and a multi-market rebuild should not carry identical test scopes.
Accessibility and performance should appear as activities, standards and evidence—not adjectives.
For accessibility, compare:
Shopify’s accessibility guidance notes that following documented best practices alone does not guarantee a completely accessible theme. A proposal should explain the testing it will actually perform.
For performance, compare:
Shopify publishes detailed theme-performance practices, but a proposal must convert principles into work appropriate to the store.
Confirm the proposal’s position on:
Ownership should mean practical control, not merely a sentence saying the client owns the work. Your team should know where the assets live, who can access them, how the system is released and what knowledge is required to change it.
Assumptions explain conditions used to calculate the price. Exclusions identify work the supplier is not committing to deliver.
Common examples include:
Do not treat these statements as administrative detail. Convert each one into an owner, action, date, cost or accepted risk.
Also examine change control. What qualifies as a change? How is impact assessed? Who approves cost or timeline changes? How are discoveries handled when neither party could reasonably confirm them before work began?
A proposal with more explicit assumptions may be safer than one that appears comprehensive because it says very little.
Compare more than the project fee.
Include:
Use the same time horizon and assumptions for every proposal. Record uncertain costs as ranges or scenarios instead of hiding them.
Total cost of ownership does not make the highest proposal the best. It helps determine whether a higher initial price removes relevant recurring cost or risk—and whether a lower price remains lower after the missing work is included.
Adapt this checklist to the project, then ask every supplier to confirm each line.
For each proposal:
The goal of proposal review is not to make the lowest price look suspicious or the highest price look sophisticated.
It is to understand the complete exchange: what the supplier will discover, design, build, test, document and support—and what the client must provide, own or accept.
Once scope and lifecycle costs are normalized, price becomes more useful. It can be discussed alongside delivery evidence, working fit and the risks each proposal genuinely resolves.
Digiff helps ecommerce teams define and deliver Shopify theme projects with clear scope, technical boundaries, quality practices and long-term ownership.
If your team is comparing Shopify proposals, begin by turning each one into the same coverage, cost and risk model before selecting a partner.
Digiff helps ecommerce teams define theme projects, clarify technical boundaries, and compare delivery partners using a shared coverage, cost, and risk model.
Discuss your theme project