Blueprint
System Data Flow
Entry Point
Process Node
Data Store
Output
Productionv1.0.0
GT9 Pricing Tool
Developer
Prevents pricing chaos by enforcing a transparent ruleset and a repeatable quoting flow.
Logic Breakdown
Applies tiering, discounts, and constraints; computes total and produces a quote summary. Rule versioning supports sales enablement updates without breaking historical quotes.
Architecture Decisions
- 01Prevents pricing chaos by enforcing a transparent ruleset and a repeatable quoting flow.
- 02Applies tiering, discounts, and constraints; computes total and produces a quote summary.
- 03Rule versioning supports sales enablement updates without breaking historical quotes.
Code Snippet
typescriptgt9-pricing-tool.ts
const TIERS = {
starter: { base: 199, seatRate: 25, maxSeats: 5, label: "Starter" },
growth: { base: 499, seatRate: 25, maxSeats: 25, label: "Growth" },
enterprise: { base: 1299, seatRate: 40, maxSeats: Infinity, label: "Enterprise" },
} as const;
type Tier = keyof typeof TIERS;
const ADD_ONS = {
"analytics": { label: "Advanced Analytics", price: 79 },
"api-access": { label: "API Access", price: 149 },
"white-label": { label: "White Label", price: 299 },
} as const;
type AddOnKey = keyof typeof ADD_ONS;
export function buildQuote({
tier, seats, annual = false, addOns = [],
}: {
tier: Tier; seats: number; annual?: boolean; addOns?: AddOnKey[];
}) {
const { base, seatRate, maxSeats } = TIERS[tier];
const clampedSeats = Math.min(Math.max(1, seats), maxSeats);
const seatCost = Math.max(0, clampedSeats - 1) * seatRate;
const addOnTotal = addOns.reduce((s, k) => s + ADD_ONS[k].price, 0);
const subtotal = base + seatCost + addOnTotal;
const annualSaving = annual ? Math.round(subtotal * 0.15) : 0;
return {
tier: TIERS[tier].label,
seats: clampedSeats,
billingCycle: annual ? "annual" : "monthly",
lineItems: [
{ label: `${TIERS[tier].label} base plan`, amount: base },
...(clampedSeats > 1
? [{ label: `${clampedSeats - 1} extra seats`, amount: seatCost }]
: []),
...addOns.map((k) => ({ label: ADD_ONS[k].label, amount: ADD_ONS[k].price })),
...(annual ? [{ label: "Annual discount (−15%)", amount: -annualSaving }] : []),
],
subtotal,
total: subtotal - annualSaving,
};
}Key Dependencies
TypeScript—Core stack component
UI Logic—Core stack component
Validation—Core stack component
Technical Spec
- Pillar
- Developer
- Mode
- Configurator
- Output
- Price
Tags
TypeScriptUI LogicValidation
Live Sandbox
Interactive runtime environment — GT9 Pricing Tool v1.0.0
gt9-pricing-tool-sandbox
$ npm run sandbox
> Initialising GT9 Pricing Tool v1.0.0…
> Status: Production
// Live iframe mounted once sandboxUrl is configured.