A Pattern We Kept Building.Shipped Once, As a Product.
Quote → paid
in one flow
QuotingAI is our own software, not a client engagement. It is the quoting pattern we had already built more than once as custom work, productised into a live multi-tenant SaaS any contractor can sign up for. We list it here because it is real shipped work — but it is our product, and it is not evidence of what we did for a customer.
The Same Win, Three Times Over.
Across our client builds the same pattern kept paying for itself: quoting is where trades businesses quietly lose jobs. We had built the fix as custom software more than once — for a landscaper, for a demolition contractor — and each time the win came from the same place. Turn a described job into a priced, professional proposal fast, while the lead is still warm.
When the same shape of problem shows up in build after build, that is a signal worth acting on. The question was whether the pattern could be shipped once, as a product, instead of rebuilt each time from the ground up.
QuotingAI is the answer to that question. It is deliberately listed as our own product rather than mixed in with client results, because a company quoting its own software as proof of client outcomes is exactly the kind of thing this site is not going to do.
At a glance
- Client
- AltaPro AI (our own product)
- Category
- Quoting SaaS for trades
- Location
- Built in Edmonton, Alberta
- Build
- Multi-tenant SaaS
- Live at
- quotingai.ca
- Status
- AltaPro AI product · not client proof
Described Job In. Signed Deposit Out.
The three steps a contractor usually spreads across a spreadsheet, an email thread and a payment link, collapsed into one path.
Draft from a description
A described job becomes a priced, itemised proposal built on the company's own rates rather than a generic template, so the number reflects how that business actually charges.
Sign without leaving
E-signature is built into the same flow rather than bolted on, so the proposal does not have to survive a round trip through a separate signing product to get accepted.
Take the deposit at signing
A Stripe deposit is collected at the moment of signature — the point at which a customer is most committed, and the point most quoting tools hand the job back to the contractor to chase.
Productised From Real Builds.Not From a Whiteboard.
Every part of QuotingAI existed first as custom software that a real operation used to win real work. That is the only reason we were willing to productise it: the shape had already been proven against actual quoting, actual rate cards and actual customers before it became a product anyone could sign up for.
Architecture & The Hard Parts.
The real engineering — what the system is built on, and the non-obvious problems that had to be solved to make it hold up in production.
Multi-Tenancy That Cannot Leak
One codebase serving many contractors means every read and write has to be scoped to a tenant, and the interesting failure is not the obvious query — it is the report, the export, the background job or the webhook handler where a missing filter silently crosses a boundary. Pricing and customer data are the two things a contractor would never forgive us for mixing, so tenancy is enforced at the data layer rather than trusted to each caller.
Every Company Prices Differently
A generic pricing model would have made the product useless to precisely the businesses it was built for. Each tenant brings their own rates, materials, tiers and margin rules, so the engine had to stay configurable per company while still producing a proposal fast enough to matter — configurability and speed usually pull against each other, and the work was in not letting them.
Money at the Signature
Collecting a deposit at the moment of signing means the signature event and the payment event have to agree, even when a browser closes mid-flow or a webhook arrives twice. Payment state is reconciled against Stripe rather than inferred from the user's journey, because a proposal marked paid that is not, or a deposit taken against an unsigned quote, are both unacceptable in different directions.
Plans, Billing and Branding Per Tenant
A product is not just the feature — it is subscription plans, billing state, and each company's own branding on a document that goes to their customer. Getting that wrong does not break the app, it embarrasses the contractor in front of their client, which is a worse kind of bug than a crash.
What it runs on
Model
- Multi-tenant SaaS
- Per-company config
- Plan & billing state
Quoting
- AI quote drafting
- Own rate cards
- Itemised proposals
Closing
- E-signature built in
- Stripe deposits
- Signed-state reconciliation
Operated by
- AltaPro AI
- Live at quotingai.ca
What It Deliberately Does Not Do.
- It is our product, not a client reference. Nothing on this page is evidence of an outcome we delivered for a customer.
- We publish no user counts, revenue or traction figures for it — if we cannot evidence a number, we do not print one.
- It is a quoting product, not an operations platform. Where a business needs jobs, crews and approvals tracked, that is a custom build.
Your operation is next
Want the Custom Version Instead?
QuotingAI is the productised pattern. If your pricing does not fit a product — and for a lot of operations it does not — the custom build is the conversation. 30 minutes, and you leave with a scoped plan either way.
Edmonton, Alberta · No commitment · 587-937-6948
