ASHISH SHARMA//
← Back to Insights
System Design Workflow Engineering Decision Engines Enterprise Architecture

How to Turn Manual Quoting Into a Production Decision Engine

September 29, 2026 • Ashish Sharma
How to Turn Manual Quoting Into a Production Decision Engine
Transform messy, spreadsheet-driven enterprise quoting workflows into auditable, deterministic decision engines with state machines, Pydantic, and FastAPI.

1. The Operational Reality of High-Mix Quoting

In high-mix industrial supply chains, precision manufacturing, and technical distribution, the quoting desk is where profitability either solidifies or quietly evaporates. Consider an operations workflow common to industrial components and aerospace maintenance, repair, and overhaul (MRO): an enterprise customer sends an inbound Request for Quotation (RFQ) via email consisting of an unformatted 40-line PDF or an irregular spreadsheet containing legacy part numbers, custom tolerance requirements, and varying lead-time constraints.

The existing operational reality inside most mid-market organizations is manual, brittle, and deeply tribal:

  • Spreadsheet fragmentation: Pricing analysts cross-reference multiple disconnected Excel workbooks—one for base material costs, another for vendor tier discounts, a static PDF for freight surcharges, and a local spreadsheet with circular macro calculations.
  • Tribal business rules: Critical pricing policies exist solely in senior estimators' heads (e.g., "Apply an 8% volume rebate for Account X, but only if raw titanium index pricing remains below $24/kg and lead time exceeds 6 weeks").
  • Cycle-time latency: Reconciling part availability, supplier tiers, and compliance requirements across disconnected tools requires between 3 to 5 business days per quote. In competitive bid situations, slow turnaround cuts win rates by half before technical specs are even evaluated.
  • Undetected margin leakage: When an analyst miskeys a currency exchange rate, overlooks an updated freight tariff, or stacks incompatible promotional discounts, the quote goes out with eroded margins. Because the calculations live in unversioned desktop spreadsheets, post-mortem audits are virtually impossible.

2. Why the Obvious Solutions Fail: The Chaos of Naive Automation

When operations executives resolve to modernize quoting, they typically reach for one of three familiar playbooks. Each fails for structural reasons:

Approach Perceived Strength Root Failure Mode Operational Consequence
Monolithic SaaS CPQ Standardized enterprise catalog, out-of-the-box CRM hooks Rigid data models cannot handle unstructured RFQs, volatile vendor feeds, or custom multi-variable engineering constraints Estimators secretly bypass the software and calculate prices in Excel, re-entering only the final lump sum
Brittle RPA Bots Automates user clicks across ERP and legacy supplier portals Fragile UI selectors break whenever portals update; zero semantic understanding of data anomalies High ongoing engineering maintenance; silent data truncation when web layouts shift
Naive LLM "AI Agents" Instantly ingests unstructured RFQ PDFs and email threads Probabilistic math: LLMs hallucinate part substitutions, invent unit conversions, and cannot guarantee deterministic calculation Catastrophic pricing liability; inability to pass external financial or regulatory compliance audits

The fundamental architectural error is attempting to automate the chaos directly. An LLM cannot fix an undefined pricing taxonomy, and an RPA bot cannot reconcile contradictory margin policies. Before applying any layer of automation or AI, you must model the workflow as a deterministic system.

3. Workflow Modeling: The Operational State Machine

A production quoting engine is not a single script; it is a state machine governing the lifecycle of financial commitments. Every RFQ must transition through explicit, auditable states, where backward transitions are constrained and failure branches are strictly typed.


  [ INBOUND CUSTOMER RFQ ] (Email / Portal / Upload)
             │
             ▼
    [ PHASE 1: INGESTION ] ──► (Validate Raw Payload & Check Deduplication Hash)
             │
             ├──────────────────────────┐
             ▼                          ▼
    (Valid Schema)             (Malformed Schema)
             │                          │
             │                          ▼
             │               [ REPAIR_EXCEPTION_QUEUE ]
             │                          │ (Human Repaired)
             │ ◄────────────────────────┘
             ▼
    [ PHASE 2: NORMALIZATION ] ──► (Map Customer SKUs to Master Catalog Entities)
             │
             ├──────────────────────────┐
             ▼                          ▼
    (Active SKUs Found)        (Unrecognized SKU / Obsolete)
             │                          │
             │                          ▼
             │               [ SOURCING_EXCEPTION_QUEUE ]
             │
             ▼
    [ PHASE 3: DETERMINISTIC ENGINE ] ──► (Cost Basis + Vendor Tier + Margin Matrix)
             │
             ▼
    [ PHASE 4: GOVERNANCE EVALUATOR ]
             │
             ├──────────────────────────┐
             ▼                          ▼
    (Passes Margin Limits)     (Margin < Threshold OR Total > Cap)
             │                          │
             │                          ▼
             │               [ ESCALATION_REVIEW_QUEUE ]
             │                          │ (VP Ops / Controller Sign-Off)
             │ ◄────────────────────────┘
             ▼
    [ PHASE 5: COMMITTED QUOTE ] ──► (Immutable Versioning & Cryptographic Audit Event)

