Starting prices by service
Rendering analysis
From CAD 2,400
Up to three route families, traces on fast and throttled profiles, ranked findings, walkthrough call.
Rendering strategy review
From CAD 3,200
Route inventory, baseline traces, per-route recommendation with trade-offs. Prototyping quoted separately if needed.
Hydration optimization
From CAD 2,800
Hydration measurement and component maps for up to three route families, mismatch list, framework-specific plan.
JavaScript and main-thread work
From CAD 2,600
Start-up and interaction traces, long-task attribution, code-level plan where source access allows.
INP debugging
From CAD 2,200
Attribution review, reproduction of the worst interactions, phase breakdown and fixes for up to five interactions.
Framework performance review
From CAD 3,400
Version and configuration check, profiling, code reading on the slowest paths, grouped recommendations.
Asset and font loading
From CAD 1,600
Waterfalls and LCP breakdown for main routes, loading plan, tested font settings.
Real-user monitoring setup
From CAD 1,900
Collector code, context fields, sampling, dashboards and a review of the first week of data.
Add-ons
- Pull request review: comments on the changes your team makes from our plan, priced as a fixed block of hours at CAD 165 per hour, agreed in advance.
- Hands-on engineering: we write or pair on changes in your codebase, as a fixed block of hours at CAD 165 per hour.
- Retest: a repeat of the original traces on a later build, with a short comparison note, from CAD 600.
A worked quote example
This example is illustrative: the company, the app and the scope are invented to show how a quote is put together from the starting prices above.
A Toronto software company runs a Next.js customer portal. Field data shows Interaction to Next Paint in the "needs improvement" range on mobile, and the team suspects hydration. After a scoping call, the quote might read:
| Item | Scope | Price |
|---|---|---|
| Rendering analysis | Three route families: dashboard, invoice list, settings | CAD 2,400 |
| INP debugging | Attribution review and the five slowest interactions | CAD 2,200 |
| Pull request review | A block of 8 hours at CAD 165 per hour | CAD 1,320 |
| Retest | Repeat traces on the release that ships the fixes | CAD 600 |
| Total before tax | CAD 6,520 |
Sales tax would be added on top according to the client's province. Under the payment terms below, nothing is owed until the quote is accepted; after acceptance, half of the fixed price for the review items is invoiced as a deposit and the rest when findings are delivered, while the add-ons are invoiced when they are done.
Two things in this example are worth noticing. First, the analysis and the INP work overlap, so a real quote might combine them at a lower total; we would point that out. Second, the pull request block is optional: a team confident in implementing the plan alone could drop it and keep the retest.
What affects the quote
The starting prices cover the standard scope described for each service. A quote rises when there are more routes or interactions to cover, when the app needs complex test data or sign-in setup, when field data must be collected before analysis, or when you ask for prototypes or implementation. The quote is fixed before any deposit and changes only if we both agree a change of scope in writing. If a smaller scope fits your problem, the quote can come in below the starting price, and we will suggest that when it does.
What is not included
Starting prices cover findings and a walkthrough, not implementation. They also exclude work on back-end systems, infrastructure changes, accessibility audits and design changes, though the findings may point to these when they matter for performance. Third-party software costs, such as a monitoring product you decide to buy, are yours to pay directly; we do not resell software or take commissions.
Choosing between services on a budget
If budget allows only one engagement, choose by evidence. With poor field INP and no attribution, INP debugging gives the most direct route to fixes. With a broad sense that the app is slow but no clear data, a rendering analysis is the safer first step because its findings cover loading, responsiveness and stability together. With no field data at all, real-user monitoring setup is a sensible start, since every later decision benefits from it.
How payment works
- We agree the scope on a call or by email.
- You receive a written quote with a fixed price, the deliverables and a start date.
- Nothing is owed until you accept the quote in writing. After acceptance we invoice a deposit of half the fixed price, and the balance when we deliver the findings.
- Add-ons are quoted and accepted separately before any work on them begins.
Prices exclude sales taxes. GST, HST or QST is added where it applies to you. Invoices are issued in Canadian dollars.
Questions about pricing
Why do you publish prices when many providers do not?
Because it saves both sides time. If the starting price is outside your budget, you know before a call. The scope behind each price is listed on the service pages.
Can the price change once agreed?
Not for the agreed scope. If you ask for more during the work, such as extra routes, we quote that addition separately and you can decline it.
Do you offer free audits?
No. Free automated reports are already available from tools such as PageSpeed Insights, and a meaningful review takes skilled time. Our free tools and guides are there if you want to start on your own.
Can we pay by the hour instead?
For implementation, yes, as an agreed block of hours. For reviews we prefer fixed prices so you know the cost up front.