Quotation & Costing Workflow (QTN)¶
Module Purpose: Automate the quotation lifecycle by calculating dynamic landed costs (import vs domestic), enforcing margin governance, and managing supplier/transporter RFQs to ensure profitability.
[!TIP] Core Concept: "Price is a Science, not a Guess." This module ensures every quote is backed by a breakdown of Basic Price + Incidentals + Freight + Margin, preventing sales below cost.
Use Case Quick Reference¶
| ID | Title | Priority |
|---|---|---|
| QTN-001 | Dynamic Pricing & Landed Cost | P1 |
| QTN-002 | Import vs Domestic Analytics | P1 |
| QTN-003 | Transporter RFQ Automation | P1 |
| QTN-004 | Margin Configuration & Alerts | P2 |
| QTN-005 | Formulation Recipe Costing | P2 |
| QTN-006 | Approved Supplier Law | P1 |
| QTN-007 | Broker Flow & KYC | P2 |
| QTN-008 | Multi-Entity Quotation Formats | P2 |
| QTN-009 | Win/Loss Analytics | P2 |
UC-QTN-001: Dynamic Pricing & Landed Cost¶
What It Does¶
Generates real-time quotation prices by stacking up all cost components (Basic, Incidentals, Freight, Insurance, Margin). It prevents "blind quoting" by showing the Sales Rep exactly what the Landing Cost is before they add their margin.
Who: Sales Rep, Costing Team
When: Creating any new quotation
Why: To ensure positive unit economics on every deal.
How It Works¶
The Cost Stack Calculation¶
- User Input: Selects Product (Zinc Oxide) + Quantity (5MT) + Customer Location (Mumbai).
- System Retrieval:
- Fetches Base Price from Price Master (e.g., Ex-Factory Rate).
- Fetches Purchase Incidentals (Loading, Packaging costs).
- Fetches Freight Estimate via QTN-003.
- Fetches Payment Terms Cost (Interest burden for 90 days credit).
- Calculation:
Landed Cost = Base Price + Purchase Incidentals + Freight + Insurance + Credit Cost - Margin Addition:
- User inputs Desired Margin % OR Final Sale Price.
- System reverse-calculates the other variable.
Sale Price = Landed Cost + Margin
Price Life-Cycle Logic¶
- Spot Price: Valid for 1 day (Default for volatile chemicals).
- Active Price: Valid for X days (as defined in master).
- Expired: If cost data is > 15 days old, system blocks quote: "Costing Expired. Request new rate."
Edge Cases¶
What if Freight is unknown?
System uses "Notional Freight" from last 5 shipments to same pincode zone, flags as "Estimated".
What if Sale Price < Landed Cost?
System flags "Negative Margin". Requires WFL-002 Manager Approval to print/send.
Success Signals¶
✅ Landed cost calculates in < 500ms
✅ Negative margin triggers approval block
✅ Expired costs prevent quote generation
UC-QTN-002: Import vs Domestic Analytics¶
What It Does¶
Automatically compares the cost of sourcing a product locally vs importing it, alerting the team if importing adds significant margin (arbitrage opportunity).
Who: Procurement Manager, Costing Team
When: During quote generation for high-volume items
Why: Markets fluctuate. Sometimes importing is 20% cheaper than local buying.
How It Works¶
The Comparison Engine¶
- Trigger: User selects a product tagged "Dual Sourced" (Import + Domestic).
- Domestic Path: Calculates cost based on local supplier rates (INR).
- Import Path:
- Fetches Global Index Price (USD).
- Adds Customs Duty, Clearing Charges, Sea Freight, Hedging Cost.
- Converts to INR Landed Cost.
- Analysis:
- Calculates
Delta = Domestic Cost - Import Cost - If
Import Costis > 5% cheaper:- Shows alert: "💡 Import Opportunity! Savings: ₹5/kg"
- Suggests "High Seas Sale" or "Import Booking" workflow.
Success Signals¶
✅ accurately converts FX rates real-time
✅ Alerts trigger only when delta > 5%
UC-QTN-003: Transporter RFQ Automation¶
What It Does¶
Automates the request for freight rates. Instead of calling 5 transporters, the system blasts an RFQ (Request for Quote) to registered transporters for the specific route and locks the best rate into the quotation.
Who: Logistics Coordinator
When: Quantities > 1 Truck Load (FTL)
Why: Freight can eat 50% of margin on low-value chemicals.
How It Works¶
- Route Detection: From Factory (Gujarat) to Customer (Bangalore).
- Transporter Selection: System selects transporters servicing "South Zone".
- Broadcast: Sends WhatsApp/SMS/Email: "Need rate: Gujarat->Blr, 20MT Zinc, Dispatch Tomorrow."
- Response Capture:
- Transporter replies "₹4500/MT".
- System parses reply, populates "Freight Options" table.
- Best rate auto-selected for Costing calculation.
Edge Cases¶
No response in 2 hours?
System applies "Standard Route Rate" from history + 10% buffer.
Success Signals¶
✅ RFQ sent to multiple transporters instantly
✅ Parsing logic correctly extracts price from SMS replies
UC-QTN-004: Margin Configuration & Alerts¶
What It Does¶
The governance layer. Defines minimum margin thresholds per product category and role, preventing sales reps from eroding value.
Who: Sales Head, System Admin
When: Setup & Ongoing
How It Works¶
- Rule Setup:
- "Bulk Chemicals": Min Margin 2%
- "Specialty Additives": Min Margin 15%
- "Sales Rep": Max Discount 5%
- "Manager": Max Discount 10%
- Enforcement:
- If User enters price violating rule → Input turns Red.
- "Submit" button becomes "Request Approval".
- Alerts:
- If User approves < Threshold margin: Alert sent to CEO "Low Margin Deal Approved by [Manager]".
Success Signals¶
✅ Blocks negative margin without approval
✅ Correctly applies different thresholds per product group
UC-QTN-005: Formulation Recipe Costing¶
What It Does¶
For manufactured blends (e.g., Paint Additive X), it calculates cost by summing up the weighted cost of all ingredients + processing overhead.
Who: Production Manager, R&D
When: Quoting manufactured products
How It Works¶
- Recipe Lookup: Fetch BOM (Bill of Materials) for 1000kg batch.
- 500kg Resin @ ₹100
- 200kg Solvent @ ₹50
- 10kg Additive @ ₹500
- Dynamic Rate: Updates ingredient costs based on current market price (not purchase price).
- Overhead Add: Adds Processing Cost (Electricity + Labor) per hour.
- Total Yield: Adjusts for process loss (e.g., 2% evaporation).
Final Cost = (Material Cost + Overhead) / (1 - Loss%)
Edge Cases¶
What if an ingredient has no active price?
System flags "Missing Component Cost" – Quote blocked until Procurement updates rate.
Success Signals¶
✅ Accurately sums weighted BOM costs
✅ Adjusts correctly for process loss yield
UC-QTN-006: Approved Supplier RFQ Locking¶
What It Does¶
"The Law". Prevents purchasing from unapproved vendors for critical customer orders. If a quote is for a sensitive customer (Pharma), system forces sourcing only from "Approved Suppliers".
Who: Quality Manager, Procurement
When: Sourcing for "Grade A" customers
How It Works¶
- Constraint Check:
- Quote context: Customer = "Pharma Giant Inc" (Requires Approved Source).
- Sourcing Restriction:
- Procurement User searches for "Zinc Oxide".
- System HIDES all suppliers except those with "Approved" tag.
- Shows "Grade B" suppliers as grayed out: "Restricted for this Customer".
- Unlock Workflow:
- If Rep wants to use new supplier: Must trigger QLT-002 (Vendor Qualification) first.
Success Signals¶
✅ Hides unapproved vendors for restricted customers
✅ Prevents finalization if source is invalid
UC-QTN-007: Broker Flow & KYC¶
What It Does¶
Manages deals involving middlemen (Brokers). Tracks both the "Buy Rate" (from Supplier) and "Sell Rate" (to Broker), managing the spread and Brokerage payout.
Who: Trade Desk
When: High-volume commodity trading
How It Works¶
- Broker Identification: User flags Quote as "Broker Deal". Selects Broker Name.
- Brokerage Calc:
- Input: "Rate to Customer"
- Input: "Brokerage" (e.g., ₹1/kg or 1%)
Net Realization = Rate - Brokerage- KYC Check:
- Before confirming deal, system checks: "Does User have Broker KYC?"
- If No: Triggers email "Please upload KYC docs" to Broker.
- Blocks Order Confirmation until KYC is "Verified".
Success Signals¶
✅ Calculates Net Realization correctly (deducts brokerage)
✅ Blocks deal if KYC missing
UC-QTN-008: Multi-Entity Quotation Formats¶
What It Does¶
One system, multiple faces. Allows generating PDF quotes on different letterheads (Entity A, Entity B, Entity C) based on the GST number selected, supporting group companies.
Who: Sales Coordinator
When: Generating PDF Output
How It Works¶
- Entity Selection: User selects "Billing Entity" (e.g., Parent Corp vs Subsidiary LLP).
- Template Switch: System loads the corresponding Header/Footer/Bank Details.
- Sequence Number: Generates quote ID from the specific entity's series (e.g.,
CORP/25-26/001vsSUB/25-26/001). - PDF Gen: Renders PDF with correct legal disclaimer for that entity.
Success Signals¶
✅ Correct Bank Details and GST header appear per entity
✅ Sequence numbers increment separately per entity
UC-QTN-009: Win/Loss Analytics¶
What It Does¶
The feedback loop. Forces users to record why a quote failed or succeeded. This data feeds back into the Pricing Engine (QTN-001) to optimize future target prices.
Who: Sales Rep, Management
When: Closing a Quote (Won/Lost)
How It Works¶
- Trigger: User clicks "Close Quote".
- Outcome Selection:
- Won: Enter "Final Sale Price", "PO Number".
- Lost: Enter "Lost To Competitor X", "Winning Price" (if known), "Reason" (Price, Lead Time, Quality).
- Feedback Loop:
- If Lost due to Price: System updates "Market Price" index for that product.
- If Won: System updates "Achievable Price" history.
Success Signals¶
✅ Captures Loss Reason before allowing closure
✅ "Winning Price" data updates system benchmarks