Notice the separation of concerns:

  • Phase 01 (Discover): We extract historical pricing behaviors directly from operational exhaust—completed quotes, ERP invoices, and approved discount logs—rather than relying on subjective recollections.
  • Phase 02 (Model): We define formal state transitions. A quote cannot enter COMMITTED state without traversing the GOVERNANCE_EVALUATOR.
  • Phase 03 (Digitize): The mathematical formulas (markup percentages, freight tables, minimum order quantities) are encoded in deterministic Python services using exact fixed-point arithmetic.
  • Phase 04 (Automate): If an LLM is utilized, its scope is strictly restricted to extracting raw text into validated Pydantic models. It never performs arithmetic or determines margins.
High availability infrastructure server architecture
Figure 1: Architectural topology of the deterministic quoting engine, separating asynchronous ingestion, deterministic business rule execution, and transactional state persistence.

4. System Architecture

To achieve sub-second execution while maintaining auditability, the system is structured into four decoupled layers:

  • Ingestion & Schema Gateway (FastAPI): Accepts inbound webhook payloads or parsed RFQ drafts. Authenticates callers via JWT tokens with strict tenant scoping.
  • Asynchronous Processing Queue (Redis + Celery/ARQ): Absorbs burst traffic when large multi-hundred-line RFQs arrive, isolating the transactional database from compute spikes.
  • Deterministic Pricing Core: Stateless calculation worker executing pure functions over immutable domain entities. Zero network calls inside the calculation loop; all required catalog snapshots and customer tier records are pre-fetched in a single database read.
  • Transactional State Store & Audit Trail (PostgreSQL): Stores complete quote revisions as immutable records. Every line item, discount factor, and policy check is persisted as a signed JSONB snapshot.

5. Production Implementation: The Core Decision Engine

Below is a production-grade implementation of the deterministic quoting core in Python 3.12, utilizing Pydantic v2 and fixed-point Decimal arithmetic to prevent IEEE 754 floating-point inaccuracies.

from decimal import Decimal, ROUND_HALF_UP
from enum import Enum
from typing import List, Optional
from pydantic import BaseModel, Field, field_validator, model_validator


class QuoteStatus(str, Enum):
    DRAFT = "DRAFT"
    CALCULATED = "CALCULATED"
    REQUIRES_GOVERNANCE = "REQUIRES_GOVERNANCE"
    APPROVED = "APPROVED"
    REJECTED = "REJECTED"


class LineItemInput(BaseModel):
    sku: str = Field(..., min_length=3, max_length=64)
    quantity: int = Field(..., gt=0)
    customer_target_unit_price: Optional[Decimal] = Field(None, gt=Decimal("0.00"))


class CatalogPart(BaseModel):
    sku: str
    unit_cost: Decimal = Field(..., gt=Decimal("0.00"))
    minimum_margin_pct: Decimal = Field(default=Decimal("0.20"))  # 20% minimum target
    floor_margin_pct: Decimal = Field(default=Decimal("0.12"))    # 12% absolute hard floor
    available_inventory: int = Field(..., ge=0)
    lead_time_days: int = Field(..., ge=0)


class CustomerTier(BaseModel):
    account_id: str
    tier_discount_pct: Decimal = Field(default=Decimal("0.00"), ge=Decimal("0.00"), le=Decimal("0.35"))
    credit_limit_usd: Decimal
    current_outstanding_usd: Decimal


class EvaluatedLineItem(BaseModel):
    sku: str
    quantity: int
    base_cost: Decimal
    catalog_list_price: Decimal
    applied_discount_pct: Decimal
    final_unit_price: Decimal
    extended_total: Decimal
    margin_pct: Decimal
    governance_flag: bool = False
    governance_reason: Optional[str] = None


