Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when designing or revising a company's commercial policy — the rules of engagement governing discounts off list price, approver thresholds, exception flows, and the deal framework that Deal Desk and AEs operate under. Covers discount matrix design (ARR band x term length x payment terms x strategic value), commercial policy design, exception policy, discount governance, approval thresholds, deal framework structure, and policy linting (contradictions, gaps, cliff edges, gaming surfaces). For
.claude/skills/alirezarezvani-commercial-policy/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-21 | ✗→✓ | ▲ Improved | 125% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 123% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 86% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 76% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 111% | 0% |
Design the rules of engagement that govern discounting off list price — the artifact that Deal Desk and AEs operate under. Three deterministic tools:
discount_matrix_builder.py — builds a 4-dimensional matrix (ARR band × term length × payment terms × strategic value tier), each cell carrying an approved discount band backed by current win-rate + NRR data, plus an approver tier (AE / Manager / Director / VP / CFO).exception_router.py — when an asks-for-discount lands outside the matrix, routes it through the named approver chain, attaches required compensating commitments (multi-year prepay + named expansion path + reference commitment + MSA tightening), produces machine-readable audit-trail metadata, and flags precedent risk if 3+ similar exceptions have landed in the trailing quarter.policy_linter.py — lints the matrix for governance defects: approver inversion, band inversion, margin-floor violation, coverage gaps, cliff edges, undefined strategic tiers, inconsistent margin floors, thin data backing.The output is the policy itself (matrix + exception flow + lint report), not a per-deal application of it.
Do NOT use this skill to:
commercial/skills/deal-deskcommercial/skills/pricing-strategistbusiness-growth/contract-and-proposal-writerc-level-advisor/cro-advisorassets/policy_design_template.md (~20 minutes). Capture: arr, discount_pct, term_months, payment_terms_days, strategic_value, win_lost, nrr_12mo per deal.scripts/discount_matrix_builder.py --input policy_intake.json --profile {saas|enterprise-software|api|marketplace|services}. Output is a 4-dimensional matrix with approved discount band + approver tier + margin floor + observed win-rate + observed NRR per cell. Cells with n < 5 observed deals are flagged THIN.scripts/exception_router.py --sample to see the structure. For each severity band of exception (0-5 pts over, 5-10, 10-20, 20+), the router enforces required compensating commitments. Codify the flow in your policy doc; the router becomes the operational implementation.scripts/policy_linter.py --input matrix.json. Get a ranked findings report — BLOCKER / MAJOR / MINOR — across 10 lint rules. Resolve every BLOCKER before publishing the matrix to AEs.target_nrr are flagged for review.| Script | Purpose | Industry profiles | |---|---|---| | scripts/discount_matrix_builder.py | 4-dim data-backed matrix with approver tiers + margin floors | saas, enterprise-software, api, marketplace, services | | scripts/exception_router.py | Routes exception requests with compensating commitments + audit trail | n/a (matrix-driven) | | scripts/policy_linter.py | 10-rule lint pass over the matrix | n/a (deterministic across profiles) |
All three: stdlib-only, --help, --sample, --input <json>, --output {markdown,json}.
references/discount_governance_canon.md — Discount governance evidence base: OpenView Partners benchmarks, David Skok (For Entrepreneurs) discount math, Tomasz Tunguz on discount distribution, Bessemer State of the Cloud, KeyBanc Capital Markets SaaS Survey, Bridge Group AE-compensation research, RevOps Co-op playbooks, Forrester deal-desk research. 8 sources.references/policy_design_canon.md — Policy-as-artifact design: SaaStr (Jason Lemkin), Winning by Design (Jacco van der Kooij) on commercial discipline, Forrester deal-desk maturity research, MIT Sloan on incentive-system gaming, McKinsey on commercial-policy effectiveness, Bain Pricing Power, Salesforce CPQ implementation guides. 7 sources.references/policy_anti_patterns.md — 8 named anti-patterns with sourced studies + countermeasures + lint-rule mapping: precedent-sets-policy, no-data-backing, no-compensating-commitments, approver/margin misalignment, no audit trail, cliff edges, undefined "strategic value", no quarterly review. 8 sources.commercial/skills/pricing-strategist). Commercial-policy governs discounts off list — it does not set list.min_margin_pct constraint (margin floor). The CRO / Head of Deal Desk owns the max_discount_pct_without_exception constraint (band cap). The skill keeps these inputs separate by design (per Bain Pricing Power — mixing accountability is the most common cause of policy drift).logo, expansion, lighthouse) are useful only if defined with concrete tests. The lint rule L06 enforces this.data_backing per cell + lint L08.)exception_router.py flags 3+ similar exceptions as a signal that the matrix is wrong, not the deal. (Anti-pattern AP-1.)exception_router.COMPENSATING_LIBRARY.)| Sibling | Scope | Difference | |---|---|---| | commercial/skills/deal-desk | Applies the policy to one deal at a time | Commercial-policy designs the policy itself. Deal-desk consumes the matrix; commercial-policy produces it. | | commercial/skills/pricing-strategist | Sets pricing model (per-seat / usage / value / tiered) + list price | Commercial-policy governs discounts off list. Pricing-strategist sets the menu; commercial-policy governs the menu's discount discipline. | | c-level-advisor/cro-advisor | Strategic CRO judgment ("when do we hire VP Sales?", "is our motion product-led or sales-led?") | Strategic, not operational. Commercial-policy is the artifact CRO commissions; it isn't CRO judgment itself. | | c-level-advisor/cfo-advisor | Margin floor + unit-economics judgment | The CFO supplies min_margin_pct to commercial-policy as an input. Commercial-policy operationalizes the CFO's constraint as per-cell margin floors. | | business-growth/contract-and-proposal-writer | Authors proposal/SOW/MSA prose | Commercial-policy emits structured matrix + audit-trail JSON, not customer-facing prose. |
Walked one at a time by /cs:grill-commercial or the Commercial orchestrator before the skill runs. Recommended answer + canon citation per question. Never bundled.
Recommended: pull the corpus before designing any band. If the observed median is outside the matrix, the matrix is rhetoric. Canon: OpenView SaaS Benchmarks; RevOps Co-op playbooks. Anti-pattern AP-2.
Recommended: both, not one. A band with high win-rate but low NRR is buying logos with leaky-bucket retention. Tunguz benchmarks: top-NRR-quartile companies discount 6 pts less than bottom quartile. Canon: Tomasz Tunguz; Bessemer State of the Cloud.
Recommended: CFO owns floor; CRO/Head of Deal Desk owns cap. Same owner = drift toward what they're compensated on. Canon: Bain Pricing Power — separation of accountability is the structural fix. Anti-pattern AP-4.
Recommended: concrete tests. "Top-20 named account in 2026 target list" is a test; "important customer" is not. Canon: SaaStr (Lemkin); Forrester deal-desk research. Lint rule L06. Anti-pattern AP-7.
Recommended: minimum multi-year prepay + named expansion path; deeper exceptions require reference commitment + MSA tightening + executive sponsor. Canon: Winning by Design (van der Kooij); McKinsey B2B pricing studies. Anti-pattern AP-3.
Recommended: 3+ similar exceptions means the band is mispriced. Rebuild the matrix; don't keep approving exceptions. Canon: OpenView discount drift studies; exception_router._precedent_risk. Anti-pattern AP-1.
Recommended: quarterly. Annual review is too slow; the disciplined cohort revises quarterly. Canon: OpenView benchmarks; RevOps Co-op. Anti-pattern AP-8.
Recommended: structured record in CPQ or equivalent. Slack/email approvals don't survive year-2 renewal negotiations. Canon: Salesforce CPQ best practices; Forrester deal-desk maturity research. Anti-pattern AP-5.
Walk depth-first. Lock 1-4 before opening 5-8. After all 8 are answered, invoke discount_matrix_builder.py → policy_linter.py → exception_router.py --sample in sequence to produce the policy artifact.
bash# Design the matrix python3 scripts/discount_matrix_builder.py --sample python3 scripts/discount_matrix_builder.py --input policy_intake.json --profile saas --output json > matrix.json # Lint the matrix python3 scripts/policy_linter.py --sample python3 scripts/policy_linter.py --input matrix.json # Walk the exception flow python3 scripts/exception_router.py --sample python3 scripts/exception_router.py --input request.json --output json
The sample matrix lints to FAIL with 4 BLOCKERs + 6 MAJORs + 2 MINORs — by design, to exercise every rule path. A real policy intake should lint to PASS or PASS_WITH_WARNINGS. The sample exception (42% on a $320K logo deal) routes to AE → Sales Manager → Director → VP Sales with 3 required compensating commitments (multi-year 36mo, prepay, named expansion path).
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-21 | fail→pass | 12,894 | 11,808 | -8% | 1 | 1 | 0% | 2,419 | 5,439 | +125% | 0 | 0 | — |
case-01 | fail→pass | 24,242 | 34,792 | +44% | 1 | 1 | 0% | 4,262 | 9,520 | +123% | 0 | 0 | — |
case-02 | fail→pass | 26,549 | 39,054 | +47% | 1 | 1 | 0% | 5,119 | 9,516 | +86% | 0 | 0 | — |
case-03 | fail→fail | 22,968 | 5,386 | -77% | 1 | 1 | 0% | 3,616 | 3,764 | +4% | 0 | 0 | — |
case-04 | fail→fail | 11,493 | 12,256 | +7% | 1 | 1 | 0% | 1,924 | 5,223 | +171% | 0 | 0 | — |
case-05 | fail→pass | 15,061 | 6,364 | -58% | 1 | 1 | 0% | 2,514 | 4,429 | +76% | 0 | 0 | — |
case-06 | fail→fail | 12,999 | 14,107 | +9% | 1 | 1 | 0% | 2,394 | 5,259 | +120% | 0 | 0 | — |
case-07 | fail→pass | 11,139 | 5,720 | -49% | 1 | 1 | 0% | 2,046 | 4,316 | +111% | 0 | 0 | — |
case-08 | fail→pass | 14,933 | 10,958 | -27% | 1 | 1 | 0% | 2,554 | 5,138 | +101% | 0 | 0 | — |
case-09 | pass→pass | 16,116 | 9,616 | -40% | 1 | 1 | 0% | 2,073 | 4,772 | +130% | 0 | 0 | — |
case-10 | fail→pass | 11,255 | 11,470 | +2% | 1 | 1 | 0% | 2,103 | 5,504 | +162% | 0 | 0 | — |
case-11 | fail→pass | 11,799 | 9,896 | -16% | 1 | 1 | 0% | 2,013 | 4,973 | +147% | 0 | 0 | — |
case-12 | fail→pass | 11,539 | 9,522 | -17% | 1 | 1 | 0% | 1,924 | 5,137 | +167% | 0 | 0 | — |
case-13 | pass→pass | 13,403 | 9,902 | -26% | 1 | 1 | 0% | 2,150 | 4,959 | +131% | 0 | 0 | — |
case-14 | pass→pass | 12,471 | 8,369 | -33% | 1 | 1 | 0% | 2,006 | 4,713 | +135% | 0 | 0 | — |
case-15 | pass→pass | 12,952 | 9,397 | -27% | 1 | 1 | 0% | 1,748 | 4,737 | +171% | 0 | 0 | — |
case-16 | fail→pass | 13,356 | 8,248 | -38% | 1 | 1 | 0% | 2,189 | 4,696 | +115% | 0 | 0 | — |
case-17 | fail→pass | 12,350 | 3,821 | -69% | 1 | 1 | 0% | 1,722 | 3,973 | +131% | 0 | 0 | — |
case-18 | fail→pass | 17,242 | 8,995 | -48% | 1 | 1 | 0% | 2,951 | 4,914 | +67% | 0 | 0 | — |
case-19 | fail→pass | 8,681 | 9,324 | +7% | 1 | 1 | 0% | 1,402 | 4,871 | +247% | 0 | 0 | — |
case-20 | fail→pass | 11,305 | 2,554 | -77% | 1 | 1 | 0% | 2,005 | 3,781 | +89% | 0 | 0 | — |
case-22 | fail→pass | 14,138 | 8,843 | -37% | 1 | 1 | 0% | 2,005 | 4,876 | +143% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 21 counted toward the lift figure. The other 1 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +68 percentage points is the difference between those two pass rates over the 21 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.