Customer story · Quote-to-Cash & CPQ

Rebuilding a CPQ catalog around new tiered packaging — while the pricing model was still being decided

A technology company was collapsing an à-la-carte price list into tiered good/better/best packaging across its customer segments. LeanScale rebuilt the catalog, bundles, price rules and quote-calculation logic in Salesforce CPQ to match, deployed it one segment at a time through the client's own release process, and ran a RAID log against a pricing model that was still moving.

ProofWhat happened on a real engagement.
Workforce & Education TechnologySector
Growth-stageStage
6–12 monthsDuration
4Min read

Anonymized. The company is described by sector and stage only — no customer is named, and quotes are attributed by role.

#The challenge

The company sold a platform subscription alongside volume-metered units and a long list of à-la-carte add-ons, priced differently across customer segments, frequently across multiple contract years and multiple billing entities under a single parent account. Leadership decided to collapse that into a small set of named tiers per segment. The CPQ configuration underneath had grown around the old model — bundles, product options, price rules and lookup tables all encoded assumptions the new packaging broke. The pricing itself was still being decided while the build was in flight, legacy rules had to keep working for existing customers, and reps were being trained on the new packages before the configuration behind them was live.

#The approach

Rebuilt the catalog to the new packaging

New tiered core bundles per segment, plus separate bundles for the add-on families, built as nested structures at one and two levels of product options so a rep configures a tier and then adjusts within it. The full à-la-carte catalog was reconstructed as options underneath the bundles rather than as free-standing products.

Moved pricing into lookup tables instead of hard-coded rules

Built per-segment pricing-table objects keyed by a pricing-tier field, then wrote price rules that carry the account's segment and tier down onto the quote line on initialization and resolve the price by lookup query on calculate — with price-lift and price-reset rules layered for multi-year quotes. When leadership changed a tier's price, the change became data entry rather than a rebuild. This is the single highest-leverage move in a CPQ rebuild running against a pricing model that has not settled.

Made quantity drive entitlement and price together on metered add-ons

For the volume-metered add-ons, quantity on the product option drives the entitlement volume and the price in the same step, with the ratio documented on the option itself, so a rep can size a deal at the quote line without raising a pricing exception.

Enforced the commercial rules the packaging assumed

Product and error-condition rules for combinations that should never be quotable — an add-on that only makes sense alongside its parent product, a bundle with bad term dates. Value-override checkboxes where a rep genuinely needs to exceed a band. Volume ceilings a rep can quote under but not over, so exceeding the band becomes either a priced add-on or a move up a tier, which was the point of the new packaging.

Wrote a quote calculator plugin for multi-term, multi-entity contracts

A custom CPQ script that chains sequential contract terms per billing entity: each term starts the day after the previous one ends, defaults to a twelve-month period ending the day before the anniversary, yields to a custom-term checkbox when a rep needs a non-standard length, and renames each quote line group to the entity plus term number so a multi-year, multi-entity quote is readable on its face. It removed manual date entry as a source of gaps and overlaps between contract periods.

Tracked every component as a deployable inventory and shipped through the client's own pipeline

CPQ configuration is data as much as metadata, and a change set alone does not move it. Kept a deployment tracker listing every configuration record, custom field, automation and script — a few hundred data records and around twenty custom fields — with its identifier, business description, dependencies and status. Built in a developer sandbox, promoted through partial-copy, and worked inside the client's release pipeline, including a mid-project migration to a new version of their deployment tooling. Deployed one segment, then the next, each with a testing pass and a documented list of anything deactivated to get the build working.

Ran a RAID log against a moving target

Logged the risk that the client would repackage mid-build, the risk that a contract gap would stall completion, the assumption that remaining budget equalled remaining delivery capacity (recorded as invalidated once holiday coverage was accounted for), and every blocking client decision — approval thresholds, the field-deprecation list, the production promotion date, who executes the promotion, and the definition of done — each with an owner and a date, and pushed for a scope freeze.

Handed off deliberately

Compiled every recorded walkthrough into a single handoff packet organized by topic, with an explicit flag for anything that had been built but never recorded. Moved LeanScale-created reporting into its own folder, audited which dashboards were still in use, confirmed access to LeanScale-owned assets, removed LeanScale from email alerts, and transitioned admin access.

#Outcomes

The new packaging became quotable in production, one segment at a time

Each segment was built, tested in a partial-copy sandbox with the client's own sales leaders, and promoted to production, with post-deployment testing and issue triage in the shared channel.

Price changes became data entry

Tier pricing lives in lookup tables resolved by price rules at calculation time, so a tier or rate change no longer requires rebuilding rules.

Multi-year, multi-entity quotes date and name themselves

Sequential terms chain automatically per billing entity with no gaps or overlaps, with a manual override for non-standard term lengths.

The unresolved decisions were visible rather than absorbed

The RAID log recorded which client decisions were blocking which deliverables, with owners and dates — including a capacity assumption explicitly marked invalidated. A phase-two recommendation to move quoting onto a dedicated platform with native margin floors and preset discount options was scoped but not built.

The method behind it

This ran the Quote to Cash playbook

The delivery standard this engagement followed.

Connected

In the knowledge graph

Every entity below has its own page, aggregating what we measured, what we recommend and what guests said.

Companies
Related

More on these topics

Method Revenue Systems

CPQ

Every CPQ project moves through the same four phases. Know what you produce in each one — and know that, like Quote to Cash, this is a project you win…

32 sections · 19 min read
Method Revenue Systems

Quote to Cash

Every Quote to Cash project moves through the same four phases. Know what you produce in each one — and know that this is a project you win or lose in…

31 sections · 18 min read
Proof Quote-to-Cash & CPQ

Unblocking a CPQ and deal-desk backlog

A marketing-technology company's Salesforce CPQ process was failing in ways that stopped real deals from moving. LeanScale worked the backlog — a bloc…

3 sections · 1 min read
Proof Quote-to-Cash & CPQ

Closing the loop between the CRM and the contract lifecycle system: auto-created contracts and standing custom-agreement flagging

A growth-stage software company ran redlining and legal paper in a contract lifecycle system and quoting in a separate CPQ, but the two never fully me…

3 sections · 5 min read
Proof Quote-to-Cash & CPQ

Quoting guardrails for a configurable product catalog: compatibility rules, approvals and enablement

An industrial technology manufacturer quoted highly configurable products with no compatibility or discount guardrails and no catalog to quote from. L…

3 sections · 2 min read
Proof Quote-to-Cash & CPQ

Auditing a Salesforce CPQ Nobody Enjoyed Using — Then Rebuilding the Quote Page Role by Role

A long-lived Salesforce CPQ still worked but had drifted: hundreds of mostly-empty fields, three competing ways to calculate ARR, native amendment swi…

3 sections · 6 min read