class QuoteCalculationResult(BaseModel):
    quote_id: str
    status: QuoteStatus
    total_amount: Decimal
    blended_margin_pct: Decimal
    line_items: List[EvaluatedLineItem]
    audit_trail: List[str]


class DeterministicPricingEngine:
    ROUNDING_PRECISION = Decimal("0.01")
    GOVERNANCE_MARGIN_THRESHOLD = Decimal("0.15")  # Under 15% requires human review
    HIGH_VALUE_THRESHOLD = Decimal("50000.00")     # Quotes > $50k require VP sign-off

    @classmethod
    def round_currency(cls, amount: Decimal) -> Decimal:
        return amount.quantize(cls.ROUNDING_PRECISION, rounding=ROUND_HALF_UP)

    @classmethod
    def evaluate_quote(
        cls,
        quote_id: str,
        items: List[LineItemInput],
        catalog_lookup: dict[str, CatalogPart],
        customer: CustomerTier,
    ) -> QuoteCalculationResult:
        evaluated_items: List[EvaluatedLineItem] = []
        total_revenue = Decimal("0.00")
        total_cost = Decimal("0.00")
        audit_trail: List[str] = []
        requires_escalation = False

        audit_trail.append(f"Initiated calculation for Account {customer.account_id} with Tier Discount {customer.tier_discount_pct:.2%}")

        for item in items:
            part = catalog_lookup.get(item.sku)
            if not part:
                raise ValueError(f"SKU {item.sku} does not exist in master catalog.")

            # Step 1: Base list price based on minimum target margin
            # List Price = Cost / (1 - target_margin)
            raw_list_price = part.unit_cost / (Decimal("1.00") - part.minimum_margin_pct)
            list_price = cls.round_currency(raw_list_price)

            # Step 2: Apply account-specific tier discount
            discounted_unit = list_price * (Decimal("1.00") - customer.tier_discount_pct)
            unit_price = cls.round_currency(discounted_unit)

            # Step 3: Compute actual realized margin
            extended_price = cls.round_currency(unit_price * Decimal(item.quantity))
            extended_cost = cls.round_currency(part.unit_cost * Decimal(item.quantity))
            realized_margin = (extended_price - extended_cost) / extended_price

            line_flag = False
            flag_reason = None

            # Governance Rule A: Absolute Floor Violation
            if realized_margin < part.floor_margin_pct:
                line_flag = True
                flag_reason = f"Margin {realized_margin:.2%} breached hard floor of {part.floor_margin_pct:.2%}"
                requires_escalation = True
            # Governance Rule B: General Operational Threshold
            elif realized_margin < cls.GOVERNANCE_MARGIN_THRESHOLD:
                line_flag = True
                flag_reason = f"Margin {realized_margin:.2%} below standard operations threshold of {cls.GOVERNANCE_MARGIN_THRESHOLD:.2%}"
                requires_escalation = True

            evaluated = EvaluatedLineItem(
                sku=item.sku,
                quantity=item.quantity,
                base_cost=part.unit_cost,
                catalog_list_price=list_price,
                applied_discount_pct=customer.tier_discount_pct,
                final_unit_price=unit_price,
                extended_total=extended_price,
                margin_pct=cls.round_currency(realized_margin * Decimal("100")),
                governance_flag=line_flag,
                governance_reason=flag_reason,
            )
            evaluated_items.append(evaluated)
            total_revenue += extended_price
            total_cost += extended_cost

        blended_margin = ((total_revenue - total_cost) / total_revenue) * Decimal("100")

        # Governance Rule C: Deal Size Escalation
        if total_revenue >= cls.HIGH_VALUE_THRESHOLD:
            requires_escalation = True
            audit_trail.append(f"Total value ${total_revenue} exceeded executive review threshold of ${cls.HIGH_VALUE_THRESHOLD}")

        status = QuoteStatus.REQUIRES_GOVERNANCE if requires_escalation else QuoteStatus.CALCULATED
        audit_trail.append(f"Calculation complete. Blended margin: {blended_margin:.2f}%. Assigned status: {status.value}")

        return QuoteCalculationResult(
            quote_id=quote_id,
            status=status,
            total_amount=total_revenue,
            blended_margin_pct=cls.round_currency(blended_margin),
            line_items=evaluated_items,
            audit_trail=audit_trail,
        )

6. Architectural Failure Modes and Defenses

Deploying an operational quoting engine requires anticipating real-world failure dynamics. Below are four key failure scenarios and the architectural controls designed to mitigate them:

Failure Mode 1: Upstream Supplier Price Sheet Drift & Stale Cache

  • Root Cause: Supplier updates distributor net pricing via an asynchronous API or revised CSV, but the local Redis catalog cache serves stale material costs.
  • System Consequence: Quotes generated during the stale window leak margin by selling at yesterday's acquisition cost.
  • Detection: Periodic checksum verification between the master catalog ledger in PostgreSQL and cached Redis hashes; price variance alerts on supplier webhook ingest.
  • Architectural Defense: Time-to-Live (TTL) bounds paired with event-driven cache invalidation on supplier price changes; automated transaction locking if catalog timestamp is older than 6 hours.
  • Recovery Path: Automated eviction of stale keys, instantaneous catalog refresh from the primary database, and automated recalculation of quotes remaining in DRAFT state.

Failure Mode 2: Concurrent Line-Item Revisions & Lost Updates

  • Root Cause: Two sales reps or an automated system and a human analyst simultaneously edit line items on the same RFQ draft.
  • System Consequence: One operator's changes overwrite another's, resulting in incorrect quantities or dropped line items on the committed customer contract.
  • Detection: Database version mismatch on update (optimistic_lock_version conflict).
  • Architectural Defense: Optimistic concurrency control (OCC) at the database layer; distributed Redis mutex locks for actively opened drafts in the operator dashboard.
  • Recovery Path: Immediate 409 Conflict return to the secondary caller with a diff visualization prompting the user to merge changes rather than overwrite.

Failure Mode 3: Silent Margin Leakage via Compounding Promotions

  • Root Cause: A customer qualifies for multiple discount schemes (e.g., contractual volume tier, seasonal rebate, early payment concession) that combine multiplicatively or additively beyond intended guardrails.
  • System Consequence: Positive gross profit turns negative when all discounts stack together on low-margin commodities.
  • Detection: Model validator in Pydantic checking total discount cap and comparing post-discount revenue against base cost.
  • Architectural Defense: Hard-coded rule precedence matrix where discounts are mutually exclusive or subject to an immutable cumulative discount ceiling (e.g., maximum allowable combined discount = 30%).
  • Recovery Path: Automatic truncation of discount stacking at the ceiling level with an explicit audit log entry detailing why secondary concessions were suppressed.

Failure Mode 4: Inbound RFQ Schema Drift

  • Root Cause: Customer changes the column layout in their procurement spreadsheet or sends an alternate PDF layout missing standard unit-of-measure columns.
  • System Consequence: Raw extraction maps a unit of "box of 100" as "individual unit," pricing the order at 1/100th of its true value.
  • Detection: Structural Pydantic validation failures; anomaly detection flagging unit prices deviating more than 300% from trailing historical averages.
  • Architectural Defense: Quarantine queue: any line item with ambiguous packaging or missing units-of-measure is halted before reaching the pricing core.
  • Recovery Path: The RFQ is pushed to the REPAIR_EXCEPTION_QUEUE in the operator dashboard for manual verification before any pricing calculations execute.

7. Performance & Resource Allocation

A production quoting service must deliver predictable latency to power real-time interactions on sales dashboards while maintaining strict consistency guarantees. Below is an illustrative performance budget for calculating a standard 50-line-item industrial RFQ:

Pipeline Stage Subsystem Target p95 Latency Resource Constraints
Ingress Schema Validation FastAPI + Pydantic v2 Core (Rust backend) 1.8 ms < 15 MB RAM overhead per request worker
Catalog & Tier Fetch Redis Memory Cache (MGET pipeline) 4.2 ms Single round-trip network socket
Deterministic Rule Calculation Python 3.12 Decimal Engine 3.5 ms Zero heap allocation, pure in-memory math
Governance Policy Check Rule Evaluation Engine 1.1 ms Bounded iterations over line item array
State Persistence & Audit Log PostgreSQL Transactional Write (JSONB) 16.5 ms Indexed foreign keys + WAL write
End-to-End Cumulative Pipeline Synchronous Request Lifecycle 27.1 ms Total SLA budget ceiling: < 50.0 ms

*Note: Figures represent an illustrative production latency budget under standard containerized workloads (2 vCPU, 4GB RAM worker instances).

8. Economics of Operational Systems Engineering

When evaluating whether to build a custom deterministic decision engine versus maintaining manual spreadsheets or purchasing enterprise CPQ software, operations leaders must evaluate total economic friction across four dimensions:

  • Labor Capital Allocation: Highly paid technical estimators spending 65% of their working hours manually copy-pasting SKUs and recalculating formulas represents misallocated payroll. A deterministic engine handles routine calculations instantly, allowing human experts to focus exclusively on complex exceptions and high-value customer negotiations.
  • Margin Recovery: In industrial distribution operating at 18–22% gross margin, a 1.5% margin leak caused by unvalidated discounts or lagging freight surcharges directly destroys 7–8% of operating net income. Preventing silent margin leakage provides an immediate, verifiable economic return.
  • Licensing vs. Asset Creation: Enterprise CPQ platforms routinely cost $150–$250 per user per month, plus substantial implementation costs and vendor lock-in. A custom deterministic decision engine built on open, modern infrastructure (FastAPI, PostgreSQL, Redis) becomes proprietary intellectual property owned completely by the enterprise.

9. Human-in-the-Loop Governance: Automation ≠ Removal of Responsibility

The objective of operational systems engineering is never unconstrained autonomy. In high-consequence business workflows, removing human oversight is a dangerous anti-pattern.

A well-architected decision engine acts as an amplifier of human judgment, not a replacement for it. The system handles 100% of the mechanical, error-prone data gathering, arithmetic verification, and baseline rule validation. When a quote breaches defined margin boundaries or involves non-standard credit terms, the system halts and surfaces a structured exception card in the operator's interface. The human decision maker sees the exact rule that triggered the pause, the underlying cost calculations, and a clear audit interface to approve, override, or renegotiate.

10. Practical Architectural Grounding

This architecture reflects structural patterns developed across complex, high-consequence operational environments—most notably in precision technical workflows and aviation component supply chains (such as systems evaluated for Rotor Wing Services / JavAirTec Group).

In regulated aerospace and technical maintenance, an incorrect unit cost, a missing airworthiness certificate tag, or an unverified lead-time tier carries immediate operational and financial liability. The solution in that environment was never a loose collection of AI prompts; it was an auditable, deterministic workflow backbone where software enforces mathematical integrity and humans govern regulatory sign-offs.

11. Engineering the Next Step

If your organization is currently managing multi-million-dollar pricing, quoting, or order reconciliation through sprawling spreadsheets and tribal consensus, you do not need more generative AI hype. You need operational systems engineering:

  • We reverse-engineer the true operational workflow from your existing operational exhaust.
  • We construct formal state machines and deterministic pricing engines that eliminate margin leakage.
  • We integrate human review gates where judgment matters, and automate execution where precision is paramount.

Have a complex operational workflow like this?

Let's audit your current quoting or operational pipeline, map where margin is leaking, and design a production-grade software system to resolve it.

// START WITH A LOW-RISK 2-WEEK PILOT

Want to Automate This Workflow in Your Business?

Instead of an oversized software contract, we start with a focused 2-to-3 week pilot ($2.5K–$4.5K) tailored to your actual PDFs, emails, and spreadsheets (Outlook, Excel, ClickUp, OneDrive, QuickBooks, or ERP)—backed by a 30-day warranty and 100% Human-in-the-Loop control.

// Internal Knowledge Graph

Related Systems & Technical Articles

Further explorations into Human-in-the-Loop AI systems, PDF spec extraction pipelines, and production architectures.

System Design Subcontractor Estimating

Why Subcontractors Drown in Bid Invites — And How to Engineer an Automated CSI Intake Engine

How commercial trade contractors eliminate bid invite backlogs across PlanHub and Dodge using MERN, Python, Pydantic, and Human-in-the-Loop triage.

Read Article →
Operational Systems Engineering Agentic AI

Beyond Offshore Virtual Assistants: Converting US & European Logistics Operations into Autonomous HITL Agentic Systems

How US and European logistics brokerages replace offshore virtual assistants with deterministic, Human-in-the-Loop agentic systems that eliminate 90% of labor drag.

Read Article →
Voice AI Telephony

How to Put Voice AI on Top of Existing Enterprise Phone Systems: Architecting Sub-500ms SIP-to-WebRTC Gateways

How to put Voice AI on top of existing enterprise phone systems. Architect sub-500ms SIP-to-WebRTC gateways without ripping and replacing your legacy PBX.

Read Article →