Business Overview
MSA Import Operations
Business Model: Import meat products from India to Uzbekistan via Iran
Scale: $5M+ annual transactions, 50+ containers per shipment, multiple vendors
Product Range: 8-10 meat types per shipment (Buffalo meat, various cuts)
Key Business Metrics
Transaction Volume
Typical PI: $5M
Containers: 51 per shipment
Invoices: 17 per shipment
Containers/Invoice: 3-4
Logistics
Origin: India (Mumbai, Chennai)
Transit: Bandar Abbas, Iran
Destination: Tashkent, Uzbekistan
Mode: 51 containers → 75 trucks
Payment Terms
Advance: 30% upon PI
Balance: 70% upon shipment
Methods: Wire Transfer, LC
Currencies: USD, UZS
Complete Business Flow
Import Lifecycle (13 Stages)
- PI Created - Vendor provides Proforma Invoice with quotation
- PI Confirmed - Terms approved, prices negotiated
- 30% Advance Paid - Initial payment to vendor
- Commercial Invoice Issued - Final invoice with shipment details
- Goods Shipped - Loaded into containers, vessel departs
- In Transit - Shipment en route (20-30 days)
- Arrived at Iran - Containers arrive Bandar Abbas port
- Customs Clearance - Documentation and duty calculation
- Customs Cleared - Duties paid, goods released
- Goods Received - Physical receipt and verification
- Quality Approved - Inspection and acceptance
- 70% Final Payment - Balance payment to vendor
- Completed - All documents filed, pipeline closed
Timeline Targets
| Stage | Duration Target | Cumulative Days |
|---|---|---|
| PI to Invoice | 30 days | 0-30 days |
| Invoice to Shipment | 7 days | 30-37 days |
| Sea Transit (India → Iran) | 20-30 days | 37-67 days |
| Customs Clearance | 3-5 days | 67-72 days |
| Goods Receipt & Quality | 1-2 days | 72-74 days |
| Final Payment Processing | 7-15 days | 74-89 days |
| Total Cycle Time | 60-90 days | Complete |
Document Management
Document Classification
Posting Documents (Affect Financials)
- Advance Payment: Records 30% prepayment
- Commercial Invoice: Creates accounts payable
- Customs Duty Payment: Records import duties
- Goods Receipt Note (GRN): Moves to inventory
- Final Payment: Settles vendor balance
Non-Posting Documents (Reference Only)
- Proforma Invoice (PI): Quotation/commitment
- Purchase Order (PO): Internal authorization
- Bill of Lading (BL): Shipping document
- Packing List: Detailed goods list
- Certificates: Origin, Health, Quality
- Customs Declaration: Import documentation
Required Documentation by Stage
| Stage | Required Documents | Responsible Party |
|---|---|---|
| PI Confirmation | Proforma Invoice, Purchase Order | Procurement Team |
| Advance Payment | Payment Authorization, Bank Transfer Receipt | Finance Team |
| Shipment | Commercial Invoice, Bill of Lading, Packing List | Vendor |
| Customs | Invoice, BL, Packing List, Certificate of Origin, Health Certificate | Customs Broker |
| Goods Receipt | Goods Receipt Note (GRN), Quality Inspection Report | Warehouse Team |
| Final Payment | Approved Invoice, GRN, Payment Authorization | Finance Team |
Detailed Workflow Stages
Stage 1: PI Created (5% Complete)
Draft
Process: Vendor provides Proforma Invoice with product details, quantities, prices, and payment terms.
Key Information:
- Product specifications and quantities
- Unit prices and total amount
- Payment terms (typically 30/70)
- Incoterms (FOB, CIF, etc.)
- Expected delivery timeline
Financial Impact: None (quotation only)
Stage 2: PI Confirmed (10% Complete)
Confirmed
Process: Procurement team reviews and approves PI, negotiates prices if needed.
Actions:
- Review product specifications and quantities
- Verify pricing against market rates
- Confirm payment terms and delivery schedule
- Approve PI for processing
Advance Amount Calculated: 30% of total PI value
Financial Impact: None (commitment only)
Stage 3: Advance Payment - 30% (20% Complete)
Payment Made
Process: Finance team prepares and processes 30% advance payment.
Payment Details:
- Amount: 30% of PI total
- Method: Wire Transfer or Letter of Credit
- Currency: As per contract (usually USD)
- Bank charges: Handled as per agreement
Example: PI Total $221,200 → Advance $66,360
Financial Impact: Advance to Supplier account increased, Bank balance decreased
Stage 4: Commercial Invoice Issued (30% Complete)
Invoice Received
Process: Vendor ships goods and issues Commercial Invoice with final quantities.
Invoice Contents:
- Final product quantities (may differ slightly from PI)
- Container numbers (3-4 per invoice)
- Bill of Lading number and date
- Vessel name and voyage number
- Port of loading and discharge
- Total invoice value
Financial Impact: Creates Accounts Payable liability
Stage 5: Goods Shipped (40% Complete)
Shipped
Process: Goods loaded into containers, vessel departs from Indian port.
Documentation:
- Bill of Lading (BL) issued
- Container seal numbers recorded
- Estimated Time of Departure (ETD)
- Estimated Time of Arrival (ETA) at Iran
Tracking Started: Monitor vessel movement and container status
Stage 6: In Transit (50% Complete)
In Transit
Duration: 20-30 days (sea freight India → Iran)
Monitoring:
- Vessel tracking via maritime systems
- Container temperature monitoring (if applicable)
- ETA updates and adjustments
- Communication with shipping line
Stage 7: Arrived at Iran Port (60% Complete)
Arrived
Process: Vessel arrives at Bandar Abbas, containers offloaded.
Actions:
- Record Actual Time of Arrival (ATA)
- Verify container condition and seals
- Prepare for customs clearance
- Engage customs broker
Container Conversion: Prepare for transfer to trucks (51 containers → 75 trucks)
Stage 8: Customs Clearance (70% Complete)
Processing
Process: Submit customs declaration and supporting documents.
Required Documents:
- Commercial Invoice
- Packing List
- Bill of Lading
- Certificate of Origin
- Health/Veterinary Certificate
- Customs Declaration Form
Duty Calculation:
- Customs Duty: e.g., 10% of value
- VAT: e.g., 12% of (value + duty)
- Other fees: Inspection, storage, etc.
Example Calculation:
Customs Value: $221,200
Customs Duty (10%): $22,120
VAT (12%): $29,198
Total Duties: $51,318
Stage 9: Customs Cleared (80% Complete)
Cleared
Process: Pay customs duties and obtain release order.
Actions:
- Process duty payment
- Receive customs clearance certificate
- Obtain container release order
- Arrange transport to Uzbekistan
Financial Impact: Duty payment adds to inventory cost
Stage 10: Goods Received (90% Complete)
Received
Process: Physical receipt of goods at warehouse in Tashkent.
GRN Process:
- Physical count and weighing
- Temperature verification (frozen goods)
- Package condition inspection
- Compare actual vs expected quantities
- Record any variances or damages
- Create Goods Receipt Note (GRN)
Variance Tolerance: Target <2%
Stage 11: Quality Approved (95% Complete)
Approved
Process: Quality inspection and final acceptance.
Quality Checks:
- Product temperature verification
- Visual inspection for quality
- Sample testing (if required)
- Documentation review
- Final acceptance decision
Target Pass Rate: >99%
If Rejected: Initiate vendor claim and return process
Stage 12: Final Payment - 70% (98% Complete)
Payment Complete
Process: 3-way match verification and final payment processing.
3-Way Match:
- Purchase Order (what we ordered)
- Commercial Invoice (what vendor billed)
- GRN (what we received)
Payment Calculation:
Invoice Total: $221,200
Less: Advance Paid (30%): -$66,360
Balance Due (70%): $154,840
Final Payment: $154,840
Financial Impact: Settles Accounts Payable and clears advance
Stage 13: Completed (100% Complete)
Completed
Final Actions:
- All documents filed and archived
- All payments completed
- Goods in inventory and available for sale
- Pipeline officially closed
- Performance metrics recorded
Total Inventory Cost: Invoice + Duties + Freight = Final Cost
Payment Process & Terms
30/70 Payment Split
30% Advance Payment
Timing: After PI confirmation, before shipment
Purpose: Production commitment and working capital for vendor
Typical Amount: 30% of total PI value
Method: Wire Transfer or Letter of Credit
70% Balance Payment
Timing: CRITICAL - After container arrives at Iran port (Bandar Abbas), BEFORE truck transfer
Purpose: Release containers for customs clearance and truck loading
Typical Amount: 70% of total PI value
Prerequisite: Container arrival confirmation + Bill of Lading received
⚠️ Important: Payment must be completed before goods can be transferred to trucks for Uzbekistan transit
Payment Methods
| Method | When Used | Advantages | Processing Time |
|---|---|---|---|
| Wire Transfer (TT) | Most transactions | Fast, direct, low cost | 1-3 business days |
| Letter of Credit (LC) | High-value shipments, new vendors | Payment security, trade finance | 5-7 business days |
| Documentary Collection | Established vendor relationships | Lower cost than LC | 3-5 business days |
Complete Payment Timeline Example
Shipment Value: $221,200
| Date | Event | Payment | Cumulative Paid | Balance Due |
|---|---|---|---|---|
| Day 0 | PI Confirmed | - | $0 | $221,200 |
| Day 7 | 30% Advance | $66,360 | $66,360 | $154,840 |
| Day 67 | Customs Duty | $51,318 | $117,678 | $154,840 |
| Day 74 | 70% Final Payment | $154,840 | $221,200 | $0 |
| Total Cash Outlay | $272,518 (Invoice + Duties) | |||
Currency Operations (USD & UZS)
🔑 Two-Currency System
MSA operates exclusively with USD and UZS. All international transactions are in USD, local operations in UZS.
Currency Usage
USD - US Dollar (International)
Primary Use:
- All imports from India, Russia, Belarus
- Proforma Invoices (PI) & Commercial Invoices (CI)
- Vendor payments (30% advance, 70% balance)
- Shipping & logistics costs
- Import duties and customs fees
Symbol: $
Status: Base currency for all imports and accounting
UZS - Uzbek Som (Local)
Primary Use:
- Local sales to Uzbekistan customers
- Warehouse operating expenses
- Staff salaries and local vendor payments
- Truck transportation within Uzbekistan
- Local taxes and utilities
Symbol: soʻm
Typical Rate: ~12,500 UZS per USD (variable)
Exchange Rate Management
USD ↔ UZS Conversion
- Daily Updates: USD/UZS exchange rate updated daily from Central Bank of Uzbekistan
- Rate Sources:
- Primary: Central Bank of Uzbekistan official rate
- Secondary: Commercial bank rates for large transactions
- Market rate for reference
- Historical Tracking: All exchange rates archived with timestamps for audit trail
- Dual Tracking: All inventory costs maintained in both USD (import cost) AND UZS equivalent (for local P&L)
Currency Workflow
| Transaction Type | Currency Used | Conversion Point | Rate Applied |
|---|---|---|---|
| Purchase from India vendor | USD | N/A - direct USD | N/A |
| 30% Advance Payment | USD | N/A - direct USD | N/A |
| 70% Balance Payment | USD | N/A - direct USD | N/A |
| Shipping & Logistics | USD | N/A - direct USD | N/A |
| Inventory Valuation | USD + UZS | At GRN creation | Daily rate at arrival |
| Local Sales to Customers | UZS | Selling price calculation | Current market rate + margin |
| Local Operating Expenses | UZS | N/A - direct UZS | N/A |
Currency Risk Management
| Risk Type | Impact | Mitigation Strategy |
|---|---|---|
| Transaction Risk | UZS weakens between purchase (USD) and sale (UZS) | Regular price adjustments, maintain USD margin targets |
| Translation Risk | Financial statement impacts from USD/UZS rate changes | Track P&L in both USD and UZS, report consolidated |
| Inventory Valuation Risk | Older inventory valued at different exchange rates | FIFO method, mark-to-market reviews quarterly |
| Operating Margin Risk | Margin erosion if UZS selling price not adjusted | Weekly price reviews, minimum USD-based margin floor |
Currency Conversion Example
Scenario: Import Purchase (USD) → Local Sale (UZS)
Step 1: Purchase in USD
Import Cost: $221,200 USD
Quantity: 27,000 kg
Cost per kg: $8.19 USD/kg
Step 2: GRN Creation - Convert to UZS for Inventory
Arrival Date: March 15, 2025
Exchange Rate (Mar 15): 12,650 UZS/USD
Inventory Value (UZS): 2,798,180,000 soʻm
Cost per kg (UZS): 103,636 soʻm/kg
Step 3: Local Sale in UZS (2 weeks later)
Sale Date: March 30, 2025
Exchange Rate (Mar 30): 12,750 UZS/USD (UZS weakened)
Target USD Margin: $1.50/kg
Selling Price (USD): $9.69/kg
Selling Price (UZS): 123,548 soʻm/kg
Margin (UZS): 19,912 soʻm/kg
Margin (USD equivalent): $1.56/kg ✅
Step 4: Exchange Rate Impact Analysis
If we used old exchange rate (12,650):
Selling price would be: 122,571 soʻm/kg
Loss: 977 soʻm/kg due to UZS weakening
✅ Solution: Adjust UZS prices weekly based on current USD/UZS rate
System Requirements
Currency Handling in System
- Database Schema:
- Store all import costs in USD (primary)
- Store exchange rate and UZS equivalent at GRN
- Maintain exchange_rates table with daily USD/UZS rates
- Track both currencies: amount_usd, amount_uzs, exchange_rate, rate_date
- Pricing Engine:
- Calculate selling price based on USD cost + USD margin
- Convert to UZS using current exchange rate
- Round UZS prices to nearest 100 soʻm for customer invoices
- Reporting:
- P&L available in both USD and UZS
- Inventory reports show both USD cost and UZS value
- Exchange rate variance reports (monthly)
- Alerts:
- Alert if USD/UZS rate changes > 2% in one day
- Warning if inventory UZS selling price below USD cost equivalent
- Notification for weekly price review based on rate changes
Vendors & Products Catalog
Approved Vendor List
MSA works with a network of certified meat suppliers from India, Russia, and Belarus:
Indian Suppliers (Primary Source)
- HMA AGRO INDUSTRIES LIMITED - Buffalo meat processor
- Mirha Exports Private Limited - Frozen meat exporter
- FAIR EXPORTS (INDIA) PVT. LTD. - Certified halal meat supplier
- IFF India Frozen Foods Private Limited - Premium cuts specialist
Russian & Belarusian Suppliers
- ООО Мастер Мяса (Master Myasa LLC) - Russia
- ООО СПАРТАК (Spartak LLC) - Russia
- ЧП ТОРНАДО ЗАПАД (Tornado Zapad) - Russia
- Слуцкий сыродельный комбинат (Slutsk Cheese Factory) - Belarus
- ОАО Волковысский мясокомбинат (Volkovysk Meat Processing Plant) - Belarus
- ОАО Ошмянский мясокомбинат (Oshmyany Meat Processing Plant) - Belarus
Product Catalog
Complete list of meat products imported and distributed by MSA:
| Category | Item Code | Item Name (Uzbek) | Item Name (English) |
|---|---|---|---|
| BUFFALO COMPENSATED | 15-17 | БУЙИН | NECK |
| 41 | ИЧКИ СОН | TOPSIDE | |
| 42 | ЯБЛОЧКА | THICK FLANK / knuckle | |
| 44 | ТАШКИ СОН | SILVER SIDE | |
| 45 | КОРС | RUMP STEAK | |
| 65 | КУЛ | BLADE | |
| 105/106 | МАЙДА КИЙМА ГУШТ | FOREQUARTER / FQ ROLL | |
| 63 | КУЛ БУЙИН КИСМИ | CHUCK | |
| 31 | ВЫРИЗКА | TENDERLOIN | |
| 46 | КỸНТР ФИЛЕ | STRIPLOIN | |
| HQ CUTS | 41 | ИЧКИ СОН | TOPSIDE |
| 42 | ЯБЛОЧКА | THICK FLANK / knuckle | |
| 44 | ТАШКИ СОН | SILVER SIDE | |
| 45 | КОРС | RUMP STEAK | |
| STRIPLOIN | 46 | КỸНТР ФИЛЕ | STRIPLOIN |
| TENDERLOIN | 31 | ВЫРИЗКА | TENDERLOIN |
| CUBE ROLL | 67 | РИБАЙ | CUBE ROLL |
| BLADE | 65 | КУЛ | BLADE |
| CHUCK TENDER | 64 | КУЛ БУЙИН КИСМИ | CHUCK TENDER |
| SHIN SHANK | 60/60A | ГОЛЯШКА | SHIN SHANK |
| NECK | 15-17 | БУЙИН | NECK |
| FOREQUARTER / FQ ROLL | 105/106 | МАЙДА КИЙМА ГУШТ | FOREQUARTER / FQ ROLL |
| TRIMING | 66 | ОБРЕСКА | TRIMING |
| HEAD MEAT | 152 | КАЛЛА ГУШТ | HEAD MEAT |
| TONGUE | 25 | ТИЛ | TONGUE |
🔑 CRITICAL: Category vs. Storage Distinction
Categories are VENDOR-SPECIFIC for procurement tracking ONLY. After goods arrive in Uzbekistan, items are stored by ITEM CODE, NOT by category.
During Procurement (India → Iran)
Use Category for Vendor Tracking:
- Vendor A ships: BUFFALO COMPENSATED - Item 41 (Topside)
- Vendor B ships: HQ CUTS - Item 41 (Topside)
- Track separately on CI, BL, Container documents
- Purpose: Resolve vendor-specific issues during transit
After Arrival (Uzbekistan Storage)
Consolidate by Item Code:
- Item 41 (Topside) = Single inventory bin
- Combines from BUFFALO COMPENSATED 41 + HQ CUTS 41
- Storage location: By item code, not category
- Purpose: Unified inventory for sales and distribution
Example: Item Code 41 (Topside)
Procurement Phase (Vendor-Specific):
Vendor: HMA AGRO → BUFFALO COMPENSATED - 41 (Topside) → 5,000 kg
Vendor: Mirha Exports → HQ CUTS - 41 (Topside) → 3,000 kg
Storage Phase (Consolidated):
Warehouse Bin: Item Code 41 (TOPSIDE)
Total Stock: 8,000 kg (combined from both vendors)
✅ Traceability Maintained: GRN links back to specific vendor & category
Product Categories Overview
Note: These categories are used ONLY for procurement and vendor tracking, NOT for inventory storage.
- Buffalo Compensated (10 items): Standard buffalo meat cuts including neck, topside, thick flank, silver side, rump steak, blade, forequarter, chuck, tenderloin, and striploin
- HQ Cuts (4 items): Hindquarter premium cuts - topside, thick flank, silver side, rump steak
- Premium Cuts (3 items): High-value cuts - striploin, tenderloin, cube roll (ribeye)
- Standard Cuts (5 items): Blade, chuck tender, shin shank, neck, forequarter roll
- Specialty Items (3 items): Triming, head meat, tongue
Total Product Range: 26 procurement categories → 16 unique item codes in warehouse storage
Inventory Storage by Item Code
Warehouse Storage Structure (Uzbekistan)
Storage Principle: All inventory is stored and managed by Item Code, regardless of procurement category.
🏢 Storage Locations in Tashkent
📍 Main Cold Storage (Ravshan aka)
Type: Primary Storage Facility
Location: Tashkent, Uzbekistan
Purpose: Main distribution center for all imported meat products
Usage: Majority of inventory stored here
📍 Bektemir Cold Storage
Type: Secondary Storage Facility
Location: Bektemir, Tashkent
Purpose: Additional storage capacity and regional distribution
Usage: Overflow inventory and specific product lines
System Requirement: Track inventory by Location + Item Code for accurate stock visibility across both warehouses.
| Item Code | Item Name | Consolidated From Categories | Storage Location |
|---|---|---|---|
| 41 | TOPSIDE (ИЧКИ СОН) | BUFFALO COMPENSATED + HQ CUTS | Main/Bektemir |
| 42 | THICK FLANK (ЯБЛОЧКА) | BUFFALO COMPENSATED + HQ CUTS | Main/Bektemir |
| 44 | SILVER SIDE (ТАШКИ СОН) | BUFFALO COMPENSATED + HQ CUTS | Main/Bektemir |
| 45 | RUMP STEAK (КОРС) | BUFFALO COMPENSATED + HQ CUTS | Main/Bektemir |
| 31 | TENDERLOIN (ВЫРИЗКА) | BUFFALO COMPENSATED + TENDERLOIN | Main/Bektemir |
| 46 | STRIPLOIN (КỸНТР ФИЛЕ) | BUFFALO COMPENSATED + STRIPLOIN | Main/Bektemir |
| 65 | BLADE (КУЛ) | BUFFALO COMPENSATED + BLADE | Main/Bektemir |
| 15-17 | NECK (БУЙИН) | BUFFALO COMPENSATED + NECK | Main/Bektemir |
| 105/106 | FOREQUARTER (МАЙДА КИЙМА ГУШТ) | BUFFALO COMPENSATED + FOREQUARTER | Main/Bektemir |
| 63 | CHUCK (КУЛ БУЙИН КИСМИ) | BUFFALO COMPENSATED only | Main/Bektemir |
| 67 | CUBE ROLL (РИБАЙ) | BUFFALO COMPENSATED only | Main/Bektemir |
| 64 | CHUCK TENDER (КУЛ БУЙИН КИСМИ) | CHUCK TENDER only | Main/Bektemir |
| 60/60A | SHIN SHANK (ГОЛЯШКА) | BUFFALO COMPENSATED + SHIN SHANK | Main/Bektemir |
| 66 | TRIMING (ОБРЕСКА) | TRIMING only | Main/Bektemir |
| 152 | HEAD MEAT (КАЛЛА ГУШТ) | HEAD MEAT only | Main/Bektemir |
| 25 | TONGUE (ТИЛ) | TONGUE only | Main/Bektemir |
System Requirements:
- During GRN Creation: Record Category (from CI), Item Code (for storage), and Storage Location (Main/Bektemir)
- Inventory Management: Manage stock levels by Storage Location + Item Code
- Traceability: Maintain link from Item Code → GRN → Storage Location → Truck → Container → CI → PI → Vendor + Category
- Vendor Issue Resolution: Query inventory by Category to identify specific vendor batches
- Sales & Distribution: Use Item Code + Location for stock availability (customers don't care about categories)
- Location Transfer: Support inter-warehouse transfers between Main and Bektemir
Example Query Scenarios:
Scenario 1: Quality Issue
"We have a quality issue with BUFFALO COMPENSATED - Item 41 from HMA AGRO"
→ Query: WHERE itemCode = '41' AND category = 'BUFFALO COMPENSATED' AND vendor = 'HMA AGRO'
→ Result: Identify specific batch, container#, storage location, arrival date
Scenario 2: Stock Check for Sales
"How much Topside do we have in stock?"
→ Query: SELECT SUM(quantity) FROM inventory WHERE itemCode = '41' GROUP BY location
→ Result: Main: 5,200 kg | Bektemir: 2,800 kg | Total: 8,000 kg
Scenario 3: Vendor Performance
"Show all HQ CUTS items from Mirha Exports in last 6 months"
→ Query: WHERE category = 'HQ CUTS' AND vendor = 'Mirha Exports' AND arrivalDate > '2024-06-01'
→ Result: All items with category filter for vendor analysis
Scenario 4: Location-Specific Stock
"What's available at Bektemir warehouse for immediate delivery?"
→ Query: WHERE location = 'Bektemir' GROUP BY itemCode
→ Result: Available stock by item code at Bektemir only
Container & Shipment Tracking
Container Tracking Workflow
Complete Tracking Lifecycle
PI → 30% Payment → CI + Container Arrival → 70% Payment → Transit → Stock Receipt
- PI Created: Proforma Invoice received from vendor
- 30% Advance Payment: Payment made to secure shipment
- CI Issued: Commercial Invoice + Bill of Lading issued
- Container Arrival at Iran: Containers arrive at Bandar Abbas port
- 70% Payment Made: Balance payment processed
- Customs Clearance: Import duties paid, goods released
- Transit to Uzbekistan: Container-to-truck conversion (51 containers → 75 trucks)
- Stock Receipt: Goods received at cold storage in Tashkent
Shipping Status Stages
| Status | Description | Location | Key Actions |
|---|---|---|---|
| In Transit | Container shipped from India, en route to Iran | Sea transit | Monitor vessel tracking, update ETA |
| Arrived at Iran | Container arrived at Bandar Abbas port | Iran port | Record arrival date, make 70% payment, prepare customs docs |
| Cleared Customs | Customs duties paid, import clearance obtained | Iran customs | Pay duties, obtain release order |
| In Transit to Uzbekistan | Goods loaded on trucks, heading to Uzbekistan | Road transit | Monitor truck movement, coordinate border crossing |
| Arrived Uzbekistan | Goods received at cold storage facility | Tashkent warehouse | Create GRN, quality inspection, transfer to inventory |
Warehouse Locations
Iran Port Storage
Location: Bandar Abbas, Iran
Purpose: Temporary storage during customs clearance
Typical Duration: 5-10 days
Capacity: Container storage yard
Main Cold Storage Tashkent
Location: Tashkent, Uzbekistan
Purpose: Final inventory storage and distribution
Temperature: -18°C to -20°C
Capacity: Full facility for all products
Container-to-Truck Conversion
Logistics Conversion at Iran Border
Why Conversion is Needed: Sea containers cannot cross land borders directly
Typical Conversion Ratio:
- 51 x 40ft containers from India
- Converted to 75 refrigerated trucks
- Ratio: ~1.47 trucks per container
Process:
- Containers arrive at Bandar Abbas port
- Customs clearance completed
- Containers unloaded at port facility
- Goods transferred to refrigerated trucks
- Trucks depart for Uzbekistan border
- Border crossing and arrival in Tashkent
PI-to-Container Linking
Document Relationship Structure
| Level | Document | Relationship | Example |
|---|---|---|---|
| 1 | Proforma Invoice (PI) | Master document | PI-2025-001 ($5M total) |
| 2 | Commercial Invoices (CI) | Multiple CIs per PI | 17 invoices from PI-2025-001 |
| 3 | Containers | Multiple containers per CI | 3-4 containers per invoice |
| 4 | Trucks | Conversion from containers | 51 containers → 75 trucks |
Example Hierarchy:
PI-2025-001 ($5M)
├─ CI-001 → Containers: TRIU1001, TRIU1002, TRIU1003, TRIU1004 (partial)
├─ CI-002 → Containers: TRIU1004 (partial), TRIU1005, TRIU1006, TRIU1007
├─ CI-003 → Containers: TRIU1008, TRIU1009, TRIU1010
└─ ... (17 invoices total, 51 containers)
📋 Real-World Example: CI to Container Mapping
Complete Example: PI HMA/PI/2677/202425 → CI MH/104/202526
Commercial Invoice Details:
| PI Number | CI Number | CI Date | Vendor | Total Items | Total Weight | Total Value |
|---|---|---|---|---|---|---|
| HMA/PI/2677/202425 | MH/104/202526 | 21.04.2025 | HMA AGRO INDUSTRIES LIMITED | 12 line items | ~185,000 kg | ~$720,000 |
CI Line Items Summary
| Category | Item Code | Item Name | Boxes | Kg/Box | Total Kg | Rate ($/Kg) | Amount ($) |
|---|---|---|---|---|---|---|---|
| BUFFALO COMPENSATED | 41 | TOPSIDE | 280 | 40 | 5,600 | $3.85 | $21,560.00 |
| 42 | THICK FLANK / knuckle | 224 | 40 | 4,480 | $3.85 | $17,248.00 | |
| 44 | SILVER SIDE | 392 | 40 | 7,840 | $3.85 | $30,184.00 | |
| 45 | RUMP STEAK | 224 | 40 | 4,480 | $3.85 | $17,248.00 | |
| 63 | CHUCK | 236 | 40 | 4,720 | $3.85 | $18,172.00 | |
| 65 | BLADE | 400 | 40 | 8,000 | $3.85 | $30,800.00 | |
| 105/106 | FOREQUARTER / FQ ROLL | 644 | 40 | 12,880 | $3.85 | $49,588.00 | |
| 15-17 | NECK | 400 | 40 | 8,000 | $3.85 | $30,800.00 | |
| BUFFALO COMPENSATED Subtotal: | 2,800 | 56,000 | $215,600.00 | ||||
| HQ CUTS | 41 | TOPSIDE | 784 | 40 | 15,680 | $3.95 | $61,936.00 |
| 42 | THICK FLANK / knuckle | 560 | 40 | 11,200 | $3.95 | $44,240.00 | |
| 44 | SILVER SIDE | 896 | 40 | 17,920 | $3.95 | $70,784.00 | |
| 45 | RUMP STEAK | 560 | 40 | 11,200 | $3.95 | $44,240.00 | |
| HQ CUTS Subtotal: | 2,800 | 56,000 | $221,200.00 | ||||
| GRAND TOTAL: | 5,600 boxes | 112,000 kg | $436,800.00 | ||||
🚢 Container Allocation for This CI
Scenario: 112,000 kg total weight requires multiple 40ft refrigerated containers
Container Capacity: 40ft Reefer = ~27,000 kg max capacity (accounting for refrigeration equipment)
Calculation: 112,000 kg ÷ 27,000 kg = ~4.15 containers → 5 containers needed
| Container# | Type | Contents (Approximate) | Weight (kg) | Value ($) | BL Number |
|---|---|---|---|---|---|
| MSCU1234567 | 40ft Reefer | BUFFALO COMP: Items 41, 42, 44 (partial) | 23,500 | $90,475 | BLIND2025041001 |
| MSCU1234568 | 40ft Reefer | BUFFALO COMP: Items 44 (partial), 45, 63 | 22,400 | $86,240 | BLIND2025041002 |
| MSCU1234569 | 40ft Reefer | BUFFALO COMP: Items 65, 105/106 (partial) | 22,300 | $85,855 | BLIND2025041003 |
| TGBU8901234 | 40ft Reefer | HQ CUTS: Items 41, 42, 44 (partial) | 25,200 | $99,540 | BLIND2025041004 |
| TGBU8901235 | 40ft Reefer | BUFFALO COMP: 15-17, 105/106 (partial) HQ CUTS: 44 (partial), 45 |
18,600 | $74,690 | BLIND2025041005 |
| TOTAL (5 Containers): | 112,000 kg | $436,800 | 5 BLs | ||
📊 Key Insights
Container Distribution Strategy
- Mixed Loading: Containers may contain multiple item codes from same category
- Category Separation: BUFFALO COMPENSATED and HQ CUTS may be mixed in containers due to space optimization
- Container Utilization: Average 22,400 kg per container (83% capacity utilization)
- Temperature Control: All containers maintain -18°C to -22°C
Tracking Requirements
- Individual Container Status: Each container tracked separately (may arrive on different dates)
- BL per Container: Each container has unique Bill of Lading number
- Payment Trigger: 70% payment required when ALL 5 containers arrive at Iran port
- Truck Conversion: 5 containers → ~7-8 trucks (using 1.47 ratio)
🔗 System Data Model
Relationships:
PI# HMA/PI/2677/202425
└─ CI# MH/104/202526 (Dated: 21.04.2025)
├─ 12 Line Items (112,000 kg total)
└─ 5 Containers:
├─ MSCU1234567 (BL: BLIND2025041001) → 3 Trucks (UZ-TRK-001, 002, 003)
├─ MSCU1234568 (BL: BLIND2025041002) → 2 Trucks (UZ-TRK-004, 005)
├─ MSCU1234569 (BL: BLIND2025041003) → 2 Trucks (UZ-TRK-006, 007)
├─ TGBU8901234 (BL: BLIND2025041004) → 2 Trucks (UZ-TRK-008, 009)
└─ TGBU8901235 (BL: BLIND2025041005) → 1 Truck (UZ-TRK-010)
└─ 10 Trucks total → 10 GRNs → Stock at Main/Bektemir
Database Tables Involved:
• ProformaInvoice (PI)
• CommercialInvoice (CI) - foreign key to PI
• CommercialInvoiceItem (12 records) - foreign key to CI
• Container (5 records) - foreign key to CI
• Truck (10 records) - foreign key to Container
• GoodsReceiptNote (10 records) - foreign key to Truck
• InventoryItem (stock updates by Item Code + Location)
Multiple Containers per PI - Best Practices
Recommended Approach: One CI per Container Group
Structure:
- Each Commercial Invoice covers 3-5 containers (depending on total weight)
- Each container tracked individually with unique number
- Container arrival dates recorded separately
- Shipping status updated per container
Advantages:
- ✅ Clear tracking of each container arrival
- ✅ Independent status updates for delayed containers
- ✅ Easier reconciliation with shipping documents
- ✅ Better visibility for operations team
Stock Movement Tracking
| Movement Type | From | To | Trigger Event |
|---|---|---|---|
| Initial Receipt | Vendor (India) | Goods in Transit | Commercial Invoice created |
| Port Arrival | Goods in Transit | Iran Port Storage | Container arrival at Bandar Abbas |
| Customs Release | Iran Port Storage | Iran Port Storage (cleared) | Customs duties paid |
| Cross-Border Transfer | Iran Port Storage | Main Cold Storage Tashkent | Trucks arrive in Uzbekistan |
| Final Inventory | Main Cold Storage | Available Inventory | Quality inspection passed |
Shipping & Logistics Operations
Shipping Line Types
Direct Shipping
Definition: Direct shipment from origin port (India) to destination port (Iran) without transshipment
Advantages:
- Faster transit time (14-18 days)
- Lower risk of cargo damage
- Lower shipping costs
- Single Bill of Lading
Typical Routes:
- Nhava Sheva (India) → Bandar Abbas (Iran)
- Mumbai (India) → Bandar Abbas (Iran)
Indirect Shipping (Transshipment)
Definition: Shipment via intermediate hub ports with cargo transfer between vessels
Characteristics:
- Longer transit time (25-35 days)
- Higher risk during cargo transfer
- May offer better rates for smaller volumes
- Multiple handling points
Common Hub Ports:
- Jebel Ali (Dubai, UAE)
- Colombo (Sri Lanka)
- Salalah (Oman)
Bill of Lading (BL) Types
| BL Type | Description | Use Case | Cost Impact |
|---|---|---|---|
| Original BL (OBL) | Physical paper document, full set of 3 originals | Traditional shipments, bank financing required | Standard rate |
| Master BL (MBL) | Issued by carrier/shipping line to freight forwarder | Consolidation shipments, multiple consignees | Standard rate |
| House BL (HBL) | Issued by freight forwarder to actual shipper | LCL shipments, freight forwarder consolidations | May include forwarder margin |
| Telex Release | Electronic surrender of original BL | Faster cargo release, trusted parties | $25-50 fee per BL |
| Express BL / Sea Waybill | Non-negotiable document, no original required | Pre-paid shipments, no financing needed | No additional fee |
Extended Shipment Status Lifecycle
Complete Status Progression
| Stage | Status | Activities & Documentation | Timeline |
|---|---|---|---|
| 1 | Booking Confirmed | Shipping line booking, container allocation confirmed | Day 0 |
| 2 | Cargo Loaded | Container stuffed at origin, VGM declaration submitted | Day 1-2 |
| 3 | Departed Origin | Vessel departed India port, Bill of Lading issued | Day 3 |
| 4 | In Transit (Sea) | Container in transit, vessel tracking active | Day 4-17 |
| 5 | Arrived at Discharge Port | Container arrived Bandar Abbas, port storage begins | Day 18 |
| 6 | Telex Release Received | Electronic BL surrender completed, cargo can be released | Day 18-19 |
| 7 | Local Charges Paid | Port charges, terminal handling, detention fees paid | Day 19-20 |
| 8 | Customs Clearance | Import duties, VAT, customs documentation completed | Day 21-25 |
| 9 | Container Released | Customs release order, container ready for pickup | Day 26 |
| 10 | In Transit to Uzbekistan | Loaded on trucks, en route to border | Day 27-30 |
| 11 | Arrived Uzbekistan | Goods received at cold storage, GRN created | Day 31-35 |
Local Charges & Cost Components
Port Charges at Bandar Abbas
| Charge Type | Description | Typical Amount (USD) | Link to BL |
|---|---|---|---|
| THC (Terminal Handling) | Loading/unloading at port terminal | $150-200 per container | Referenced on BL |
| Port Congestion Surcharge | Additional fee during peak periods | $50-100 per container | Mentioned in BL remarks |
| Documentation Fee | Processing import documents | $25-50 per BL | BL number required |
| Detention & Demurrage | Container storage beyond free time | $50-100 per day | Calculated from BL date |
| Wharfage Fee | Use of port infrastructure | $30-60 per container | Based on BL cargo value |
| Reefer Monitoring | Temperature monitoring for refrigerated containers | $75-150 per container | BL indicates reefer settings |
Truck Transportation System
Container-to-Truck Logistics
Process Overview:
- Auto-Load Products from CI: When creating shipping record, system automatically loads all products from linked Commercial Invoice
- Container Assignment: Containers assigned to trucks based on capacity and route
- Truck Allocation: Refrigerated trucks booked (typically 1.47 trucks per 40ft container)
- Transfer Documentation: Truck waybills generated with references to original BL and CI
- Route Tracking: GPS tracking from Iran to Uzbekistan border and final destination
Truck Details & Specifications
| Truck Type | Capacity | Temperature Range | Transit Time |
|---|---|---|---|
| 40ft Refrigerated Truck | ~26-28 tons | -18°C to -20°C | 4-5 days |
| 20ft Refrigerated Truck | ~12-14 tons | -18°C to -20°C | 4-5 days |
Conversion Calculation:
40ft Container Capacity: 27,000 kg (avg)
Truck Capacity: ~18,500 kg (avg considering road restrictions)
Conversion Ratio: 27,000 / 18,500 = 1.46 trucks per container
Example: 51 containers × 1.47 = 75 trucks
🚨 CRITICAL: Dual Tracking System - Containers AND Trucks
Why We Track Both Containers AND Trucks Separately
Payment Trigger Point: The 70% balance payment occurs AFTER containers arrive at Iran port but BEFORE transfer to trucks. This creates two distinct tracking phases:
Phase 1: CONTAINER TRACKING
From: India (Origin Port)
To: Iran (Bandar Abbas Port)
Key Milestone: Container arrival triggers 70% payment
- Container# (e.g., TRIU1001)
- BL# (Bill of Lading)
- Vessel name & voyage
- Sea transit tracking
Phase 2: TRUCK TRACKING
From: Iran (Bandar Abbas Port)
To: Uzbekistan (Tashkent)
Prerequisite: 70% payment MUST be completed first
- Truck# (e.g., UZ-TRK-001)
- Link to original Container#
- Driver & route details
- Road transit tracking
Container Status Lifecycle (India → Iran Port)
Phase 1: Sea Transit - Container Tracking
| Status | Location | Description | Actions Required | Timeline |
|---|---|---|---|---|
| Booking Confirmed | India - Origin | Container allocated by shipping line | Receive booking confirmation, container number assigned | Day 0 |
| Container Stuffed | India - Warehouse/Factory | Products loaded into refrigerated container | Verify product list, seal container, generate VGM | Day 1-2 |
| Gate-In at Port | India - Port (Nhava Sheva/Mumbai) | Container delivered to port, waiting for vessel | Port gate-in receipt, confirm loading schedule | Day 2-3 |
| Loaded on Vessel | India - Port | Container loaded on ship, BL issued | Receive Bill of Lading (BL#), share with team | Day 3-4 |
| Departed India | India - Sea | Vessel departed Indian port | Start vessel tracking, monitor ETA | Day 4 |
| In Transit (Sea) | Arabian Sea | Container in sea transit to Iran | Daily vessel position updates, confirm ETA | Day 5-17 |
| 🚨 ARRIVED IRAN PORT | Iran - Bandar Abbas Port | Container arrived at discharge port | TRIGGER 70% PAYMENT NOW | Day 18 |
| Waiting for Payment | Iran - Port Storage | Container in port, awaiting 70% payment completion | Process 70% payment urgently to avoid demurrage | Day 18-20 |
| ✅ Payment Confirmed | Iran - Port | 70% payment completed, ready for next phase | Obtain payment confirmation, initiate customs clearance | Day 20 |
| Telex Release Received | Iran - Port | Electronic BL surrender, cargo can be released | Pay telex release fee (~$25-50) | Day 20-21 |
| Local Charges Paid | Iran - Port | Port charges, THC, detention fees settled | Pay all port-related charges ($400-600) | Day 21 |
| Customs Cleared | Iran - Customs | Import duties paid, customs release obtained | Submit docs, pay duties, get release order | Day 22-25 |
| 🔄 READY FOR TRUCK TRANSFER | Iran - Port Yard | Container cleared, ready to transfer to trucks | BEGIN TRUCK TRACKING PHASE | Day 26 |
Truck Status Lifecycle (Iran Port → Uzbekistan)
Phase 2: Road Transit - Truck Tracking
⚠️ Prerequisite: Container tracking must reach "Ready for Truck Transfer" status (70% payment completed)
| Status | Location | Description | Container Link | Timeline |
|---|---|---|---|---|
| Truck Booked | Iran - Port | Refrigerated truck allocated for transfer | Linked to Container# TRIU1001 | Day 26 |
| Container Unstuffing | Iran - Port/CFS | Goods transferred from container to truck | 1 container → 1.47 trucks (avg) | Day 26-27 |
| Truck Loaded | Iran - Port Yard | Truck loaded with goods from container | Record: Truck# UZ-TRK-001 from Container# TRIU1001 | Day 27 |
| Departed Iran | Iran - Port Gate | Truck departed from port, en route to Uzbekistan | Gate-out slip, GPS tracking starts | Day 27 |
| In Transit (Road) | Iran → Uzbekistan Border | Truck traveling through Iran towards border | GPS updates every 4-6 hours | Day 28-30 |
| At Iran Border | Iran-Uzbekistan Border | Truck waiting for border crossing formalities | Iran exit stamp, Uzbekistan entry documents | Day 30-31 |
| Border Crossed | Uzbekistan Side | Truck entered Uzbekistan territory | Uzbekistan customs clearance | Day 31 |
| In Transit to Tashkent | Uzbekistan - Road | Truck traveling to final destination | GPS tracking, ETA to cold storage | Day 32-34 |
| ✅ ARRIVED COLD STORAGE | Tashkent - Main (Ravshan aka) or Bektemir | Truck arrived at designated warehouse location | Create GRN, link to original Container# + CI#, specify storage location | Day 35 |
| Unloaded & Inspected | Main/Bektemir - Warehouse | Goods unloaded, quality inspection at designated location | Temperature check, quantity verification, location assignment | Day 35 |
| Stock Received | Main/Bektemir - Inventory | GRN finalized, goods added to inventory by location | Full traceability: PI → CI → Container# → Truck# → Location → GRN# | Day 35 |
🔍 GRN Verification Checklist - Smart Comparison System
Warehouse Manager: Truck Arrival Verification Process
Purpose: When a truck arrives at Main/Bektemir warehouse, warehouse managers must verify actual received quantities against the Commercial Invoice (CI) data to identify discrepancies before creating the GRN.
📋 Pre-Unloading Checklist
| ✓ | Verification Item | Expected Data Source | Action Required |
|---|---|---|---|
| ☐ | Truck Number | System: Truck# (e.g., UZ-TRK-001) | Verify physical truck matches system record |
| ☐ | Driver Identity | System: Driver name + contact | Check ID, confirm contact number |
| ☐ | Container Number | System: Linked Container# (e.g., TRIU1001) | Verify container seal intact if applicable |
| ☐ | Commercial Invoice (CI) | System: CI# linked to truck → container | Load CI details for comparison (auto-populate from system) |
| ☐ | Temperature Seal Check | Visual inspection | Verify refrigeration maintained during transit |
| ☐ | Documents Present | Physical documents with driver | BL copy, packing list, health certificates, CMR |
📦 Smart Comparison Table - CI vs Actual Received
System Function: Auto-generate this comparison table when warehouse manager scans Truck# or CI#
Example CI: PI# HMA/PI/2677/202425 | CI# MH/104/202526 | Dated: 21.04.2025
| Item Code | Product Name | Category | CI Expected Data | Actual Received | Variance | Status | ||||
|---|---|---|---|---|---|---|---|---|---|---|
| Boxes | Kg/Box | Total Kg | Boxes | Kg/Box | Total Kg | |||||
| 41 | TOPSIDE | BUFFALO COMPENSATED | 280 | 40.00 | 5,600.00 | 5,538.30 | -61.70 kg | ⚠️ Minor -1.1% | ||
| 42 | THICK FLANK / knuckle | BUFFALO COMPENSATED | 224 | 40.00 | 4,480.00 | 4,480.00 | 0.00 kg | ✅ Perfect Match | ||
| 44 | SILVER SIDE | BUFFALO COMPENSATED | 392 | 40.00 | 7,840.00 | 7,887.04 | +47.04 kg | ✅ Minor +0.6% | ||
| 45 | RUMP STEAK | BUFFALO COMPENSATED | 224 | 40.00 | 4,480.00 | 4,400.00 | -80.00 kg | ⚠️ Minor -1.8% | ||
| 41 | TOPSIDE | HQ CUTS | 784 | 40.00 | 15,680.00 | 15,640.80 | -39.20 kg | ⚠️ Minor -0.2% | ||
| 42 | THICK FLANK / knuckle | HQ CUTS | 560 | 40.00 | 11,200.00 | 11,228.00 | +28.00 kg | ✅ Minor +0.2% | ||
| 44 | SILVER SIDE | HQ CUTS | 896 | 40.00 | 17,920.00 | 16,800.00 | -1,120.00 kg | 🚨 MAJOR -6.3% | ||
| 45 | RUMP STEAK | HQ CUTS | 560 | 40.00 | 11,200.00 | 11,100.00 | -100.00 kg | ⚠️ Minor -0.9% | ||
| TOTALS: | 78,400.00 kg | 77,074.14 kg | -1,325.86 kg | 98.3% | ||||||
| ⚠️ ALERT: Item 44 (HQ CUTS) has -6.3% shortage. Procurement approval required! | ||||||||||
🚨 Smart Variance Alerts
✅ Acceptable Variances
Tolerance Level: ±2% or ±10 kg per item (whichever is greater)
- Minor Overage: 0% to +2% → Accept and proceed with GRN
- Minor Shortage: 0% to -2% → Accept with note in GRN
- Example: Item 31 (Tenderloin) +15.20 kg on 750 kg = +2.03% → Acceptable
🚨 Critical Variances - Action Required
Alert Threshold: Greater than ±2% or ±10 kg
- Major Shortage: More than -2% → Immediate notification to procurement
- Major Overage: More than +5% → Verify with supplier (potential error)
- Example: Item 66 (Triming) -162 kg on 2,160 kg = -7.5% → ALERT!
📸 Quality Inspection Checklist
| ✓ | Inspection Point | Expected Standard | Actual Result | Action if Failed |
|---|---|---|---|---|
| ☐ | Product Temperature | -18°C to -22°C (frozen) | Reject if above -15°C | |
| ☐ | Packaging Integrity | Vacuum sealed, no tears | Document damaged boxes, reject if >5% | |
| ☐ | Product Color | Deep red (buffalo meat) | Photo evidence, notify QC team | |
| ☐ | Odor Test | No off-smell, fresh meat scent | Immediate rejection, quarantine batch | |
| ☐ | Ice Crystals | Minimal (indicates no thaw/refreeze) | Check temperature logs, may reject | |
| ☐ | Label Verification | Item code, batch, expiry visible | Re-label if missing, verify with CI | |
| ☐ | Random Weight Check | Sample 10% boxes, verify kg/box | Adjust actual totals if variance >3% | |
| ☐ | Halal Certificate | Valid, batch numbers match | CANNOT receive without valid cert |
📝 Variance Resolution Workflow
IF Total Variance > 2% OR Any Single Item > 5% Shortage:
STEP 1: Warehouse Manager MUST NOT complete GRN yet
STEP 2: Take photos of discrepancy (boxes, labels, weight scales)
STEP 3: System auto-generates "Discrepancy Report":
═══════════════════════════════════════════════════════════
📋 DISCREPANCY REPORT - URGENT ACTION REQUIRED
═══════════════════════════════════════════════════════════
PI Number: HMA/PI/2677/202425
CI Number: MH/104/202526 (Dated: 21.04.2025)
Container#: TRIU1001 (40ft Reefer)
Truck#: UZ-TRK-001
Warehouse Location: Main Cold Storage (Ravshan aka)
Arrival Date/Time: 25.05.2025 14:35
Warehouse Manager: Alisher Karimov
Vendor: HMA AGRO INDUSTRIES LIMITED
───────────────────────────────────────────────────────────
🚨 CRITICAL VARIANCE DETECTED:
Item Code 44 - SILVER SIDE (HQ CUTS)
Expected: 896 boxes × 40.00 kg = 17,920.00 kg
Received: 840 boxes × 40.00 kg = 16,800.00 kg
Shortage: -1,120.00 kg (-6.3%)
Value Impact: -1,120 kg × $3.95/kg = -$4,424.00
Overall Shipment Summary:
Total Expected: 78,400.00 kg
Total Received: 77,074.14 kg
Total Shortage: -1,325.86 kg (-1.7%)
Estimated Value Loss: $5,101.75
───────────────────────────────────────────────────────────
Quality Issues Noted:
❌ Temperature reading: -16.5°C (Expected: -18°C to -22°C)
⚠️ Packaging: 12 boxes with torn vacuum seals (Item 44)
✅ Halal certification: Valid
✅ Product color/odor: Pass
───────────────────────────────────────────────────────────
Photos Attached:
📷 IMG_20250525_143512.jpg - Missing boxes Item 44
📷 IMG_20250525_143628.jpg - Weight scale verification
📷 IMG_20250525_143745.jpg - Torn packaging samples
📷 IMG_20250525_143901.jpg - Temperature logger reading
═══════════════════════════════════════════════════════════
STEP 4: System sends alert to:
✉️ Procurement Manager (approve/reject receipt)
✉️ Finance Team (adjust payment if applicable)
✉️ Vendor Contact: procurement@hmaagro.com (claim process for shortage)
📱 SMS Alert: +998 90 123 4567 (Procurement Manager mobile)
STEP 5: Procurement Manager Decision:
Option A: Accept with Adjustment → Create GRN with actual qty, note variance, initiate claim
→ Generate Claim# MSA-CLM-2025-042 for $5,101.75
→ Deduct shortage from next payment OR request credit note
Option B: Reject Shipment → Return to supplier, cancel GRN, update truck status
→ Driver returns with goods, full refund process initiated
Option C: Partial Accept → Accept good items, reject damaged/missing, split GRN
→ Accept 7 items (77,074.14 kg), Reject Item 44 shortage (1,120 kg)
→ Create GRN for accepted, Return note for rejected
STEP 6: If accepted, create GRN with:
- Actual received quantities (not CI quantities)
- Variance notes attached to each line item
- Photos uploaded to GRN record
- Claim reference# MSA-CLM-2025-042 linked
- Storage location: Main (Ravshan aka)
- GRN Status: "Received with Discrepancy - Claim Pending"
IF Variance ≤ 2% AND All Items Within Tolerance:
STEP 1: Warehouse Manager completes quality inspection
STEP 2: System auto-generates GRN with actual quantities
STEP 3: Stock immediately added to inventory (Location: Main or Bektemir)
STEP 4: Minor variance report sent to procurement (info only, no action required)
STEP 5: GRN Status: "Received - Normal Variance"
💾 System Features Required
- Auto-Load CI Data: When truck# scanned, system loads all CI line items into comparison table
- Real-Time Calculation: As warehouse manager enters actual boxes/kg, system calculates:
- Total kg per item
- Variance in kg and %
- Color-coded status (green = match, yellow = minor, red = major)
- Overall acceptance score
- Mobile-Friendly Interface: Warehouse managers use tablets to enter data on warehouse floor
- Photo Attachment: Camera integration for damage/discrepancy documentation
- Barcode/QR Scanning: Scan item codes from boxes to auto-fill product details
- Digital Signature: Warehouse manager + Driver sign-off on discrepancies
- Automatic Alerts: Email/SMS to procurement when variance exceeds tolerance
- Historical Comparison: Show previous receipts from same vendor for quality trends
- GRN Preview: Show exactly what will be added to inventory before final submit
📊 Post-GRN Tracking Metrics
| Metric | Calculation | Target | Action if Below Target |
|---|---|---|---|
| Receipt Accuracy Rate | (Actual Received / CI Expected) × 100 | ≥98% | Review vendor performance, update contract terms |
| Quality Pass Rate | (Items Passed QC / Total Items) × 100 | ≥95% | Vendor quality audit, consider alternative suppliers |
| GRN Processing Time | Time from truck arrival to GRN finalized | ≤4 hours | Add warehouse staff, improve system speed |
| Discrepancy Resolution Time | Time from variance alert to procurement decision | ≤2 hours | Improve communication channels, set clear authority limits |
Container-to-Truck Linking Requirements
System Requirements for Dual Tracking
Database Design:
- Container Table: Track container from India to Iran port
- Container ID (primary key)
- Container Number (e.g., TRIU1001)
- BL Number
- Commercial Invoice ID (foreign key to CI)
- Container Status (enum: booked, stuffed, in_transit, arrived_iran, payment_pending, cleared, ready_for_truck)
- Vessel name, voyage number
- Departure date (India), Arrival date (Iran)
- 70% Payment Status (pending, completed)
- 70% Payment Date
- Truck Table: Track truck from Iran port to Uzbekistan
- Truck ID (primary key)
- Truck Number (e.g., UZ-TRK-001)
- Container ID (foreign key - CRITICAL LINK)
- Truck Status (enum: booked, loading, departed_iran, in_transit, at_border, crossed_border, in_transit_uzb, arrived_tashkent, unloaded)
- Driver name, contact
- Departure date (Iran), Arrival date (Uzbekistan)
- Storage Location (enum: Main, Bektemir) - Destination warehouse
- GPS tracking data
- Critical Relationship: One Container → Multiple Trucks (1.47 ratio)
- Each Truck record MUST have Container ID as foreign key
- Can trace: Truck# UZ-TRK-001 → Container# TRIU1001 → BL# BLIND123456 → CI# MSA-CI-2025-001 → PI# MSA-PI-2025-001
UI/Dashboard Requirements:
- Container View: Show all containers with status, payment status, and linked trucks
- Truck View: Show all trucks with status, linked container, and route
- Shipment Overview: Combined view showing:
- PI# → CI# → Container# (India to Iran) → 70% Payment → Truck# (Iran to Uzbekistan) → GRN#
- Payment Trigger Alert: System alert when container status = "arrived_iran" → prompt for 70% payment
- Automatic Status Update: After 70% payment confirmed → Container status = "ready_for_truck" → Enable truck creation
Example Tracking Flow:
CI-2025-001 ($100,000)
↓
Container# TRIU1001 (Status: In Transit - India to Iran)
↓
[Day 18] Container Arrived Iran Port → Status: "Payment Pending"
🚨 ALERT: Make 70% payment ($70,000) NOW
↓
[Day 20] 70% Payment Confirmed → Status: "Ready for Truck"
↓
Create Trucks linked to Container# TRIU1001:
├─ Truck# UZ-TRK-001 (18,500 kg) - Link: TRIU1001
└─ Truck# UZ-TRK-002 (8,500 kg) - Link: TRIU1001
↓
[Day 27] Trucks Departed Iran → Status: "In Transit to Uzbekistan"
↓
[Day 35] Trucks Arrived Tashkent → Create GRN (linked to both trucks + original container + CI)
Transportation Bill Management
Transportation Bill Types
1. Direct Bill
- Single consolidated bill for entire shipment
- One total amount covering all containers/trucks
- Easier accounting, single payment entry
- Use case: Regular trusted vendors
2. Separated Bill
- Individual bills per container or truck
- Detailed breakdown of costs
- Better cost tracking per unit
- Use case: Multi-vendor consolidations, audit requirements
3. Total Bill (Aggregated)
- Combined bill with itemized breakdown
- Shows per-unit costs + total
- Balance between detail and simplicity
- Use case: Monthly consolidated shipments
Bill Payment Methods
Cash Payment
- Physical cash payment to transporter
- Immediate receipt required
- Used for: Small amounts, local trucking, emergency situations
- Accounting: Petty cash journal entry
Bank Payment
- Bank transfer or check payment
- Full audit trail and documentation
- Used for: All major logistics bills, international payments
- Accounting: Bank account journal entry with payment voucher
Payment Terms:
- Advance: 30% before departure (for truck booking)
- On Delivery: 70% upon arrival at Tashkent cold storage
- Credit Terms: 15-30 days for established transporters
Logistics Extra Charges
Additional Costs Linked to Bill of Lading
All extra charges must reference the original BL number for tracking and reconciliation:
| Extra Charge | Trigger Condition | Calculation Basis | BL Link Requirement |
|---|---|---|---|
| Demurrage Charges | Container kept beyond free time at port | Per day × days exceeded | BL# + Container# + Arrival date from BL |
| Detention Charges | Container used beyond free time outside port | Per day × days exceeded | BL# + Container# + Gate-out date |
| Customs Examination Fee | Physical inspection of goods | Fixed fee or % of value | BL# + CI# + Customs declaration# |
| Cold Storage Charges | Extended storage before truck dispatch | Per ton × days × rate | BL# + Warehouse receipt# |
| Re-stuffing Charges | Cargo transferred to different container/truck | Per container + labor cost | Original BL# + New container# |
| Document Courier | Urgent delivery of original documents | Fixed fee per shipment | BL# + Tracking number |
| Fumigation Charges | Pest control treatment required | Per container + certificate fee | BL# + Fumigation certificate# |
Recording Extra Charges:
- All extra charges must link to original BL number in system
- Charges increase landed cost per kg for accurate inventory valuation
- Payment against extra charges requires BL reference for approval
- Monthly reconciliation of all BL-linked charges against original shipping cost
Shipping Creation Workflow
Auto-Load Products from Commercial Invoice
When creating a new shipment record:
- Select Commercial Invoice: Choose CI from dropdown (all CIs with status "Issued" or "Confirmed")
- Auto-Load Products: System automatically loads all line items from selected CI:
- Product code and description
- Quantity (kg)
- Box count
- Kg per box
- Unit price and total amount
- Assign Containers: Allocate products to container numbers (e.g., TRIU1001, TRIU1002)
- Link Bill of Lading: Enter BL number for tracking
- Set Shipping Details:
- Shipping line (Direct/Indirect)
- Vessel name and voyage number
- Departure and estimated arrival dates
- Port of loading and discharge
- Create Shipment: System generates shipment record linked to CI and BL
- Track Status: Status updates automatically as shipment progresses
Benefits of Auto-Load
- Data Accuracy: No manual re-entry of product details
- Time Saving: Instant population of 10-20 line items
- Full Traceability: Direct link from PI → CI → Shipment → GRN
- Error Prevention: Eliminates quantity mismatches between documents
Practical Examples
Example 1: Simple Shipment - Single Container
Scenario Details
- Vendor: HMA AGRO Industries
- Product: Buffalo Topside (MEAT-41)
- Quantity: 5,000 kg
- Unit Price: $3.775/kg
- Total Value: $18,875
- Containers: 1 x 40ft
- Container Number: TRIU1234567
Complete Timeline
| Day | Action | Amount | Status |
|---|---|---|---|
| Day 0 | PI created and confirmed | $18,875 | PI Confirmed |
| Day 7 | 30% advance payment made | $5,662.50 | Payment Sent |
| Day 30 | Goods shipped, CI issued | - | Shipped |
| Day 35 | Container arrives Iran, status updated | - | Arrived Iran |
| Day 38 | 70% balance payment made | $13,212.50 | Payment Complete |
| Day 45 | Customs cleared, duties paid | $1,887.50 (10%) | Cleared |
| Day 50 | Loaded on truck to Uzbekistan | - | In Transit |
| Day 55 | Arrived Tashkent, GRN created | - | Completed |
Total Cost: $20,762.50 (Invoice + Duties)
Cycle Time: 55 days
Example 2: Large Shipment - Multiple Containers
Scenario Details
- Vendor: Mirha Exports Private Limited
- Products: Multiple meat cuts (4 types)
- Total Quantity: 25,000 kg
- Total Value: $94,375
- Containers: 3 x 40ft
- Container Numbers: TRIU1111111, TRIU2222222, TRIU3333333
Product Breakdown
| Product Code | Description | Quantity (kg) | Rate ($/kg) | Total |
|---|---|---|---|---|
| MEAT-31 | Buffalo Shank | 3,000 | $3.775 | $11,325 |
| MEAT-46 | Buffalo Silverside | 5,000 | $3.775 | $18,875 |
| MEAT-41 | Buffalo Topside | 10,000 | $3.775 | $37,750 |
| MEAT-44 | Buffalo Striploin | 7,000 | $3.775 | $26,425 |
| Total | $94,375 | |||
Multi-Container Timeline
| Day | Event | Container(s) | Amount |
|---|---|---|---|
| Day 0 | PI created, 30% advance paid | - | $28,312.50 (30%) |
| Day 35 | First container arrives Iran | TRIU1111111 (MEAT-31: 3,000kg, MEAT-46: 2,000kg) |
- |
| Day 38 | Second container arrives Iran | TRIU2222222 (MEAT-46: 3,000kg, MEAT-41: 5,000kg) |
- |
| Day 40 | Third container arrives Iran 70% payment made |
TRIU3333333 (MEAT-41: 5,000kg, MEAT-44: 7,000kg) |
$66,062.50 (70%) |
| Day 45-50 | All containers cleared customs | All 3 containers | $9,437.50 (duties) |
| Day 55-60 | All containers transferred to Tashkent | All 3 containers | - |
Key Tracking Points:
- All 3 containers linked to same PI (PI-2025-002)
- Each container tracked separately with individual arrival dates
- 70% payment made after all containers confirmed arrived
- Total cost: $103,812.50 (Invoice + Duties)
Example 3: Consolidated Container - Multiple PIs
Scenario: Mixed Container from Different Suppliers
Situation: Consolidating smaller orders to optimize shipping costs
Container TRIU999 Contents:
| PI Reference | Vendor | Product | Quantity |
|---|---|---|---|
| PI-2025-001 | HMA AGRO | MEAT-41 Topside | 2,000 kg |
| PI-2025-003 | Mirha Exports | MEAT-46 Silverside | 1,500 kg |
| PI-2025-005 | Al Noor Meats | MEAT-44 Striploin | 1,000 kg |
Tracking Approach:
- Create separate CI for each PI portion in the container
- Link all CIs to the same container number (TRIU999)
- Add notes detailing the mixed container composition
- Track container as a whole but maintain separate PI payments
Key Performance Indicators & Tracking
Timeline Performance KPIs
| KPI | Target | Measurement |
|---|---|---|
| PI to Invoice | ≤ 30 days | Days between PI confirmation and CI issue |
| Invoice to Shipment | ≤ 7 days | Days between invoice and vessel departure |
| Transit Time | 20-30 days | Days from departure to arrival at Iran |
| Customs Clearance | ≤ 5 days | Days from arrival to customs release |
| Goods Receipt | ≤ 2 days | Days from release to GRN creation |
| Final Payment | ≤ 15 days | Days from GRN approval to payment |
| Total Cycle Time | 60-90 days | PI confirmation to completion |
Financial Performance KPIs
Payment Compliance
Advance Rate: 30% target
On-Time Payment: >95%
Payment Delays: <5%
Cost Management
Customs Duty %: Monitor variance
Freight Cost %: Track vs budget
FX Impact: Minimize losses
Working Capital
Days Payable: Track average
Cash Tied Up: Minimize duration
Advance Recovery: Monitor timing
Quality & Operational KPIs
| KPI | Target | Purpose |
|---|---|---|
| GRN Acceptance Rate | >98% | Quality of received goods |
| Quantity Variance | <2% | Invoice vs actual received |
| Quality Pass Rate | >99% | Inspection approval rate |
| Temperature Compliance | 100% | Cold chain integrity |
| Document Submission | 100% on-time | Customs clearance efficiency |
| Customs Delays | <5% | Clearance processing time |
| Container Damage Rate | <1% | Logistics quality |
Vendor Performance Tracking
Vendor Scorecard Metrics
- On-Time Delivery: % of shipments departing on scheduled date
- Quantity Accuracy: % variance between PI and actual shipped
- Quality Compliance: % of shipments passing quality inspection
- Documentation: Completeness and accuracy of shipping documents
- Communication: Responsiveness and proactive updates
- Price Stability: Adherence to quoted prices
Sales & Distribution Management
Sales Order Workflow
From Inventory to Customer Delivery
Purpose: After goods are received and stored at Main/Bektemir warehouses, they are sold to local customers in Uzbekistan.
Sales Order Creation Process
- Customer Inquiry: Customer requests specific items and quantities
- Stock Availability Check: System checks available inventory by Item Code + Location (Main/Bektemir)
- Price Quotation: Convert landed cost (USD) →UZS + markup percentage
- Sales Order (SO) Creation: Create SO with customer details, items, quantities, prices in UZS
- Stock Reservation: Reserve stock from available inventory to prevent double-selling
- Delivery Note Generation: Create delivery note for warehouse picking
- Goods Issue: Warehouse picks and loads items for delivery
- Customer Invoice Generation: Create customer invoice in UZS
- Delivery Confirmation: Customer signs delivery note
- Payment Collection: Cash/Bank transfer/Credit terms
- Inventory Update: Reduce stock levels by Item Code + Location
Sales Pricing Model
| Cost Component | Calculation | Example (Item 41 - Topside) |
|---|---|---|
| FOB Cost (India) | From CI (USD) | $3.95/kg |
| Shipping Cost | Total shipping ÷ total kg | $0.35/kg |
| Customs & Duties | Import duty + VAT | $0.25/kg |
| Local Charges (Iran) | Port charges, clearance, etc. | $0.15/kg |
| Trucking (Iran→UZB) | Road transport cost | $0.30/kg |
| Total Landed Cost (USD) | Sum of all costs | $5.00/kg |
| Convert to UZS | USD × Exchange Rate | $5.00 × 12,800 = 64,000 UZS/kg |
| Add Markup (25%) | Landed Cost × 1.25 | 64,000 × 1.25 = 80,000 UZS/kg |
| Final Sales Price (UZS) | To Customer | 80,000 UZS/kg |
Customer Types & Payment Terms
Cash Customers (Walk-in)
- Payment: 100% cash or bank transfer before delivery
- Pricing: Standard retail price (higher markup: 30-35%)
- Minimum Order: No minimum (can buy 10 kg)
- Delivery: Same day pickup from warehouse
Credit Customers (Wholesale/HORECA)
- Payment: 7-30 days credit terms
- Pricing: Wholesale price (lower markup: 20-25%)
- Minimum Order: 500 kg minimum
- Delivery: Free delivery for orders >1,000 kg
Database Schema - Sales Module
Tables Required:
Customer Table:
• Customer ID (primary key)
• Customer Name
• Customer Type (Cash/Credit/Wholesale/HORECA)
• Contact Person, Phone, Address
• Credit Limit (UZS)
• Payment Terms (days)
• Current Balance (UZS)
Sales Order Table:
• SO Number (primary key) - e.g., SO-2025-001
• Customer ID (foreign key)
• SO Date
• Delivery Date
• Warehouse Location (Main/Bektemir)
• Total Amount (UZS)
• Status (Draft/Confirmed/Picking/Delivered/Invoiced)
• Payment Status (Pending/Partial/Paid)
Sales Order Item Table:
• SO Item ID (primary key)
• SO Number (foreign key)
• Item Code
• Item Name
• Quantity (kg)
• Unit Price (UZS/kg)
• Total Amount (UZS)
• Reserved Inventory ID (link to stock reservation)
Delivery Note Table:
• DN Number (primary key) - e.g., DN-2025-001
• SO Number (foreign key)
• Delivery Date/Time
• Vehicle Number
• Driver Name
• Customer Signature (image/digital)
• Delivered Quantity vs Ordered Quantity
Customer Invoice Table:
• Invoice Number (primary key) - e.g., INV-2025-001
• SO Number (foreign key)
• DN Number (foreign key)
• Invoice Date
• Due Date (invoice date + payment terms)
• Total Amount (UZS including VAT)
• Payment Status
• Payment Received Date
Stock Reservation Table:
• Reservation ID (primary key)
• SO Number (foreign key)
• Item Code
• Warehouse Location
• Reserved Quantity (kg)
• Reservation Date
• Status (Reserved/Released/Delivered)
📋 Claims & Disputes Management
⚠️ When Claims Are Needed
Claims and disputes arise when there are discrepancies between what was ordered/paid for versus what was received. These must be documented and resolved to protect MSA's financial interests.
Common Claim Scenarios
Quantity Discrepancies
- Short Shipment: Received less than invoiced (most common)
- Over Shipment: Received more than ordered (rare but must document)
- Missing Boxes: Cartons listed on packing list but not in container
- Weight Variance: Actual weight differs from CI weight
Example: CI shows 896 boxes × 40 kg = 35,840 kg, but GRN shows only 840 boxes received = 33,600 kg shortage of 2,240 kg
Quality Issues
- Temperature Abuse: Product not maintained at -18°C to -22°C
- Packaging Damage: Torn vacuum seals, damaged boxes
- Product Quality: Off-color, odor, or texture issues
- Freezer Burn: Improper storage during transit
- Contamination: Foreign materials or cross-contamination
Example: Container temperature logger shows +2°C for 6 hours during transit - entire shipment may be compromised
Documentation Issues
- Missing Certificates: Halal cert, health cert, or COO missing
- Incorrect Information: Wrong HS codes, product descriptions
- Expired Documents: Certificates past validity date
- BL Discrepancies: BL numbers don't match shipping docs
Pricing & Payment Disputes
- Price Variance: CI price differs from PI agreed price
- Incorrect Totals: Mathematical errors in invoicing
- Currency Issues: Wrong exchange rate applied
- Hidden Charges: Unexpected fees not in original quote
Claims Workflow Process
Step-by-Step Claims Resolution Process
-
🔍 Detection & Documentation (Day 0):
- Warehouse manager identifies discrepancy during GRN process
- Complete GRN Verification Checklist with detailed notes
- Take photos/videos of issues (missing items, damaged packaging, temperature readings)
- Get signatures from driver and warehouse team
- CRITICAL: Do NOT accept delivery until documentation complete
-
📝 Claim Preparation (Day 0-1):
- Create Claim Form with all details (see template below)
- Attach supporting documents: GRN, photos, temperature logs, packing list
- Calculate financial impact (quantity × unit price)
- Categorize claim severity (Minor/Major/Critical)
- Assign claim number: CLM-YYYY-XXX (e.g., CLM-2025-001)
-
📧 Vendor Notification (Day 1-2):
- Email claim to vendor within 48 hours of discovery
- CC: Procurement Manager, Finance Team
- Request vendor acknowledgment within 24 hours
- Provide all supporting documentation
- State expected resolution (refund, credit note, replacement)
-
🤝 Negotiation (Day 3-10):
- Vendor reviews claim and provides response
- Discussion on resolution options (see Resolution Options below)
- Agree on settlement amount/terms
- Document agreed resolution in writing
-
✅ Resolution Implementation (Day 11-30):
- Execute agreed resolution (credit note, refund, replacement shipment)
- Update financial records (reduce payable if credit note)
- Update inventory if replacement received
- Close claim in system with final status
-
📊 Post-Claim Analysis (Monthly):
- Track claim trends by vendor
- Identify recurring issues
- Update vendor performance scorecard
- Consider vendor replacement if chronic issues
Claim Form Template
═══════════════════════════════════════════════════════════ 📋 CLAIM FORM - MSA MEAT TRADING ═══════════════════════════════════════════════════════════ Claim Number: CLM-2025-001 Claim Date: 25.05.2025 Claim Type: ☑ Quantity Shortage ☐ Quality Issue ☐ Documentation ☐ Pricing Severity: ☐ Minor (<$2,000) ☐ Major ($2,000-$10,000) ☑ Critical (>$10,000) ─────────────────────────────────────────────────────────── SHIPMENT DETAILS: ─────────────────────────────────────────────────────────── PI Number: HMA/PI/2677/202425 CI Number: MH/104/202526 (Dated: 21.04.2025) Container Number: MSCU1234567 BL Number: BLIND2025041001 Vessel Name: MSC MEDITERRANEAN Arrival Date at Bandar Abbas: 10.05.2025 Truck Number: UZ-TRK-001 GRN Number: GRN-2025-001 GRN Date: 25.05.2025 Vendor Details: Company Name: HMA AGRO INDUSTRIES LIMITED Vendor ID: VND-HMA-001 Contact Person: Mr. Rajesh Kumar Email: rajesh@hmaagro.com Phone: +91-22-XXXX-XXXX ─────────────────────────────────────────────────────────── CLAIM DETAILS: ─────────────────────────────────────────────────────────── Affected Item: Item Code 44 - SILVER SIDE (HQ CUTS) Category: BUFFALO COMPENSATED Expected Quantity: • CI Quantity: 896 boxes × 40.00 kg/box = 35,840.00 kg • Unit Price: $3.95/kg FOB • Expected Value: $141,568.00 Actual Received Quantity: • GRN Quantity: 840 boxes × 40.00 kg/box = 33,600.00 kg • Actual Value: $132,720.00 Discrepancy: • Shortage: 56 boxes / 2,240 kg (-6.25%) • Financial Impact: $8,848.00 ─────────────────────────────────────────────────────────── EVIDENCE ATTACHED: ─────────────────────────────────────────────────────────── ☑ GRN Document (GRN-2025-001) ☑ Commercial Invoice (MH/104/202526) ☑ Packing List ☑ Photos of received boxes (IMG_20250525_143512.jpg) ☑ Weight scale readings (IMG_20250525_143628.jpg) ☑ Delivery note with driver signature ☑ Warehouse manager statement ─────────────────────────────────────────────────────────── REQUESTED RESOLUTION: ─────────────────────────────────────────────────────────── ☑ Credit Note for shortage value: $8,848.00 ☐ Replacement shipment ☐ Partial refund ☐ Discount on next order Justification: The shortage of 2,240 kg represents a significant financial loss of $8,848. This exceeds our acceptable variance threshold of ±2%. We request a credit note to be applied against the 70% payment due for this shipment, reducing our payable from $141,568 to $132,720. ─────────────────────────────────────────────────────────── PREPARED BY: ─────────────────────────────────────────────────────────── Name: Alisher Karimov Position: Warehouse Manager - Main Cold Storage Signature: _______________________ Date: 25.05.2025 APPROVED BY: Name: [Procurement Manager Name] Position: Procurement Manager Signature: _______________________ Date: 26.05.2025 ═══════════════════════════════════════════════════════════ FOR VENDOR USE: ─────────────────────────────────────────────────────────── Acknowledgment Date: ______________ Vendor Response: ☐ Accepted ☐ Partially Accepted ☐ Rejected Proposed Resolution: _______________________________________ Expected Completion: ______________ ═══════════════════════════════════════════════════════════
Resolution Options
| Resolution Type | How It Works | Financial Impact | When to Use |
|---|---|---|---|
| Credit Note | Vendor issues credit note reducing amount payable. Most common solution for quantity shortages. | Reduces 70% payment due by claim amount | Quantity shortages, minor quality issues |
| Replacement Shipment | Vendor ships missing quantity in next container at no additional cost | No immediate refund, receive goods later | Large shortages where you need the product |
| Cash Refund | Vendor refunds already paid amount (applicable to 30% advance) | Direct cash return | Major quality issues, rejected shipments |
| Discount on Next Order | Apply claim value as discount on future PI | Future savings | Minor claims, maintain good vendor relations |
| Price Adjustment | Reduce unit price for entire shipment to compensate | Lowers total invoice value | Quality grade issues (e.g., HQ sold as IQ grade) |
| Full Rejection | Refuse entire shipment, demand full refund including shipping | 100% refund + shipping costs | Critical quality failures, health/safety issues |
Claims Tracking System
Database Schema - Claims Module
Claim Table:
• Claim ID (primary key) - CLM-YYYY-XXX
• Claim Date
• PI Number (foreign key)
• CI Number (foreign key)
• Container Number (foreign key)
• Truck Number (foreign key)
• GRN Number (foreign key)
• Vendor ID (foreign key)
• Claim Type (Quantity/Quality/Documentation/Pricing)
• Severity (Minor/Major/Critical)
• Status (Draft/Submitted/Acknowledged/Under Review/Resolved/Rejected/Closed)
• Total Claim Amount (USD)
• Currency
• Requested Resolution Type
• Actual Resolution Type
• Resolution Date
• Resolution Amount
• Created By (User ID)
• Approved By (User ID)
Claim Item Table:
• Claim Item ID (primary key)
• Claim ID (foreign key)
• Item Code
• Expected Quantity
• Received Quantity
• Variance Quantity
• Unit Price
• Claim Amount
• Issue Description
Claim Attachment Table:
• Attachment ID (primary key)
• Claim ID (foreign key)
• File Name
• File Type (Photo/PDF/Excel)
• File Path
• Upload Date
• Uploaded By
Claim Communication Log:
• Log ID (primary key)
• Claim ID (foreign key)
• Communication Date
• Communication Type (Email/Phone/Meeting)
• From (MSA user/Vendor contact)
• To
• Subject
• Message/Notes
• Attachments
Claim Severity Matrix
| Severity Level | Financial Impact | Response Time | Approval Required | Escalation Path |
|---|---|---|---|---|
| Minor | < $2,000 | Vendor response: 5 days Resolution: 15 days |
Warehouse Manager | Procurement Manager (if not resolved in 15 days) |
| Major | $2,000 - $10,000 | Vendor response: 3 days Resolution: 10 days |
Procurement Manager | Finance Manager + General Manager (if not resolved in 10 days) |
| Critical | > $10,000 | Vendor response: 24 hours Resolution: 7 days |
General Manager + Finance Manager | Legal action if not resolved in 30 days |
Vendor Performance Impact
Claims History Tracking
All claims are tracked against vendor performance scorecards:
- Claims Rate: Number of claims per shipment
- Claims Value: Total USD value of claims vs total purchases
- Resolution Rate: % of claims resolved favorably
- Response Time: Average time to acknowledge and respond
- Recurring Issues: Same problems across multiple shipments
Vendor Warning Thresholds:
- 🟡 Yellow Flag: 3 claims in 6 months OR claims value > 2% of purchases
- 🟠 Orange Flag: 5 claims in 6 months OR claims value > 5% of purchases
- 🔴 Red Flag: 8+ claims in 6 months OR claims value > 10% of purchases → Consider vendor replacement
Real-World Example: Resolved Claim
Case Study: CLM-2025-001
| Claim Date: | 25.05.2025 |
| Vendor: | HMA AGRO INDUSTRIES LIMITED |
| Issue: | Shortage of 2,240 kg of Item 44 (SILVER SIDE) |
| Claim Amount: | $8,848.00 |
| Timeline: |
• 25.05.2025: Claim submitted with GRN evidence • 26.05.2025: Vendor acknowledged (within 24 hours) • 27.05.2025: Vendor investigation confirmed shortage • 28.05.2025: Vendor proposed credit note for $8,848 • 29.05.2025: MSA accepted credit note • 30.05.2025: Credit note CN-HMA-2025-001 issued • 31.05.2025: Claim closed as RESOLVED |
| Resolution: | Credit note applied against 70% payment due. Original payable: $141,568 → Adjusted payable: $132,720 |
| Outcome: | ✅ Resolved in 6 days (within Major claim threshold of 10 days) |
↩️ Returns & Rejections Management
🚨 When Returns/Rejections Are Required
Returns and rejections occur when received goods are so defective or non-conforming that they cannot be accepted into inventory. Unlike claims (where goods are accepted with compensation), returns involve physically sending product back to vendor or rejecting delivery entirely.
Return vs Rejection: Key Differences
📦 RETURN (Post-Acceptance)
Definition: Goods were initially accepted (GRN created) but later found defective during storage or sale preparation
Timeline: Discovered after GRN, within warranty period (typically 30 days)
Process:
- Create Return Authorization (RA)
- Reverse GRN entry in system
- Pack and ship back to vendor
- Deduct from vendor payment or request refund
Examples:
- Freezer burn discovered after unpacking
- Product thaws during storage (cold chain failure)
- Customer complaints about quality after purchase
- Lab test results show contamination
🚫 REJECTION (At Delivery)
Definition: Goods refused at point of delivery, never accepted into inventory
Timeline: Discovered immediately during GRN verification process
Process:
- Document issues during GRN
- Do NOT create GRN or accept delivery
- Driver takes goods back immediately
- Formal rejection notice sent to vendor
Examples:
- Temperature above +5°C upon arrival
- Visible signs of thawing/refreezing
- Foul odor indicating spoilage
- Missing halal certification documents
- Wrong product delivered
Rejection Criteria (Critical Issues)
🔴 Automatic Rejection Triggers - DO NOT ACCEPT DELIVERY
| Issue Type | Rejection Criteria | Action Required |
|---|---|---|
| Temperature Abuse |
• Product temp > -10°C • Signs of thawing/refreezing • Ice crystals melted |
REJECT ENTIRE TRUCK Do not unload |
| Quality Defects |
• Foul or off-odor detected • Discoloration (green/brown) • Visible mold or slime |
REJECT AFFECTED ITEMS Photograph evidence |
| Packaging Failure |
• >25% boxes damaged/torn • Exposed product (no vacuum seal) • Water damage to cartons |
REJECT DAMAGED ITEMS Accept only undamaged |
| Documentation Issues |
• No Halal certificate • Expired health certificate • Missing COO certificate |
HOLD DELIVERY Contact vendor immediately |
| Contamination |
• Foreign objects visible • Cross-contamination signs • Pest infestation evidence |
REJECT ENTIRE SHIPMENT Report to authorities |
| Wrong Product |
• Different item than ordered • Wrong category/grade • Mislabeled products |
REJECT WRONG ITEMS Create discrepancy report |
Rejection Process Workflow
Step-by-Step Rejection Process (At Delivery)
-
🔍 Immediate Assessment (Minutes 1-15):
- Warehouse manager performs initial inspection
- Check temperature logger readings immediately
- Visually inspect packaging condition
- Verify documents (Halal cert, health cert, COO)
- Random sample check of product quality
-
🚨 Rejection Decision (Minutes 15-30):
- If critical issue found → STOP unloading immediately
- Call Procurement Manager for authorization
- Inform truck driver of rejection reason
- Begin documentation process
-
📸 Evidence Collection (Minutes 30-60):
- Take photos/videos of defects (minimum 10 photos from different angles)
- Record temperature readings with timestamp
- Photograph temperature logger data
- Get driver acknowledgment of condition
- Witness signatures from 2+ warehouse staff
-
📝 Rejection Notice Creation (Hour 1-2):
- Create Rejection Notice (RN-YYYY-XXX)
- Document all issues in detail
- Attach all photos and evidence
- Driver signs rejection notice
- Provide copy to driver
-
📧 Vendor Notification (Within 2 Hours):
- Email rejection notice to vendor
- CC: Procurement Manager, Finance, Quality Control
- State reason for rejection clearly
- Request immediate response on next steps
- Confirm if vendor will arrange return pickup
-
💰 Financial Action (Within 24 Hours):
- Finance team holds 70% payment
- If 30% advance paid → demand immediate refund
- Calculate additional costs (inspection, storage if applicable)
- Update accounts payable records
-
🔄 Resolution (Days 1-7):
- Vendor arranges replacement shipment OR full refund
- No payment released until resolution complete
- Update vendor performance scorecard (major negative impact)
- Close rejection case in system
Return Process Workflow
Step-by-Step Return Process (Post-Acceptance)
-
🔍 Issue Discovery (Day 0):
- Quality issue found during storage or pre-sale prep
- Document issue with photos and detailed notes
- Quarantine affected product immediately
- Check if within return policy window (30 days from GRN)
-
📋 Return Authorization Request (Day 0-1):
- Create Return Authorization Request (RA-REQ-YYYY-XXX)
- Include: GRN number, item code, quantity, reason
- Attach evidence (photos, lab reports if applicable)
- Submit to Procurement Manager for approval
-
✅ Vendor Approval (Day 1-3):
- Forward RA request to vendor
- Vendor reviews and issues Return Authorization (RA) number
- Vendor provides return shipping instructions
- Agree on refund/replacement terms
-
📦 Return Preparation (Day 3-5):
- Re-pack product in original or similar packaging
- Label boxes with RA number
- Prepare return packing list
- Arrange shipping (vendor-paid or MSA-paid as agreed)
-
🚚 Shipment & Tracking (Day 5-7):
- Ship product back to vendor address
- Provide tracking number to vendor
- Keep copies of all shipping documents
- Monitor delivery confirmation
-
💰 Financial Resolution (Day 7-30):
- Vendor confirms receipt of returned goods
- Vendor issues credit note OR sends replacement
- MSA Finance updates accounts payable
- If replacement: Create new GRN upon receipt
- Close return case in system
-
📊 Inventory Adjustment (Throughout):
- Create "Goods Return Note" (GRN reversal)
- Reduce inventory by returned quantity
- Update stock levels in system
- Mark GRN as "Partially Returned" or "Fully Returned"
Rejection Notice Template
═══════════════════════════════════════════════════════════ 🚫 REJECTION NOTICE - MSA MEAT TRADING ═══════════════════════════════════════════════════════════ Rejection Notice Number: RN-2025-001 Rejection Date/Time: 28.05.2025 10:45 AM Rejection Type: ☑ Full Shipment ☐ Partial Shipment ─────────────────────────────────────────────────────────── SHIPMENT DETAILS: ─────────────────────────────────────────────────────────── PI Number: SFA/PI/2688/202425 CI Number: SF/118/202526 (Dated: 05.05.2025) Container Number: TGBU8901245 BL Number: BLIND2025050501 Truck Number: UZ-TRK-015 Expected GRN Number: Would be GRN-2025-015 (NOT CREATED) Vendor Details: Company Name: SUPER FROZEN FOODS PVT LTD Vendor ID: VND-SFF-002 Contact Person: Mr. Amit Sharma Email: amit@superfrozenfoods.in Phone: +91-11-XXXX-XXXX Driver Details: Driver Name: Karimjon Tursunov Driver Phone: +998-90-XXX-XXXX Arrival Time: 28.05.2025 10:15 AM ─────────────────────────────────────────────────────────── REJECTION REASON(S): ─────────────────────────────────────────────────────────── ☑ CRITICAL: TEMPERATURE ABUSE Temperature Logger Readings: • Expected Range: -18°C to -22°C • Actual Reading at Arrival: +1.5°C • Temperature Logger Data: - Last 24 hours: Average +3°C - Breach Duration: Approximately 18 hours - Breach Severity: CRITICAL - Product thawed completely Visual Inspection Findings: ☑ Ice crystals melted - significant water pooling in boxes ☑ Vacuum seals expanded (gas buildup indicating spoilage) ☑ Product soft to touch (not frozen solid) ☑ Off-odor detected when sampling box opened ☐ Packaging damage ☐ Product discoloration Product Condition Assessment: ALL ITEMS IN TRUCK AFFECTED - Complete cold chain failure. Product has been above safe temperature for extended period. Signs of bacterial growth (odor, gas buildup). Product is UNSAFE FOR HUMAN CONSUMPTION. ─────────────────────────────────────────────────────────── AFFECTED ITEMS (Not Accepted): ─────────────────────────────────────────────────────────── Item 41 - TOPSIDE: 320 boxes × 40 kg = 12,800 kg Item 42 - SHANK: 240 boxes × 40 kg = 9,600 kg Item 48 - TENDERLOIN: 160 boxes × 20 kg = 3,200 kg Total Rejected: 720 boxes / 25,600 kg Total Value Rejected: $102,400 (USD) ─────────────────────────────────────────────────────────── EVIDENCE ATTACHED: ─────────────────────────────────────────────────────────── ☑ Temperature logger printout (showing 18-hour breach) ☑ Photos of water pooling in boxes (IMG_20250528_104512.jpg) ☑ Photos of expanded vacuum seals (IMG_20250528_104628.jpg) ☑ Video of product condition inspection (VID_20250528_104745.mp4) ☑ Photos of soft/thawed product (IMG_20250528_105001.jpg) ☑ Truck exterior photos showing seal numbers (IMG_20250528_103800.jpg) ─────────────────────────────────────────────────────────── ACTIONS TAKEN: ─────────────────────────────────────────────────────────── ☑ Unloading stopped immediately upon temperature check ☑ Procurement Manager notified (10:30 AM) ☑ Driver informed of rejection reason ☑ All evidence documented with photos/video ☑ Product remained on truck - NOT ACCEPTED into warehouse ☑ Driver departed with full shipment (11:30 AM) ─────────────────────────────────────────────────────────── REQUIRED VENDOR ACTION: ─────────────────────────────────────────────────────────── ☑ Immediate replacement shipment with verified cold chain ☐ Full refund of 30% advance payment ($30,720) ☐ Credit note for entire shipment value Deadline for Response: 29.05.2025 (24 hours) Financial Impact: This shipment represents $102,400 in rejected goods. MSA has paid 30% advance ($30,720). We expect either immediate replacement with verified temperature controls OR full refund of advance payment within 7 days. ─────────────────────────────────────────────────────────── WAREHOUSE TEAM SIGNATURES: ─────────────────────────────────────────────────────────── Warehouse Manager: Alisher Karimov Signature: ____________ QC Inspector: Sardor Umarov Signature: ____________ Witness 1: Jamshid Rahimov Signature: ____________ Witness 2: Dilshod Azimov Signature: ____________ ─────────────────────────────────────────────────────────── DRIVER ACKNOWLEDGMENT: ─────────────────────────────────────────────────────────── I acknowledge that I have been informed of the rejection reason and that the shipment is being returned to the vendor due to temperature abuse. I confirm the condition described above is accurate. Driver Signature: ___________________ Date: 28.05.2025 Driver Name (Print): Karimjon Tursunov ═══════════════════════════════════════════════════════════ DISTRIBUTION: Original: Vendor (SUPER FROZEN FOODS PVT LTD) Copy 1: MSA Procurement Manager Copy 2: MSA Finance Department Copy 3: MSA Quality Control Copy 4: Truck Driver ═══════════════════════════════════════════════════════════
Return Authorization Template
═══════════════════════════════════════════════════════════
↩️ RETURN AUTHORIZATION REQUEST - MSA MEAT TRADING
═══════════════════════════════════════════════════════════
RA Request Number: RA-REQ-2025-003
Request Date: 10.06.2025
GRN Reference: GRN-2025-008 (Dated: 28.05.2025)
───────────────────────────────────────────────────────────
ORIGINAL SHIPMENT DETAILS:
───────────────────────────────────────────────────────────
PI Number: HMA/PI/2681/202425
CI Number: MH/108/202526
Container: MSCU1234578
GRN Date: 28.05.2025 (Accepted 13 days ago)
Vendor: HMA AGRO INDUSTRIES LIMITED
───────────────────────────────────────────────────────────
ITEMS TO BE RETURNED:
───────────────────────────────────────────────────────────
Item Code 46 - FOREQUARTER (4-CUT)
• Accepted Quantity: 480 boxes × 40 kg = 19,200 kg
• Return Quantity: 180 boxes × 40 kg = 7,200 kg
• Unit Price: $3.75/kg
• Return Value: $27,000
───────────────────────────────────────────────────────────
RETURN REASON:
───────────────────────────────────────────────────────────
Issue Type: ☑ Quality Defect ☐ Wrong Product ☐ Damage
Detailed Description:
During preparation for sale to customers, warehouse staff
discovered FREEZER BURN on approximately 180 boxes of Item 46.
The freezer burn was not visible during initial GRN inspection
as it was internal. Upon thawing samples for portioning, the
following issues were observed:
• Severe ice crystal formation inside vacuum packs
• Dry, discolored patches on meat surface (grayish-brown)
• Loss of moisture content
• Product quality degraded - not saleable to customers
Root Cause Analysis:
Temperature fluctuation during ocean transit (before arrival
at MSA). Issue not detectable during frozen state inspection.
Only became apparent when product was prepared for sale.
───────────────────────────────────────────────────────────
EVIDENCE:
───────────────────────────────────────────────────────────
☑ Photos of freezer burn (12 images attached)
☑ Sample thaw test results
☑ Customer complaint records (3 customers reported issue)
☑ Original GRN document
☑ Storage temperature logs (proving MSA cold chain maintained)
───────────────────────────────────────────────────────────
REQUESTED RESOLUTION:
───────────────────────────────────────────────────────────
☑ Replacement shipment (same quantity, same item)
☐ Credit note for return value ($27,000)
☐ Partial refund
Justification:
We need this product for existing customer commitments. We
prefer replacement shipment of 180 boxes of Item 46 in next
container. Return shipping costs to be borne by vendor as
issue originated during vendor's shipping phase.
───────────────────────────────────────────────────────────
PREPARED BY:
───────────────────────────────────────────────────────────
Name: Bekzod Yuldashev
Position: Quality Control Manager
Date: 10.06.2025
───────────────────────────────────────────────────────────
APPROVED BY (MSA):
───────────────────────────────────────────────────────────
Name: [Procurement Manager]
Signature: _______________ Date: __________
───────────────────────────────────────────────────────────
VENDOR AUTHORIZATION (To be completed by vendor):
───────────────────────────────────────────────────────────
☐ APPROVED - Return Authorized
☐ REJECTED - Return Not Authorized
☐ UNDER REVIEW - Need Additional Information
RA Number Issued: RA-HMA-2025-_______
Authorized By: ___________________
Return Shipping Instructions:
_______________________________________________________
_______________________________________________________
Resolution Agreed:
☐ Replacement shipment in Container# __________ (ETA: ______)
☐ Credit Note CN-________ (Amount: $________)
☐ Other: _______________________________________________
═══════════════════════════════════════════════════════════
Database Schema - Returns & Rejections
System Tables Required
Rejection Table:
• Rejection ID (primary key) - RN-YYYY-XXX
• Rejection Date/Time
• Rejection Type (Full Shipment/Partial)
• PI Number (foreign key)
• CI Number (foreign key)
• Expected GRN Number (never created)
• Container Number
• Truck Number
• Vendor ID (foreign key)
• Rejection Reason Category (Temperature/Quality/Documentation/Contamination/Wrong Product)
• Detailed Description (text)
• Total Quantity Rejected (kg)
• Total Value Rejected (USD)
• Temperature Reading (if applicable)
• Driver Name, Driver Phone
• Warehouse Manager (User ID)
• QC Inspector (User ID)
• Status (Draft/Submitted/Vendor Acknowledged/Resolved/Closed)
• Resolution Type (Replacement/Refund/Credit Note)
• Resolution Date
• Resolution Value
• Vendor Performance Impact Score (-10 points for rejection)
Rejection Item Table:
• Rejection Item ID (primary key)
• Rejection ID (foreign key)
• Item Code
• Item Description
• Quantity Rejected (boxes)
• Kg per Box
• Total Kg Rejected
• Unit Price (USD/kg)
• Item Value Rejected (USD)
• Specific Issue Notes
Rejection Attachment Table:
• Attachment ID (primary key)
• Rejection ID (foreign key)
• File Name
• File Type (Photo/Video/PDF/Temperature Log)
• File Path
• Upload Date/Time
• Uploaded By
Return Authorization Table:
• RA Request ID (primary key) - RA-REQ-YYYY-XXX
• RA Request Date
• GRN Number (foreign key) - original acceptance
• PI Number (foreign key)
• CI Number (foreign key)
• Vendor ID (foreign key)
• Return Reason Category (Quality Defect/Wrong Product/Damage/Other)
• Detailed Description
• Return Quantity (kg)
• Return Value (USD)
• Requested Resolution (Replacement/Credit/Refund)
• RA Request Status (Draft/Submitted/Vendor Reviewing/Approved/Rejected)
• RA Number Issued by Vendor
• Vendor Response Date
• Actual Resolution Type
• Created By (User ID)
• Approved By MSA (User ID)
Return Shipment Table:
• Return Shipment ID (primary key)
• RA Request ID (foreign key)
• Ship Date
• Carrier/Tracking Number
• Expected Delivery to Vendor
• Actual Delivery Date
• Vendor Confirmation Date
• Shipping Cost (who pays: Vendor/MSA)
• Status (Packed/Shipped/In Transit/Delivered/Confirmed)
Goods Return Note (GRN Reversal) Table:
• Return Note ID (primary key) - GRN-REV-YYYY-XXX
• Original GRN Number (foreign key)
• Return Date
• RA Request ID (foreign key)
• Item Code
• Returned Quantity (kg)
• Reason for Return
• Inventory Adjustment (deduct from stock)
• Financial Impact (reduce COGS, update payables)
• Created By (User ID)
Returns & Rejections Policy Summary
| Scenario | Action | Timeline | Financial Treatment |
|---|---|---|---|
| Critical Defect at Delivery (Temp abuse, spoilage, contamination) |
REJECT Do not accept, send back immediately |
Immediate rejection Vendor notified within 2 hours |
Hold 70% payment Demand 30% advance refund |
| Defect Found Post-GRN (Within 30 days) |
RETURN Request RA, ship back to vendor |
RA request within 7 days of discovery Resolution within 30 days |
Reverse GRN Credit note or replacement |
| Minor Variance (±2% weight, minor packaging issues) |
ACCEPT with CLAIM Create claim, not return |
Accept delivery File claim within 48 hours |
Accept inventory Request credit note adjustment |
| Wrong Product Delivered | REJECT Send back, order replacement |
Immediate rejection Replacement in next shipment |
No payment for wrong items Charge vendor for delays |
| Defect After 30 Days | NEGOTIATE Contact vendor, goodwill request |
No formal return right Vendor discretion |
Usually MSA absorbs loss Possible partial credit |
Vendor Impact Tracking
Performance Scorecard Impact
| Full Shipment Rejection: | -20 points (severe penalty) |
| Partial Rejection (>10% value): | -10 points (major penalty) |
| Return (Post-GRN): | -5 points (moderate penalty) |
Consequences:
- 📊 2 Rejections in 12 months: Vendor on probation
- ⚠️ 3 Rejections in 12 months: Vendor review meeting required
- 🚫 4+ Rejections in 12 months: Vendor replacement process initiated
- 💰 Temperature abuse rejection: Permanent disqualification from critical products
📦 Advanced Inventory Management
Enhanced Inventory Control Features
Beyond basic stock tracking, MSA needs sophisticated inventory management capabilities including stock aging analysis, inter-warehouse transfers, automated reorder point alerts, and batch/lot traceability to optimize frozen meat inventory and minimize waste.
1. Stock Aging Analysis (FIFO Management)
Why Stock Aging Matters for Frozen Meat
Even frozen meat has shelf life limitations (typically 12-18 months). Older stock must be sold first (FIFO - First In, First Out) to prevent quality degradation and financial losses.
Aging Categories & Actions
| Age Category | Age Range | Status Color | Action Required | Pricing Strategy |
|---|---|---|---|---|
| Fresh Stock | 0-3 months | 🟢 Green | No action - normal sales | Standard pricing (100%) |
| Normal Stock | 3-6 months | 🔵 Blue | Normal rotation | Standard pricing (100%) |
| Aging Stock | 6-9 months | 🟡 Yellow | Prioritize in sales Promote to customers |
Small discount (95-98%) |
| Old Stock | 9-12 months | 🟠 Orange | URGENT: Active promotion Bulk discount offers Weekly review |
Moderate discount (85-90%) |
| Critical Stock | 12-15 months | 🔴 Red | CRITICAL: Clearance sale Deep discounts Daily monitoring |
Heavy discount (70-80%) |
| Expired/Near Expiry | 15+ months | ⚫ Black | REJECT FOR SALE Quality inspection Disposal if unsafe |
Not for sale - write off |
Stock Aging Report Example
═══════════════════════════════════════════════════════════
📊 STOCK AGING REPORT - MSA MEAT TRADING
═══════════════════════════════════════════════════════════
Report Date: 15.06.2025
Warehouse: Main Cold Storage (Ravshan aka)
Generated By: Warehouse Manager
───────────────────────────────────────────────────────────
Item Code 41 - TOPSIDE
───────────────────────────────────────────────────────────
GRN-2025-001 | Received: 28.05.2025 (18 days old) | 5,538 kg | 🟢 Fresh
GRN-2025-008 | Received: 15.03.2025 (92 days old) | 12,400 kg | 🔵 Normal
GRN-2024-112 | Received: 20.10.2024 (238 days old) | 3,200 kg | 🟠 OLD
GRN-2024-089 | Received: 05.08.2024 (314 days old) | 1,800 kg | 🔴 CRITICAL
Total TOPSIDE Stock: 22,938 kg
Aging Breakdown:
• Fresh (0-3 mo): 5,538 kg (24%)
• Normal (3-6 mo): 12,400 kg (54%)
• Aging (6-9 mo): 0 kg (0%)
• Old (9-12 mo): 3,200 kg (14%)
• Critical (12-15 mo): 1,800 kg (8%)
⚠️ ACTION REQUIRED:
→ 1,800 kg CRITICAL stock needs immediate clearance (GRN-2024-089)
→ 3,200 kg OLD stock should be promoted actively (GRN-2024-112)
───────────────────────────────────────────────────────────
Item Code 44 - SILVER SIDE (HQ CUTS)
───────────────────────────────────────────────────────────
GRN-2025-010 | Received: 05.06.2025 (10 days old) | 16,800 kg | 🟢 Fresh
GRN-2025-003 | Received: 10.04.2025 (66 days old) | 8,500 kg | 🔵 Normal
GRN-2024-125 | Received: 15.12.2024 (182 days old) | 5,600 kg | 🟡 Aging
Total SILVER SIDE Stock: 30,900 kg
Aging Breakdown:
• Fresh (0-3 mo): 16,800 kg (54%)
• Normal (3-6 mo): 8,500 kg (28%)
• Aging (6-9 mo): 5,600 kg (18%)
✅ GOOD ROTATION - No critical or old stock
───────────────────────────────────────────────────────────
OVERALL WAREHOUSE SUMMARY:
───────────────────────────────────────────────────────────
Total Inventory Value: $485,600
• Fresh Stock: $245,800 (51%)
• Normal Stock: $168,400 (35%)
• Aging Stock: $42,100 (9%)
• Old Stock: $18,200 (4%)
• Critical Stock: $11,100 (2%)
🔴 CRITICAL ALERTS:
• 8,450 kg of stock is 12+ months old (CRITICAL)
• Estimated loss if discarded: $21,125
• Recommended: Immediate clearance sale at 70-75% pricing
═══════════════════════════════════════════════════════════
2. Inter-Warehouse Stock Transfers
Transfer Scenarios
- Demand Balancing: Main warehouse has excess, Bektemir running low
- Customer Proximity: Transfer stock closer to customer location for faster delivery
- Storage Optimization: Move aging stock to location with higher sales velocity
- Equipment Maintenance: Temporary relocation during freezer servicing
Stock Transfer Process
7-Step Transfer Workflow
-
Transfer Request Creation:
- Warehouse Manager initiates transfer request (STR-YYYY-XXX)
- Specify: From Location, To Location, Item Code, Quantity, Reason
- System checks stock availability at source location
-
Approval:
- Inventory Manager reviews and approves request
- Auto-approved if quantity < 500 kg
- Manual approval required if quantity > 500 kg
-
Picking (Source Warehouse):
- Warehouse staff picks specified quantity
- Verify batch numbers match GRN (FIFO principle)
- Pack items securely for transport
- Create Stock Transfer Note (STN-YYYY-XXX)
-
Transportation:
- Refrigerated vehicle assigned (maintain -18°C)
- Driver signs STN acknowledging receipt
- GPS tracking during transit
- Temperature monitoring throughout journey
-
Receiving (Destination Warehouse):
- Destination warehouse staff counts and inspects goods
- Verify quantity matches STN
- Check temperature and product condition
- Accept or reject transfer
-
System Inventory Adjustment:
- Deduct from source location inventory
- Add to destination location inventory
- Preserve GRN batch linkage for traceability
- Update stock aging based on original GRN date (not transfer date)
-
Documentation & Reporting:
- Both warehouse managers sign transfer completion
- File STN with supporting documents
- Update transfer log for audit trail
- Close transfer request in system
Stock Transfer Note Template
═══════════════════════════════════════════════════════════
📦 STOCK TRANSFER NOTE - MSA MEAT TRADING
═══════════════════════════════════════════════════════════
Transfer Number: STN-2025-015
Transfer Date: 18.06.2025
Transfer Request Ref: STR-2025-015
───────────────────────────────────────────────────────────
TRANSFER DETAILS:
───────────────────────────────────────────────────────────
From Location: Main Cold Storage (Ravshan aka)
To Location: Bektemir Cold Storage
Reason: Bektemir has higher demand for TOPSIDE, Main has excess stock
Distance: 12 km
Vehicle Number: UZ-VAN-003 (Refrigerated)
Driver Name: Rustam Saidov
Departure Time: 09:15 AM
Arrival Time: 09:45 AM
Transit Duration: 30 minutes
───────────────────────────────────────────────────────────
ITEMS TRANSFERRED:
───────────────────────────────────────────────────────────
Item Code 41 - TOPSIDE
• Quantity: 80 boxes × 40 kg = 3,200 kg
• Source GRN: GRN-2024-112 (Received: 20.10.2024)
• Stock Age: 238 days (OLD - 🟠 Orange)
• Batch Number: B-HMA-20241020-41
• Unit Value: $3.85/kg
• Total Value: $12,320
Item Code 42 - SHANK
• Quantity: 45 boxes × 40 kg = 1,800 kg
• Source GRN: GRN-2025-003 (Received: 10.04.2025)
• Stock Age: 69 days (NORMAL - 🔵 Blue)
• Batch Number: B-HMA-20250410-42
• Unit Value: $3.55/kg
• Total Value: $6,390
TOTAL TRANSFER: 125 boxes / 5,000 kg / $18,710
───────────────────────────────────────────────────────────
TEMPERATURE MONITORING:
───────────────────────────────────────────────────────────
• Temperature at Loading: -19.5°C ✅
• Temperature During Transit: -18.8°C ✅
• Temperature at Unloading: -19.2°C ✅
• Cold Chain Status: MAINTAINED
───────────────────────────────────────────────────────────
SOURCE WAREHOUSE (Main - Ravshan aka):
───────────────────────────────────────────────────────────
Prepared By: Alisher Karimov (Warehouse Manager)
Signature: ____________ Date/Time: 18.06.2025 09:10 AM
Picked By: Jamshid Rahimov
Signature: ____________ Date/Time: 18.06.2025 09:05 AM
───────────────────────────────────────────────────────────
DRIVER ACKNOWLEDGMENT:
───────────────────────────────────────────────────────────
I acknowledge receipt of 125 boxes (5,000 kg) for transfer to
Bektemir Cold Storage. All items loaded in good condition.
Driver Signature: ____________ Time: 09:15 AM
───────────────────────────────────────────────────────────
DESTINATION WAREHOUSE (Bektemir):
───────────────────────────────────────────────────────────
Received By: Bobur Azimov (Warehouse Supervisor)
Counted Quantity: 125 boxes / 5,000 kg ✅ CORRECT
Condition Check: All items in good condition ✅
Discrepancies: NONE
Signature: ____________ Date/Time: 18.06.2025 09:50 AM
═══════════════════════════════════════════════════════════
SYSTEM INVENTORY UPDATE:
───────────────────────────────────────────────────────────
Main Cold Storage:
→ Item 41 (TOPSIDE): -3,200 kg
→ Item 42 (SHANK): -1,800 kg
Bektemir Cold Storage:
→ Item 41 (TOPSIDE): +3,200 kg (Age: 238 days - 🟠 OLD)
→ Item 42 (SHANK): +1,800 kg (Age: 69 days - 🔵 NORMAL)
Note: Stock age based on original GRN date, NOT transfer date
═══════════════════════════════════════════════════════════
3. Automated Reorder Point System
Purpose: Prevent Stock-Outs & Overstocking
Automated alerts when inventory falls below minimum thresholds, ensuring continuous availability while avoiding excess frozen storage costs.
Reorder Point Calculation
Reorder Point Formula:
ROP = (Average Daily Sales × Lead Time in Days) + Safety Stock
Where:
• Average Daily Sales = Total sales last 30 days ÷ 30
• Lead Time = Days from PI creation to GRN receipt (typically 45-60 days for India imports)
• Safety Stock = Buffer to cover demand spikes (typically 7-14 days of sales)
Example Calculation for Item 41 (TOPSIDE):
Average Daily Sales = 8,500 kg/month ÷ 30 days = 283 kg/day
Lead Time = 50 days (average from India to Tashkent)
Safety Stock = 10 days × 283 kg/day = 2,830 kg
Reorder Point = (283 kg/day × 50 days) + 2,830 kg
= 14,150 kg + 2,830 kg
= 16,980 kg
Alert Levels:
• 🟢 Safe Level: > 20,000 kg (No action)
• 🟡 Approaching Reorder: 17,000-20,000 kg (Monitor closely)
• 🟠 Reorder Point: 16,980 kg (CREATE PI NOW)
• 🔴 Critical Low: < 10,000 kg (URGENT - expedite order)
Reorder Point Alert Example
═══════════════════════════════════════════════════════════
🔔 REORDER POINT ALERT - URGENT ACTION REQUIRED
═══════════════════════════════════════════════════════════
Alert Date/Time: 20.06.2025 08:30 AM
Alert Type: 🟠 REORDER POINT REACHED
Item: Item 41 - TOPSIDE (BUFFALO COMPENSATED)
───────────────────────────────────────────────────────────
CURRENT STOCK STATUS:
───────────────────────────────────────────────────────────
Main Warehouse: 12,400 kg
Bektemir Warehouse: 4,200 kg
Total Available: 16,600 kg
Reorder Point: 16,980 kg
Status: BELOW REORDER POINT (-380 kg)
───────────────────────────────────────────────────────────
SALES VELOCITY:
───────────────────────────────────────────────────────────
Last 7 Days Sales: 2,150 kg (avg 307 kg/day)
Last 30 Days Sales: 8,500 kg (avg 283 kg/day)
Trend: Increasing demand (+8.5% vs monthly avg)
───────────────────────────────────────────────────────────
DAYS TO STOCK-OUT (at current rate):
───────────────────────────────────────────────────────────
16,600 kg ÷ 307 kg/day = 54 days
⚠️ WARNING: Lead time from India is 50 days. If PI not created
TODAY, you will stock out before shipment arrives!
───────────────────────────────────────────────────────────
RECOMMENDED ACTION:
───────────────────────────────────────────────────────────
☑ Create PI for TOPSIDE immediately
☑ Order Quantity: 20,000 kg (maintains 60-day supply buffer)
☑ Preferred Vendor: HMA AGRO INDUSTRIES LIMITED
☑ Expected PI Value: 20,000 kg × $3.85/kg = $77,000
☑ Priority: HIGH - Process today
───────────────────────────────────────────────────────────
ASSIGNED TO: Procurement Manager
Due Date: 20.06.2025 (TODAY)
═══════════════════════════════════════════════════════════
Min/Max Inventory Levels by Product
| Item Code | Product Name | Avg Monthly Sales | Min Level (ROP) | Max Level | Optimal Order Qty |
|---|---|---|---|---|---|
| 41 | TOPSIDE | 8,500 kg/mo | 16,980 kg | 35,000 kg | 20,000 kg |
| 42 | SHANK | 6,200 kg/mo | 12,400 kg | 25,000 kg | 15,000 kg |
| 44 | SILVER SIDE (HQ) | 11,000 kg/mo | 22,000 kg | 45,000 kg | 25,000 kg |
| 46 | FOREQUARTER (4-CUT) | 15,500 kg/mo | 31,000 kg | 60,000 kg | 35,000 kg |
| 48 | TENDERLOIN | 2,800 kg/mo | 5,600 kg | 12,000 kg | 7,000 kg |
4. Batch & Lot Traceability
Critical for Food Safety & Recalls
Every kg of meat must be traceable back to: Vendor → Container → Truck → GRN → Batch → Customer. Essential for handling quality issues and regulatory compliance.
Batch Numbering System
Batch Number Format: B-[VENDOR]-[GRNDATE]-[ITEMCODE]
Example: B-HMA-20250528-41
Where:
• B = Batch identifier
• HMA = Vendor code (HMA AGRO INDUSTRIES)
• 20250528 = GRN date (28 May 2025)
• 41 = Item code (TOPSIDE)
Traceability Chain Example:
Customer Query: "This meat tastes off, where did it come from?"
Sales Invoice: INV-2025-045 (15.06.2025)
→ Delivery Note: DN-2025-045
→ Stock Picked: Item 41, 250 kg from Main Warehouse
→ Batch: B-HMA-20250528-41
→ GRN: GRN-2025-001 (28.05.2025)
→ Truck: UZ-TRK-001
→ Container: MSCU1234567
→ CI: MH/104/202526
→ PI: HMA/PI/2677/202425
→ Vendor: HMA AGRO INDUSTRIES LIMITED
→ Production Date: 15.04.2025
→ Batch at Origin: LOT-HMA-041525
Result: Full traceability in < 5 minutes
Action: Quarantine remaining stock from batch B-HMA-20250528-41,
contact vendor HMA for investigation
Database Schema - Inventory Enhancements
Enhanced Inventory Table:
• Inventory ID (primary key)
• Item Code
• Warehouse Location (Main/Bektemir)
• Batch Number (B-VENDOR-DATE-ITEMCODE)
• GRN Number (foreign key) - for traceability
• Original GRN Date - for stock aging calculation
• Quantity (kg)
• Unit Cost (USD/kg)
• Total Value (USD)
• Stock Age (days) - calculated field
• Age Category (Fresh/Normal/Aging/Old/Critical/Expired)
• Status (Available/Reserved/Quarantined/Returned)
• Last Movement Date
• Last Movement Type (GRN/Transfer/Sale/Adjustment)
Stock Transfer Request Table:
• Transfer Request ID - STR-YYYY-XXX
• Request Date
• From Location
• To Location
• Requested By (User ID)
• Approved By (User ID)
• Status (Pending/Approved/Rejected/In Transit/Completed)
• Reason for Transfer
Stock Transfer Note Table:
• Transfer Note ID - STN-YYYY-XXX
• Transfer Request ID (foreign key)
• Transfer Date
• From Location
• To Location
• Vehicle Number
• Driver Name
• Departure Time
• Arrival Time
• Temperature at Loading
• Temperature at Unloading
• Source WH Manager Signature
• Destination WH Manager Signature
• Status (Prepared/In Transit/Received/Completed/Cancelled)
Stock Transfer Item Table:
• Transfer Item ID (primary key)
• Transfer Note ID (foreign key)
• Item Code
• Batch Number
• Original GRN Number (maintain traceability)
• Quantity Transferred (kg)
• Quantity Received (kg)
• Discrepancy (if any)
Reorder Point Configuration Table:
• Item Code (primary key)
• Product Name
• Average Monthly Sales (kg)
• Average Daily Sales (kg)
• Lead Time (days)
• Safety Stock Days
• Reorder Point (kg) - calculated
• Min Stock Level (kg)
• Max Stock Level (kg)
• Optimal Order Quantity (kg)
• Last Reviewed Date
• Auto-Alert Enabled (Yes/No)
• Alert Recipients (User IDs)
Stock Aging Log Table:
• Log ID (primary key)
• Report Date
• Item Code
• Batch Number
• GRN Date
• Stock Age (days)
• Quantity (kg)
• Value (USD)
• Age Category
• Action Taken (None/Promoted/Discounted/Quarantined/Disposed)
• Responsible Person (User ID)
Batch Traceability Table:
• Batch Number (primary key)
• Item Code
• Vendor ID
• Vendor Batch Number (from origin)
• Production Date (at vendor)
• GRN Number (when received at MSA)
• GRN Date
• Container Number
• Truck Number
• Quantity Received (kg)
• Quantity Sold (kg)
• Quantity Remaining (kg)
• Status (Active/Fully Sold/Quarantined/Returned)
• Quality Test Results (if applicable)
💰 Financial Accounting Integration
Connecting Procurement to Finance
Every procurement transaction automatically creates corresponding accounting entries. This integration ensures accurate financial reporting, proper cost tracking, and real-time visibility into payables and inventory valuation.
Chart of Accounts (Relevant Accounts)
| Account Code | Account Name | Type | Normal Balance | Purpose |
|---|---|---|---|---|
| 1200 | Inventory - Frozen Meat | Asset | Debit | Value of meat stock on hand in warehouse |
| 1205 | Inventory In-Transit | Asset | Debit | Goods paid for but not yet received (70% payment made, in transit) |
| 2100 | Accounts Payable - India Vendors | Liability | Credit | Amounts owed to meat suppliers |
| 2105 | Advance Payments to Vendors (30%) | Asset | Debit | 30% prepayments made (deposits) - contractual right to receive goods or refund |
| 5100 | Cost of Goods Sold (COGS) | Expense | Debit | Cost when inventory sold to customers |
| 5200 | Freight & Shipping Costs | Expense | Debit | Ocean freight, trucking costs |
| 5210 | Customs & Import Duties | Expense | Debit | Import duties, VAT, clearance fees |
| 5300 | Inventory Shrinkage & Obsolescence | Expense (COGS Component) | Debit | Normal spoilage, damage, theft, and write-downs to net realizable value |
| 4000 | Sales Revenue | Revenue | Credit | Income from meat sales to customers |
| 1100 | Cash/Bank - USD Account | Asset | Debit | Foreign currency account for vendor payments |
| 1105 | Cash/Bank - UZS Account | Asset | Debit | Local currency for operations and sales |
| 7100 | Foreign Exchange Gain/Loss | Other Income/Expense | Varies | FX fluctuations between PI and payment |
Automated Journal Entries by Transaction
📋 Proper Document Sequence
1. PI (Proforma Invoice) → Created by your company, sent to vendor
2. 30% Advance Payment → Based on PI amount
3. CI (Commercial Invoice) → Created by vendor after preparing shipment
4. Container Shipment → Goods depart India
5. Container Arrival at Iran → 70% balance payment due
6. GRN (Goods Receipt Note) → Created when goods arrive at Tashkent warehouse
1. PI Creation (30% Advance Payment)
Event: PI HMA/PI/2677/202425 created for $436,800
30% advance = $131,040 paid to HMA AGRO
Journal Entry JE-2025-101:
┌────────────────────────────────────────────────────────────┐
│ Date: 25.04.2025 │
│ Reference: PI HMA/PI/2677/202425 │
│ Description: 30% advance payment for meat shipment from HMA│
├────────────────────────────────────────────────────────────┤
│ Account │ Debit │ Credit │
├──────────────────────────────────┼────────────┼─────────────┤
│ 2105 - Advance Payments (30%) │ $131,040 │ │
│ 1100 - Cash/Bank - USD Account │ │ $131,040 │
├──────────────────────────────────┼────────────┼─────────────┤
│ TOTAL: │ $131,040 │ $131,040 │
└────────────────────────────────────────────────────────────┘
Accounting Effect:
• Cash (asset) decreases by $131,040 (Credit to asset account)
• Advance Payments (asset) increases by $131,040 (Debit to asset account)
• This is a PREPAID ASSET (deposit) - vendor owes us goods valued at $131,040 OR must refund cash
• Legal position: MSA has a contractual right to receive goods or recover payment
IMPORTANT: Advance Payments is an ASSET account (like a security deposit or
prepaid expense), NOT a liability. We paid cash UP FRONT, creating a receivable-in-kind
(right to receive goods). If the vendor fails to deliver, we have a legal claim to
recover the $131,040.
Note: Exchange rate recorded: 1 USD = 12,650 UZS on 25.04.2025
2. CI (Commercial Invoice) Receipt from Vendor
Event: Vendor sends CI MH/104/202526 dated 21.04.2025
Vendor has prepared shipment and is ready to dispatch
Actual invoice amount: $436,800 (matches PI)
Items ready to ship: Multiple frozen meat items
Container: MSCU1234567
Container departs India for Bandar Abbas, Iran
Accounting Action:
• NO journal entry at this stage
• CI is received and recorded in system for reference
• CI is vendor's legal invoice for goods being shipped
• 70% payment will be triggered when container arrives at Iran
System Recording:
┌────────────────────────────────────────────────────────────┐
│ CI Number: MH/104/202526 │
│ CI Date: 21.04.2025 │
│ Vendor: HMA AGRO INDUSTRIES LIMITED │
│ Container: MSCU1234567 │
│ Total Amount: $436,800 │
│ Shipment Status: Departed India → In Transit to Iran │
│ Linked PI: HMA/PI/2677/202425 │
│ 30% Advance Already Paid: $131,040 │
│ 70% Balance Due on Container Arrival at Iran: $305,760 │
└────────────────────────────────────────────────────────────┘
Document Checklist Attached to CI:
✓ Packing List (quantities per item)
✓ Health Certificate (India Government)
✓ Halal Certificate (Islamic Council of India)
✓ Bill of Lading (B/L) - proof of shipment
✓ Certificate of Origin (Made in India)
Important Timeline:
┌─────────────────────────────────────────────────────────────┐
│ 1. CI Received → Container departs India │
│ 2. Container in transit (7-10 days) → Bandar Abbas, Iran │
│ 3. Container arrives Iran → 70% PAYMENT MADE │
│ 4. Customs clearance at Iran (2-5 days) │
│ 5. Loaded on trucks → Transit to Uzbekistan (3-4 days) │
│ 6. Arrives Tashkent warehouse → GRN CREATED │
└─────────────────────────────────────────────────────────────┘
Note: GRN is created AFTER 70% payment, when goods physically
arrive at Uzbekistan warehouse. GRN verifies what CI claimed was shipped.
3. Container Arrival Payment (70% Balance)
Event: Container MSCU1234567 arrived at Bandar Abbas, Iran
CI MH/104/202526 total amount: $436,800
70% balance payment made = $305,760
(30% advance of $131,040 was already paid in Entry #1)
Journal Entry JE-2025-175:
┌────────────────────────────────────────────────────────────┐
│ Date: 12.05.2025 │
│ Reference: Container MSCU1234567, CI MH/104/202526 │
│ Description: 70% balance payment - goods in transit │
├────────────────────────────────────────────────────────────┤
│ Account │ Debit │ Credit │
├──────────────────────────────────┼────────────┼─────────────┤
│ 1205 - Inventory In-Transit │ $305,760 │ │
│ 1100 - Cash/Bank - USD Account │ │ $305,760 │
├──────────────────────────────────┼────────────┼─────────────┤
│ TOTAL: │ $305,760 │ $305,760 │
└────────────────────────────────────────────────────────────┘
Accounting Effect:
• Inventory In-Transit (asset) increases by $305,760 (Debit)
• Cash decreases by $305,760 (Credit - payment made)
• Goods are paid for but not yet received at warehouse
Why "Inventory In-Transit"?
At this point:
• You've paid 70% ($305,760) → Need to record where this money went
• Goods are shipped but not yet received → Can't record as "Inventory"
• Solution: Record as "Inventory In-Transit" (asset account)
• When GRN is created, move from In-Transit → Inventory
Balance Sheet Status After Entry #3:
┌─────────────────────────────────────────────────────────────┐
│ ASSETS: │
│ • 2105 - Advance Payments (30%): $131,040 Dr │
│ • 1205 - Inventory In-Transit(70%): $305,760 Dr │
│ • 1100 - Cash/Bank: -$436,800 Cr (paid out) │
│ ───────── │
│ TOTAL: Prepaid + In-Transit = $436,800 │
│ │
│ When GRN created (Entry #4): │
│ • Clear Advance Payments ($131,040) │
│ • Clear Inventory In-Transit ($305,760) │
│ • Create Inventory ($436,800) │
└─────────────────────────────────────────────────────────────┘
Payment Summary:
Entry #1 (25.04.2025): 30% Advance = $131,040 (Prepaid Asset)
Entry #3 (12.05.2025): 70% Balance = $305,760 (In-Transit Asset)
─────────
TOTAL CASH PAID TO VENDOR: = $436,800
Both amounts are currently ASSETS (money owed to us as goods/delivery).
They convert to INVENTORY when goods physically received (GRN).
4. GRN Creation (Goods Receipt)
Event: Truck arrives at Tashkent warehouse with goods
GRN-2025-001 created after physical inspection
Full container received: $436,800 worth of goods
From Container MSCU1234567, CI MH/104/202526
This entry converts PREPAID + IN-TRANSIT → INVENTORY
Journal Entry JE-2025-158:
┌────────────────────────────────────────────────────────────┐
│ Date: 28.05.2025 │
│ Reference: GRN-2025-001, Truck UZ-TRK-001, CI MH/104 │
│ Description: Receipt of frozen meat into inventory │
├────────────────────────────────────────────────────────────┤
│ Account │ Debit │ Credit │
├──────────────────────────────────┼────────────┼─────────────┤
│ 1200 - Inventory - Frozen Meat │ $436,800 │ │
│ 2105 - Advance Payments (30%) │ │ $131,040 │
│ 1205 - Inventory In-Transit(70%) │ │ $305,760 │
├──────────────────────────────────┼────────────┼─────────────┤
│ TOTAL: │ $436,800 │ $436,800 │
└────────────────────────────────────────────────────────────┘
Accounting Effect:
• Inventory increases by $436,800 (Debit) - goods now in warehouse
• Advance Payments cleared $131,040 (Credit) - prepaid asset → inventory
• Inventory In-Transit cleared $305,760 (Credit) - in-transit → inventory
• TOTAL COST MATCHES: $131,040 + $305,760 = $436,800
Balance Sheet Clean-Up:
┌─────────────────────────────────────────────────────────────┐
│ BEFORE GRN (After Entry #3): │
│ Assets: │
│ • Advance Payments: $131,040 │
│ • Inventory In-Transit: $305,760 │
│ • Cash: -$436,800 (already paid) │
│ │
│ AFTER GRN (Entry #4): │
│ Assets: │
│ • Advance Payments: $0 (cleared) │
│ • Inventory In-Transit: $0 (cleared) │
│ • Inventory: $436,800 (created) │
│ • Cash: -$436,800 (unchanged) │
│ │
│ ✓ Net Effect: Converted prepaid assets → actual inventory │
└─────────────────────────────────────────────────────────────┘
Inventory Valuation (FIFO):
• Full container value: $436,800
• Multiple items received per packing list
• Each item gets unique batch: B-HMA-20250528-[ItemCode]
• Location: Main Warehouse (Ravshan aka)
• Perpetual inventory system updated
CI vs GRN Comparison (if shortage exists):
┌────────────────────────────────────────────────────────────┐
│ If GRN quantity < CI quantity: │
│ • File claim with vendor (CLM-2025-XXX) │
│ • Adjust inventory value downward │
│ • Record claim receivable or reduce vendor payable │
│ Example: If 6% shortage on $436,800 = $26,208 claim │
└────────────────────────────────────────────────────────────┘
5. Sales to Customer (Revenue Recognition)
Event: Sales Invoice INV-2025-045 to Horeca customer
Sold 250 kg TOPSIDE @ 80,000 UZS/kg = 20,000,000 UZS
Cost: 250 kg @ $3.85/kg = $962.50 (48,743,750 UZS)
Journal Entry JE-2025-201 (Revenue):
┌────────────────────────────────────────────────────────────┐
│ Date: 15.06.2025 │
│ Reference: INV-2025-045, Customer: Grand Hyatt Tashkent │
│ Description: Sale of frozen meat │
├────────────────────────────────────────────────────────────┤
│ Account │ Debit (UZS)│ Credit (UZS)│
├──────────────────────────────────┼────────────┼─────────────┤
│ 1105 - Cash/Bank - UZS Account │ 20,000,000 │ │
│ 4000 - Sales Revenue │ │ 20,000,000 │
├──────────────────────────────────┼────────────┼─────────────┤
│ TOTAL: │ 20,000,000 │ 20,000,000 │
└────────────────────────────────────────────────────────────┘
Journal Entry JE-2025-202 (COGS):
┌────────────────────────────────────────────────────────────┐
│ Date: 15.06.2025 │
│ Reference: INV-2025-045, Batch B-HMA-20250528-41 │
│ Description: Cost of goods sold (FIFO method) │
├────────────────────────────────────────────────────────────┤
│ Account │ Debit (UZS)│ Credit (UZS)│
├──────────────────────────────────┼────────────┼─────────────┤
│ 5100 - Cost of Goods Sold (COGS) │ 12,275,000 │ │
│ 1200 - Inventory - Frozen Meat │ │ 12,275,000 │
├──────────────────────────────────┼────────────┼─────────────┤
│ TOTAL: │ 12,275,000 │ 12,275,000 │
└────────────────────────────────────────────────────────────┘
Accounting Effect:
• Cash increases 20,000,000 UZS from customer payment
• Revenue recognized 20,000,000 UZS
• COGS expense 12,275,000 UZS (250 kg × $3.85 × 12,775 rate)
• Inventory decreased by cost value
• Gross Profit = 7,725,000 UZS (38.6% margin)
FIFO Tracking:
• Picked from oldest batch B-HMA-20250528-41
• 250 kg deducted from inventory
• Remaining stock: 5,288.30 kg from this batch
6. Stock Adjustment (Discrepancy, Damage, Write-off)
Event: Physical count shows 50 kg shortage
Item 41 - TOPSIDE missing (spoilage/damage)
Cost value: 50 kg @ $3.85/kg = $192.50 (2,455,000 UZS)
Journal Entry JE-2025-210:
┌────────────────────────────────────────────────────────────┐
│ Date: 20.06.2025 │
│ Reference: Stock Adjustment SA-2025-005 │
│ Description: Write-off damaged/missing inventory │
├────────────────────────────────────────────────────────────┤
│ Account │ Debit (UZS)│ Credit (UZS)│
├──────────────────────────────────┼────────────┼─────────────┤
│ 5300 - Inventory Shrinkage Expense│ 2,455,000 │ │
│ 1200 - Inventory - Frozen Meat │ │ 2,455,000 │
├──────────────────────────────────┼────────────┼─────────────┤
│ TOTAL: │ 2,455,000 │ 2,455,000 │
└────────────────────────────────────────────────────────────┘
Accounting Effect:
• Expense increases 2,455,000 UZS (reduces profit)
• Inventory asset decreases by same amount
• Recorded in P&L as operating expense
Investigation Required:
• Root cause analysis
• If vendor fault → create claim
• If internal → review warehouse procedures
7. Foreign Exchange (FX) Revaluation - Month-End
Event: Month-end closing - May 31, 2025
All USD-denominated inventory revalued at closing exchange rate
(Note: Inventory is non-monetary under IFRS/GAAP, but system tracks
both USD cost and UZS valuation for management reporting)
Exchange Rates:
• PI Date (25.04.2025): 1 USD = 12,650 UZS
• Closing Date (31.05.2025): 1 USD = 12,750 UZS
• Movement: +100 UZS (+0.79%)
Inventory Balance:
• Original cost: $436,800
• Original UZS value: $436,800 × 12,650 = 5,525,520,000 UZS
• Closing UZS value: $436,800 × 12,750 = 5,569,200,000 UZS
• Unrealized FX Gain: 43,680,000 UZS
Journal Entry JE-2025-215 (Management Reporting Only):
┌────────────────────────────────────────────────────────────┐
│ Date: 31.05.2025 (Month-end close) │
│ Reference: FX Revaluation - USD inventory positions │
│ Description: Unrealized FX gain on USD-denominated assets │
├────────────────────────────────────────────────────────────┤
│ Account │ Debit (UZS)│ Credit (UZS)│
├──────────────────────────────────┼────────────┼─────────────┤
│ 1200 - Inventory (UZS valuation) │ 43,680,000 │ │
│ 7100 - FX Gain/Loss (Unrealized) │ │ 43,680,000 │
├──────────────────────────────────┼────────────┼─────────────┤
│ TOTAL: │ 43,680,000 │ 43,680,000 │
└────────────────────────────────────────────────────────────┘
GAAP/IFRS Treatment:
• IFRS (IAS 21.23): Inventory is a NON-MONETARY item. Initial measurement
in foreign currency is translated at transaction date rate. NO REVALUATION.
• US GAAP (ASC 830): Inventory is non-monetary. Use historical rate.
NO REVALUATION for financial statements.
MSA Policy (Management Accounts):
For internal management reporting purposes, MSA tracks inventory in BOTH:
1. USD (historical cost): $436,800 - NEVER changes (GAAP basis)
2. UZS (current value): Updated monthly for sales pricing decisions
Important Note:
This FX revaluation entry is for MANAGEMENT REPORTING ONLY. For external
financial statements (audited financials), inventory remains at historical
cost per IAS 2 / ASC 330. The unrealized FX gain is NOT included in GAAP
profit but helps management set sales prices that cover current USD cost.
When FX Gain/Loss Becomes Realized:
FX gain/loss is realized ONLY when:
• Inventory is SOLD (sales proceeds in UZS vs. original USD cost converted)
• Example: Sell 250 kg for 20,000,000 UZS
- Cost was $962.50 at 12,650 UZS/USD = 12,175,625 UZS (COGS)
- Revenue: 20,000,000 UZS
- Gross Profit: 7,824,375 UZS (includes implicit FX benefit)
8. Cash Flow Statement Classification
CASH FLOW STATEMENT - OPERATING ACTIVITIES SECTION
All inventory purchasing transactions are classified as OPERATING ACTIVITIES
under both IFRS (IAS 7) and US GAAP (ASC 230) because they relate to
the principal revenue-generating activities of the business.
┌─────────────────────────────────────────────────────────────────────┐
│ CASH FLOW FROM OPERATING ACTIVITIES │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ Cash Inflows (Operating): │
│ • Cash received from customers (meat sales) $1,245,800 │
│ │
│ Cash Outflows (Operating): │
│ • Advance payments to suppliers (30%) ($131,040) │
│ • Balance payments to suppliers (70%) ($305,760) │
│ • Freight and logistics payments ($25,600) │
│ • Customs duties and clearance fees ($18,400) │
│ • Warehouse operating expenses ($12,300) │
│ ────────── │
│ Total Operating Cash Outflows: ($493,100) │
│ │
│ NET CASH FROM OPERATING ACTIVITIES: $752,700 │
└─────────────────────────────────────────────────────────────────────┘
Journal Entry to Cash Flow Mapping:
Entry #1 - PI Creation (30% Advance):
Cash Flow Impact: ($131,040) - Operating Activities (Outflow)
Line Item: "Payments to suppliers for inventory"
Entry #3 - Container Arrival (70% Balance):
Cash Flow Impact: ($305,760) - Operating Activities (Outflow)
Line Item: "Payments to suppliers for inventory"
Entry #4 - GRN Creation:
Cash Flow Impact: $0 (Non-cash transaction)
Note: Reclassification of prepaid assets to inventory
Entry #5 - Sales to Customer:
Cash Flow Impact: +$XXX - Operating Activities (Inflow)
Line Item: "Cash received from customers"
Entry #6 - Stock Adjustment:
Cash Flow Impact: $0 (Non-cash transaction)
Note: Inventory write-off affects net income but not cash
Entry #7 - FX Revaluation (Management Reporting):
Cash Flow Impact: $0 (Non-cash, unrealized)
Note: Only realized FX gains/losses at point of sale affect cash
IMPORTANT GAAP PRINCIPLES:
1. Direct Method vs Indirect Method:
• Direct Method: Shows actual cash receipts/payments (above example)
• Indirect Method: Starts with net income, adjusts for non-cash items
• MSA can use either method (most companies use indirect)
2. Non-Cash Transactions (Supplemental Disclosure):
The following do NOT appear in cash flow statement body:
• Entry #4: Converting prepaid assets to inventory ($436,800)
• Entry #6: Inventory write-offs ($8,200)
• Entry #7: Unrealized FX revaluation ($43,680,000 UZS)
These should be disclosed in "Supplemental Schedule of Non-Cash
Investing and Financing Activities" footnote.
3. Changes in Working Capital (Indirect Method):
If using indirect method, reconcile from net income:
Net Income $XXX,XXX
Adjustments to reconcile to cash from operations:
+ Depreciation & Amortization $XX,XXX
+ Inventory write-offs (non-cash expense) $8,200
- Increase in Inventory ($436,800)
- Increase in Advance Payments ($131,040)
+ Decrease in Advance Payments $131,040
- Increase in Inventory In-Transit ($305,760)
+ Decrease in Inventory In-Transit $305,760
+/- Unrealized FX gains/losses (non-cash) $0
─────────
NET CASH FROM OPERATING ACTIVITIES $752,700
Key Audit Trail Requirements:
• Each journal entry must reference originating document (PI/CI/GRN)
• Bank statements must reconcile to Cash account (1100)
• Vendor statements must reconcile to AP aging report
• All cash flows must tie to general ledger account movements
Financial Reports Generated
1. Accounts Payable Aging Report
═══════════════════════════════════════════════════════════
📊 ACCOUNTS PAYABLE AGING REPORT - MSA MEAT TRADING
═══════════════════════════════════════════════════════════
Report Date: 25.06.2025
Currency: USD
───────────────────────────────────────────────────────────
Vendor: HMA AGRO INDUSTRIES LIMITED
───────────────────────────────────────────────────────────
PI Number │ Invoice Date │ Amount │ Paid │ Balance │ Days
PI/2677/202425 │ 21.04.2025 │ $436,800 │ $427,952 │ $8,848 │ 65 days
PI/2688/202425 │ 05.05.2025 │ $325,600 │ $97,680 │ $227,920 │ 51 days (70% pending)
PI/2695/202425 │ 12.05.2025 │ $412,500 │ $123,750 │ $288,750 │ 44 days (70% pending)
Vendor Total: $1,174,900 | Paid: $649,382 | Balance: $525,518
───────────────────────────────────────────────────────────
Vendor: SUPER FROZEN FOODS PVT LTD
───────────────────────────────────────────────────────────
PI Number │ Invoice Date │ Amount │ Paid │ Balance │ Days
PI/2680/202425 │ 28.04.2025 │ $285,400 │ $285,400 │ $0 │ PAID
PI/2692/202425 │ 10.05.2025 │ $395,200 │ $118,560 │ $276,640 │ 46 days (70% pending)
Vendor Total: $680,600 | Paid: $403,960 | Balance: $276,640
───────────────────────────────────────────────────────────
AGING SUMMARY:
───────────────────────────────────────────────────────────
Current (0-30 days): $145,200
31-60 days: $492,290
61-90 days: $164,668
Over 90 days: $0
TOTAL PAYABLES: $802,158
───────────────────────────────────────────────────────────
Payment Schedule (Next 30 Days):
───────────────────────────────────────────────────────────
05.07.2025: Container arrival → Pay HMA $227,920 (70%)
12.07.2025: Container arrival → Pay HMA $288,750 (70%)
18.07.2025: Container arrival → Pay SFF $276,640 (70%)
Total Cash Required (Next 30 days): $793,310
═══════════════════════════════════════════════════════════
2. Inventory Valuation Report
═══════════════════════════════════════════════════════════
📦 INVENTORY VALUATION REPORT (FIFO Method)
═══════════════════════════════════════════════════════════
Report Date: 25.06.2025
Valuation Method: First-In, First-Out (FIFO)
───────────────────────────────────────────────────────────
Item 41 - TOPSIDE (BUFFALO COMPENSATED)
───────────────────────────────────────────────────────────
Batch │ GRN Date │ Qty (kg) │ Cost/kg │ Total Value │ Age
B-HMA-20240805-41 │ 05.08.2024 │ 1,800 │ $3.75 │ $6,750 │ 324 days
B-HMA-20241020-41 │ 20.10.2024 │ 3,200 │ $3.80 │ $12,160 │ 248 days
B-HMA-20250315-41 │ 15.03.2025 │ 12,400 │ $3.85 │ $47,740 │ 102 days
B-HMA-20250528-41 │ 28.05.2025 │ 5,288 │ $3.85 │ $20,359 │ 28 days
Item 41 Total: 22,688 kg | $87,009
───────────────────────────────────────────────────────────
Item 44 - SILVER SIDE (HQ CUTS)
───────────────────────────────────────────────────────────
Batch │ GRN Date │ Qty (kg) │ Cost/kg │ Total Value │ Age
B-HMA-20241215-44 │ 15.12.2024 │ 5,600 │ $3.90 │ $21,840 │ 192 days
B-HMA-20250410-44 │ 10.04.2025 │ 8,500 │ $3.95 │ $33,575 │ 76 days
B-HMA-20250605-44 │ 05.06.2025 │ 16,800 │ $3.95 │ $66,360 │ 20 days
Item 44 Total: 30,900 kg | $121,775
───────────────────────────────────────────────────────────
INVENTORY SUMMARY BY LOCATION:
───────────────────────────────────────────────────────────
Main Warehouse (Ravshan aka):
• Total Quantity: 185,400 kg
• Total Value: $712,450
• Average Cost: $3.84/kg
Bektemir Warehouse:
• Total Quantity: 58,200 kg
• Total Value: $226,850
• Average Cost: $3.90/kg
TOTAL INVENTORY: 243,600 kg | $939,300
───────────────────────────────────────────────────────────
Accounting Impact:
───────────────────────────────────────────────────────────
Balance Sheet → Asset Account 1200: $939,300
(Frozen Meat Inventory at FIFO cost)
═══════════════════════════════════════════════════════════
Key Integration Points
| Procurement Event | Triggered Accounting Entry | Affected Accounts | Timing |
|---|---|---|---|
| PI Created | Record 30% advance payment | Dr: Advance Payments Cr: Cash |
Immediate upon payment |
| GRN Created | Add to inventory, create payable | Dr: Inventory Cr: Accounts Payable |
Real-time upon GRN save |
| Container Arrives | Pay 70% balance, clear advance | Dr: AP Cr: Advance, Cash |
Upon payment authorization |
| Sales Invoice | Recognize revenue + COGS | Dr: Cash Cr: Revenue Dr: COGS Cr: Inventory |
Immediate upon sale |
| Stock Transfer | Memo entry (no GL impact) | Inventory location change only | Upon transfer completion |
| Claim Accepted | Reduce payable by credit note | Dr: Accounts Payable Cr: FX Gain or Inventory |
Upon credit note receipt |
| Return/Rejection | Reverse GRN entry | Dr: AP Cr: Inventory |
Upon return shipment |
Month-End Closing Procedures
Financial Close Checklist
- Inventory Physical Count: Reconcile system inventory vs physical count, investigate variances
- FIFO Valuation: Recalculate inventory value using FIFO method, update inventory account
- Accruals: Review in-transit shipments (CI received but no GRN) - accrue if ownership transferred
- FX Revaluation: Revalue USD payables at month-end exchange rate, record unrealized FX gain/loss
- AP Aging Review: Generate aging report, follow up on overdue payments
- Inventory Aging: Review old stock (>9 months), create provision for obsolete inventory if needed
- Reconciliation: Match inventory balance (1200) to detailed inventory report, match AP balance (2100) to vendor statements
- Financial Statements: Generate P&L and Balance Sheet, review gross profit margin by product
📜 Compliance & Regulatory Requirements
⚠️ Mandatory Compliance for Meat Imports
Importing frozen meat into Uzbekistan requires strict adherence to international food safety standards, Islamic Halal requirements, customs regulations, and local health department rules. Non-compliance can result in shipment rejection, fines, or business license suspension.
1. Halal Certification Requirements
Why Halal Matters in Uzbekistan
Uzbekistan is 96% Muslim. ALL meat products MUST be Halal certified to be legally imported and sold. This is both a religious requirement and a legal mandate.
Halal Certification Checklist
| Requirement | Details | Verification |
|---|---|---|
| Halal Certificate Source | Must be issued by recognized Islamic authority in India (e.g., Jamiat Ulama-i-Hind, Halal India) | Check issuing authority on certificate header |
| Certificate Validity | Typically valid for 1 year from issue date | Verify expiry date > shipment date |
| Slaughterhouse Approval | Certificate must list specific slaughterhouse(s) used by vendor | Match slaughterhouse name to vendor facility |
| Product Coverage | Certificate must cover buffalo meat (not just generic "meat") | Check product description on certificate |
| Original Document | Customs requires ORIGINAL certificate (not photocopy) | Ensure vendor sends original with shipment |
| Uzbekistan Recognition | Certificate must be from authority recognized by Uzbekistan Halal Committee | Pre-approve vendor's certifying body with local authorities |
2. Food Safety & Quality Standards
International Standards Compliance
HACCP (Hazard Analysis Critical Control Points)
- Requirement: Vendor facility must have HACCP certification
- Purpose: Ensures systematic food safety management
- Critical Control Points: Temperature control, contamination prevention, sanitation
- Documentation: HACCP certificate from vendor + periodic audit reports
ISO 22000 (Food Safety Management)
- Requirement: Preferred but not mandatory
- Purpose: International standard for food safety management systems
- Benefit: Demonstrates vendor commitment to quality
- Verification: Request ISO 22000 certificate if available
Health & Veterinary Certificates
| Certificate Type | Issuing Authority | Content Requirements | Validity |
|---|---|---|---|
| Health Certificate | Indian Export Inspection Council (EIC) or APEDA | Confirms meat is fit for human consumption, free from diseases | Per shipment |
| Veterinary Certificate | State/Central Veterinary Authority (India) | Animals were healthy at slaughter, facility inspected | Per shipment |
| Sanitary Certificate | Export Inspection Agency (India) | Processing facility meets sanitation standards | Annual or per shipment |
| Non-GMO Certificate | Testing laboratory or vendor | Animals not fed genetically modified feed (if required) | Per batch |
3. Import Regulations (Uzbekistan Customs)
Required Import Documents
📋 Complete Document Package for Customs Clearance
- Commercial Invoice (CI) - Original, stamped by vendor
- Packing List - Detailed item breakdown with weights
- Bill of Lading (BL) - Original or telex release
- Certificate of Origin (COO) - Proving India origin
- Halal Certificate - ORIGINAL from recognized authority
- Health Certificate - From Indian EIC/APEDA
- Veterinary Certificate - From Indian veterinary authority
- Phytosanitary Certificate - If required by Uzbekistan
- Import License/Permit - From Uzbekistan Ministry of Economy
- Customs Declaration - Filed electronically with Uzbekistan Customs
- Payment Proof - Bank transfer records for duty payment
- Insurance Certificate - Cargo insurance (if CIF terms)
⚠️ Missing ANY document = Shipment held at customs = Daily storage fees + potential spoilage
HS Code Classification
Harmonized System (HS) Codes for Buffalo Meat:
Chapter 02: Meat and edible meat offal
0201 - Meat of bovine animals, fresh or chilled
└─ Not applicable (product is frozen)
0202 - Meat of bovine animals, frozen
├─ 0202.10 - Carcasses and half-carcasses
├─ 0202.20 - Other cuts with bone in
│ └─ Example: Forequarter (4-cut), Hindquarter
└─ 0202.30 - Boneless
└─ Example: Topside, Silverside, Tenderloin, Shank
MSA Common HS Codes:
• Item 41 (Topside) - HS Code: 0202.30.90
• Item 42 (Shank) - HS Code: 0202.30.90
• Item 44 (Silverside HQ) - HS Code: 0202.30.90
• Item 46 (Forequarter 4-cut) - HS Code: 0202.20.90
• Item 48 (Tenderloin) - HS Code: 0202.30.90
Import Duty Rate: Varies by HS code and trade agreements
• Standard rate: 15% of CIF value
• Preferential rate: 5% (if India-Uzbekistan trade agreement applies)
• VAT: 15% on (CIF + Duty)
Example Duty Calculation:
CIF Value: $100,000
Import Duty (15%): $15,000
Subtotal: $115,000
VAT (15%): $17,250
Total Import Cost: $132,250
4. Temperature & Cold Chain Compliance
Mandatory Cold Chain Requirements
| Ocean Freight (India to Iran): | Maintain -18°C to -22°C for 25-30 days |
| Port Storage (Bandar Abbas): | Cold storage facility at -18°C minimum (max 7 days) |
| Road Transport (Iran to UZB): | Refrigerated trucks -18°C minimum (5-7 days) |
| MSA Warehouse Storage: | -18°C to -22°C continuously until sale |
| Temperature Breach Threshold: | If product exceeds -10°C → AUTOMATIC REJECTION |
Temperature Monitoring Requirements
- ✅ Data Loggers: Each container must have temperature data logger recording every 15 minutes
- ✅ Logger Report: Submit temperature log to customs as proof of cold chain maintenance
- ✅ Breach Investigation: Any temperature spike > -10°C requires written explanation
- ✅ Warehouse Monitoring: Continuous temperature monitoring with alarm system
5. Traceability & Record Keeping
Regulatory Record Retention Requirements
| Document Type | Retention Period | Storage Location | Regulatory Authority |
|---|---|---|---|
| Import Documents (CI, BL, COO) | 7 years | Physical + Digital | Uzbekistan Customs |
| Halal Certificates | 5 years | Physical originals + scans | Halal Committee UZB |
| Health/Veterinary Certificates | 5 years | Physical originals | Health Ministry UZB |
| Temperature Logs | 3 years | Digital + printouts | Food Safety Authority |
| Sales Records (traceability) | 3 years | ERP system + backup | Consumer Protection |
| GRN & Inventory Records | 7 years | ERP system + backup | Tax Authority |
| Financial Records (invoices, payments) | 10 years | Accounting system + archive | Tax Authority |
6. Audit & Inspection Readiness
Regular Inspections to Expect
-
Customs Audit (Annual):
- Verify import documentation completeness
- Check duty calculations and payments
- Confirm HS code classifications correct
- Preparation: Organize all import docs by shipment, prepare import register
-
Health Department Inspection (Quarterly):
- Inspect warehouse cold storage facilities
- Review temperature logs and equipment calibration
- Check Halal certificate validity
- Sample products for lab testing (rare but possible)
- Preparation: Ensure warehouse clean, all certifications current, logs up-to-date
-
Halal Compliance Check (As needed):
- Review Halal certificates for all inventory
- Verify no cross-contamination with non-Halal products
- Check storage separation (if multiple product types)
- Preparation: Maintain Halal cert registry, ensure proper labeling
-
Fire & Safety Inspection (Annual):
- Fire suppression systems functional
- Emergency exits clear and marked
- Refrigeration equipment safety certified
- Preparation: Schedule preventive maintenance, keep safety certificates current
7. Non-Compliance Consequences
⚠️ Penalties for Regulatory Violations
| Violation Type | Consequence | Financial Impact |
|---|---|---|
| Missing Halal Certificate | Shipment rejected at customs, cannot be imported | Total shipment loss + disposal costs (100% loss) |
| Expired Health Certificate | Customs hold, requires re-certification from India | Storage fees $500/day + re-cert cost $2,000-$5,000 |
| Incorrect HS Code | Customs penalty + duty recalculation | Fine 50% of underpaid duty + interest |
| Temperature Breach (not disclosed) | Food safety violation, product seizure | Product confiscation + fine $10,000-$50,000 |
| Poor Record Keeping | Tax audit issues, inability to prove compliance | Fines $5,000-$20,000 + tax penalties |
| Selling Non-Halal as Halal | Criminal offense, business license revocation | Business closure + criminal prosecution |
Compliance Checklist for Each Shipment
✅ Pre-Shipment Verification (Before Vendor Ships)
| ☐ | Halal Certificate: Valid, from recognized authority, covers all products in shipment |
| ☐ | Health Certificate: Issued by EIC/APEDA for this specific shipment |
| ☐ | Veterinary Certificate: From Indian authority, dated within last 30 days |
| ☐ | Certificate of Origin: Confirms India origin, stamped by Chamber of Commerce |
| ☐ | HS Codes: All products correctly classified on CI and packing list |
| ☐ | Temperature Logger: Installed in container, set to record every 15 min |
✅ Upon Arrival at Warehouse (During GRN)
| ☐ | Document Verification: All original certificates present and valid |
| ☐ | Temperature Check: Download and review logger data, confirm no breaches |
| ☐ | Product Inspection: Visual check for signs of thawing/refreezing |
| ☐ | Batch Recording: Create batch number, link to all certificates |
| ☐ | File Documentation: Scan all certificates, attach to GRN in system |
🔔 Alerts & Notifications System
Proactive Event Monitoring
Automated alerts ensure critical events don't go unnoticed. The system monitors inventory levels, payment deadlines, temperature breaches, certificate expiries, and quality issues, sending real-time notifications to relevant stakeholders.
Alert Categories & Priority Levels
| Priority | Icon | Response Time | Notification Channels | Example Scenarios |
|---|---|---|---|---|
| CRITICAL | 🔴 | Immediate action required | SMS + Email + System Pop-up + Phone Call | Temperature breach, expired Halal cert, stockout |
| HIGH | 🟠 | Action within 24 hours | SMS + Email + System notification | Payment due tomorrow, reorder point reached |
| MEDIUM | 🟡 | Action within 3-5 days | Email + System notification | Stock aging (9-12 months), vendor performance issue |
| LOW | 🔵 | Informational, review when convenient | System notification only | Container departed India, GRN created successfully |
Inventory Alerts
🟠 Reorder Point Alert
Trigger: Stock falls below configured reorder point
Recipients: Procurement Manager
Frequency: Daily until PI created
Message:
🔔 REORDER ALERT: Item 41 - TOPSIDE
Current Stock: 16,600 kg
Reorder Point: 16,980 kg
Status: BELOW THRESHOLD (-380 kg)
Days to Stock-out: 54 days
Recommended Order: 20,000 kg
Action: Create PI for HMA AGRO today
🔴 Critical Stock Low Alert
Trigger: Stock < 50% of reorder point (emergency level)
Recipients: Procurement Manager, General Manager
Frequency: Every 6 hours until resolved
Message:
🚨 CRITICAL LOW STOCK: Item 44 - SILVERSIDE
Current Stock: 8,200 kg
Reorder Point: 22,000 kg
Status: EMERGENCY LEVEL (37% of ROP)
Days to Stock-out: 22 days
⚠️ URGENT: Expedite order or risk stockout!
Action: Contact vendor for emergency shipment
🟡 Stock Aging Alert
Trigger: Stock reaches 9 months age (OLD category)
Recipients: Sales Manager, Warehouse Manager
Frequency: Weekly
Message:
⚠️ AGING STOCK ALERT
Item 41 - TOPSIDE, Batch B-HMA-20241020-41
Age: 278 days (9.3 months)
Quantity: 3,200 kg
Value: $12,160
Status: OLD STOCK - Active promotion needed
Suggested Discount: 10-15% off
Action: Include in this week's sales promotions
🔴 Critical Age Alert (12+ months)
Trigger: Stock reaches 12 months age
Recipients: Sales Manager, General Manager
Frequency: Daily
Message:
🚨 CRITICAL AGING: Clearance Sale Required
Item 41 - TOPSIDE, Batch B-HMA-20240805-41
Age: 365 days (12.2 months)
Quantity: 1,800 kg
Value: $6,750
Status: CRITICAL - Approaching max shelf life
Clearance Price: 70-75% of standard
⚠️ Must sell within 30 days or dispose
Estimated Loss if Disposed: $6,750
Payment & Financial Alerts
🟠 Payment Due Reminder (3 days before)
Trigger: 70% payment due in 3 days (container arriving)
Recipients: Finance Manager, Procurement Manager
Message:
💰 PAYMENT DUE REMINDER
Container: MSCU1234567
ETA Bandar Abbas: 05.07.2025 (3 days)
Vendor: HMA AGRO INDUSTRIES
70% Payment Due: $227,920
Available USD Balance: $185,000
⚠️ Shortfall: $42,920 - FX transfer needed
Action: Arrange USD transfer by 04.07.2025
🔴 Overdue Payment Alert
Trigger: Payment not made by due date
Recipients: Finance Manager, General Manager, CFO
Frequency: Daily until paid
Message:
🚨 OVERDUE PAYMENT - URGENT
Container: TGBU8901235
Vendor: SUPER FROZEN FOODS
Payment Due Date: 18.07.2025
Days Overdue: 3 days
Amount Due: $276,640
⚠️ Late penalties may apply
⚠️ Risk: Vendor may hold future shipments
Action: Make payment immediately
Quality & Compliance Alerts
🔴 Temperature Breach Alert
Trigger: Warehouse temperature > -15°C OR truck arrival temp > -10°C
Recipients: Warehouse Manager, QC Manager, Operations Manager
Frequency: Real-time, immediate notification
Message:
🚨 TEMPERATURE BREACH DETECTED
Location: Main Warehouse - Cold Room 2
Current Temperature: -14.2°C
Threshold: -18°C minimum
Duration: 12 minutes
Affected Stock: ~45,000 kg (estimated)
⚠️ IMMEDIATE ACTION REQUIRED:
1. Check refrigeration equipment
2. Call maintenance (24/7: +998-XX-XXX-XXXX)
3. Move stock to backup cold room if needed
4. Document incident for audit trail
🟠 Certificate Expiry Warning (30 days)
Trigger: Halal/Health cert expires in 30 days
Recipients: Procurement Manager, Compliance Officer
Frequency: Weekly until renewed
Message:
📋 CERTIFICATE EXPIRY WARNING
Vendor: HMA AGRO INDUSTRIES
Certificate: Halal Certification
Expiry Date: 15.08.2025
Days Until Expiry: 28 days
Impact: Cannot import after expiry
Action: Request renewed certificate from vendor
Follow-up: Verify new cert received by 10.08.2025
🔴 Rejected Shipment Alert
Trigger: GRN rejected or partial rejection
Recipients: Procurement Manager, Quality Manager, General Manager
Message:
🚨 SHIPMENT REJECTED
Rejection Notice: RN-2025-001
Truck: UZ-TRK-015
Vendor: SUPER FROZEN FOODS
Reason: Temperature Abuse (+1.5°C)
Rejected Quantity: 25,600 kg (FULL TRUCK)
Rejected Value: $102,400
Action Taken: Truck sent back, vendor notified
Next Steps:
1. Claim filed with vendor
2. Request replacement shipment
3. Update stock projections
🟠 Claim Filed Notification
Trigger: New claim created (shortage, quality issue)
Recipients: Procurement Manager, Finance Manager
Message:
📋 CLAIM FILED
Claim ID: CLM-2025-001
Vendor: HMA AGRO INDUSTRIES
Type: Quantity Shortage
Item: Item 44 - SILVERSIDE
Shortage: 1,120 kg (-6.3%)
Claim Amount: $4,424
Status: Submitted to vendor
Expected Response: 27.05.2025 (within 48 hrs)
Action: Monitor vendor response
Operational Alerts
🔵 Container Departure (Info)
Trigger: Container departs India port
Recipients: Procurement Manager, Operations
Message:
📦 Container Departed India
Container: MSCU1234589
BL: BLIND2025052001
Vessel: MSC MEDITERRANEAN
Departure Port: Mundra, India
Departure Date: 20.05.2025
ETA Bandar Abbas: 08.06.2025 (19 days transit)
Contents: 112,000 kg buffalo meat
Value: $436,800
Next Update: Arrival at Bandar Abbas
🟠 Container Arrived Iran Port
Trigger: Container arrives Bandar Abbas
Recipients: Procurement Manager, Finance, Operations
Message:
🚢 Container Arrived Bandar Abbas
Container: MSCU1234589
Arrival Date: 08.06.2025 10:45 AM
Status: Customs clearance in progress
70% Payment Due: $305,760
Payment Deadline: 10.06.2025 (2 days)
ACTIONS REQUIRED:
1. Prepare 70% payment ($305,760)
2. Arrange truck transfers (7-8 trucks needed)
3. Notify warehouse of expected arrival dates
4. ETA Tashkent: 18.06.2025 (10 days transit)
🔵 Truck In Transit Update
Trigger: Truck GPS update every 12 hours
Recipients: Operations Manager, Warehouse Manager
Message:
🚚 Truck Location Update
Truck: UZ-TRK-003
Container: MSCU1234589
Current Location: Ashgabat, Turkmenistan
Distance Remaining: 485 km to Tashkent
ETA: 17.06.2025 14:00
Temperature Status: -19.2°C ✅
Driver: Rustam Saidov (+998-90-XXX-XXXX)
Next Update: 12 hours or upon arrival
✅ GRN Created Successfully
Trigger: Warehouse completes GRN
Recipients: Procurement Manager, Finance, Inventory Manager
Message:
✅ Goods Received Successfully
GRN: GRN-2025-010
Truck: UZ-TRK-003
Received Date: 17.06.2025 14:45
Location: Main Warehouse (Ravshan aka)
Received Quantity: 16,800 kg (100% match)
Value Added to Inventory: $66,360
Discrepancies: NONE
Temperature: -19.5°C ✅
Quality Check: PASSED ✅
Batch: B-HMA-20250617-44
Status: Available for sale
Notification Configuration
| Alert Type | SMS | System | Push Notification | Configurable? | |
|---|---|---|---|---|---|
| Temperature Breach | ✅ | ✅ | ✅ | ✅ | ❌ (Always on) |
| Critical Low Stock | ✅ | ✅ | ✅ | ✅ | ❌ (Always on) |
| Reorder Point | ✅ | Optional | ✅ | ✅ | ✅ (User can customize) |
| Payment Due | ✅ | ✅ | ✅ | ✅ | ✅ (Can set reminder days) |
| Stock Aging | ✅ | ❌ | ✅ | Optional | ✅ (Can set age thresholds) |
| Certificate Expiry | ✅ | Optional | ✅ | Optional | ✅ (Can set warning days) |
| Container Updates | ✅ | ❌ | ✅ | Optional | ✅ (Can disable) |
| GRN Created | ✅ | ❌ | ✅ | Optional | ✅ (Can disable) |
Alert Escalation Matrix
Automated Escalation Rules
| Alert | Initial Notification | Escalation 1 (if unacknowledged) | Escalation 2 (if still unacknowledged) |
|---|---|---|---|
| Temperature Breach | Warehouse Manager (immediate) | Operations Manager (15 min) | General Manager + Phone Call (30 min) |
| Critical Low Stock | Procurement Manager (immediate) | General Manager (6 hours) | CEO/Owner (24 hours) |
| Overdue Payment | Finance Manager (immediate) | CFO (4 hours) | CEO + Vendor Call (12 hours) |
| Shipment Rejection | Procurement + Quality Manager (immediate) | General Manager (1 hour) | CEO + Emergency Meeting (4 hours) |
Alert Dashboard Requirements
System Dashboard Features
- ✅ Real-Time Alert Feed: Live stream of all notifications sorted by priority
- ✅ Alert Filtering: Filter by type, priority, date range, acknowledged/unacknowledged
- ✅ Alert History: Full audit trail of all alerts sent (30-day retention minimum)
- ✅ Acknowledgment Tracking: Who acknowledged alert, when, what action taken
- ✅ Snooze Functionality: Temporarily snooze non-critical alerts (1 hour, 4 hours, 1 day)
- ✅ Custom Alert Rules: Users can create custom threshold alerts (e.g., "Alert me if Item 41 < 15,000 kg")
- ✅ Alert Statistics: Dashboard showing alert frequency, average response time, escalation rate
- ✅ Mobile App Notifications: Push notifications to mobile devices for critical/high priority alerts
📊 Reporting & Analytics Dashboard Requirements
Overview
The MSA ERP system must provide comprehensive reporting and analytics capabilities covering inventory, financial, operational, and sales performance. Reports should be available in multiple formats (web dashboard, PDF export, Excel export) with customizable filters and date ranges.
1. Executive Dashboard (Home Screen)
Real-Time KPI Cards
| KPI Name | Calculation | Visual Format | Refresh Rate |
|---|---|---|---|
| Total Inventory Value | Sum of (Stock Qty × Landed Cost) for all items | Large card with $ value + trend arrow (vs. last month) | Real-time |
| Current Stock Level (Kg) | Sum of available stock across all warehouses | Large card with kg value + color indicator (green > 500,000 kg, yellow 250,000-500,000 kg, red < 250,000 kg) | Real-time |
| Pending Payments Due | Sum of unpaid/partially paid PI balances (70% payments) | Card with $ value + list of top 3 overdue invoices | Daily 6 AM |
| In-Transit Shipments | Count of CIs with status "Shipped" or "In Transit to Iran" | Card with count + mini map showing shipment locations | Every 6 hours |
| Monthly Sales Revenue | Sum of sales invoice total (current month) | Card with UZS value + comparison to last month (%) | Daily 6 AM |
| Gross Profit Margin | ((Sales Revenue - COGS) / Sales Revenue) × 100 | Card with % value + sparkline trend (last 6 months) | Daily 6 AM |
| Critical Alerts | Count of unacknowledged critical/high priority alerts | Red badge with count (clicking opens alert panel) | Real-time |
| Aging Stock Alert | Kg of stock > 12 months old | Warning card with kg value + "View Details" link | Daily 6 AM |
Executive Dashboard Charts
- 📈 Sales Trend (Last 12 Months): Line chart showing monthly sales revenue (UZS) with comparison to previous year
- 📦 Inventory Turnover: Bar chart showing COGS / Average Inventory by month (target: 6-8 turns/year)
- 🏭 Top 5 Vendors by Purchase Value: Horizontal bar chart showing total purchase $ (current year)
- 🥩 Top 10 Products by Sales Volume: Table with product name, kg sold, revenue, profit margin
- ⏰ Stock Aging Distribution: Pie chart showing % of stock in each aging category (Fresh, Good, Moderate, Old, Critical, Expired)
- 💰 Cash Flow Overview: Waterfall chart showing opening balance, inflows (sales), outflows (purchases, expenses), closing balance
2. Inventory Analytics Reports
A. Inventory Valuation Report
Purpose: Show total inventory value using FIFO method with breakdown by product, warehouse, and age.
Report Parameters:
- As of Date (default: today)
- Warehouse Filter (All, Main, Bektemir)
- Product Category Filter (All, specific category)
- Aging Filter (All, Fresh only, Aging stock only)
Report Columns:
| Column | Description | Calculation |
|---|---|---|
| Item Code | Product identifier | From Product master |
| Item Name | Product description | From Product master |
| Warehouse | Storage location | Main / Bektemir |
| Stock on Hand (Kg) | Available quantity | Sum from StockBalance table |
| Avg Age (Months) | Average stock age | Weighted average of batch ages |
| FIFO Unit Cost ($/Kg) | Cost per kg (oldest stock first) | From oldest batches in FIFO queue |
| Total Value ($) | Extended inventory value | Stock on Hand × FIFO Unit Cost |
| % of Total | Percentage of total inventory value | (Item Total Value / Grand Total) × 100 |
Report Totals:
- Grand Total Value ($): Sum of all item values
- Grand Total Weight (Kg): Sum of all stock quantities
- Weighted Average Cost ($/Kg): Grand Total Value / Grand Total Weight
Example Output:
═══════════════════════════════════════════════════════════════════════════════
📋 INVENTORY VALUATION REPORT (FIFO METHOD)
As of: 25.05.2025 Warehouse: All
═══════════════════════════════════════════════════════════════════════════════
Item Code | Item Name | WH | Stock (Kg) | Avg Age | Unit Cost | Total Value | %
───────────────────────────────────────────────────────────────────────────────────────────────────
41 | TOPSIDE (HQ CUTS) | Main | 18,450 | 4.2 mo | $3.95 | $72,878 | 12.5%
41 | TOPSIDE (HQ CUTS) | Bektemir| 12,300 | 7.8 mo | $3.78 | $46,494 | 8.0%
44 | SILVER SIDE (HQ CUTS) | Main | 22,180 | 3.5 mo | $3.91 | $86,724 | 14.9%
46 | THICK FLANK (HQ CUTS) | Main | 15,670 | 5.1 mo | $3.85 | $60,330 | 10.3%
48 | RUMP (HQ CUTS) | Bektemir| 8,940 | 9.2 mo | $3.70 | $33,078 | 5.7%
50 | STRIPLOIN (HQ CUTS) | Main | 6,220 | 2.8 mo | $4.12 | $25,626 | 4.4%
...
───────────────────────────────────────────────────────────────────────────────────────────────────
GRAND TOTAL: | 483,750 kg | | | $582,450 | 100%
Weighted Average Cost: $1.20/kg
═══════════════════════════════════════════════════════════════════════════════
B. Stock Movement Report
Purpose: Track all inventory movements (receipts, sales, transfers, adjustments) for a given period.
Report Parameters:
- Date Range (From Date, To Date)
- Product Filter (All, specific item code)
- Warehouse Filter (All, Main, Bektemir)
- Transaction Type Filter (All, GRN, Sales, Transfer, Adjustment)
Report Columns:
Date | Transaction Type | Reference | Product | Warehouse | In (Kg) | Out (Kg) | Balance (Kg) | User
Example Output:
═══════════════════════════════════════════════════════════════════════════════
📋 STOCK MOVEMENT REPORT
Product: Item 41 - TOPSIDE (HQ CUTS) Period: 01.05.2025 - 25.05.2025
═══════════════════════════════════════════════════════════════════════════════
Date | Type | Reference | Warehouse | In (Kg) | Out (Kg) | Balance | User
───────────────────────────────────────────────────────────────────────────────
01.05.2025 | Opening | - | Main | - | - | 15,200 | System
03.05.2025 | GRN | GRN-2025-088 | Main | 8,500 | - | 23,700 | Ravshan
08.05.2025 | Sales | SI-2025-451 | Main | - | 2,840 | 20,860 | Kamila
12.05.2025 | Transfer | STN-2025-012 | Main | - | 5,000 | 15,860 | Ravshan
12.05.2025 | Transfer | STN-2025-012 | Bektemir | 5,000 | - | 5,000 | Bektemir
15.05.2025 | Sales | SI-2025-478 | Main | - | 3,120 | 12,740 | Kamila
18.05.2025 | GRN | GRN-2025-094 | Main | 9,200 | - | 21,940 | Ravshan
22.05.2025 | Sales | SI-2025-501 | Bektemir | - | 1,890 | 3,110 | Kamila
25.05.2025 | Closing | - | Main | - | - | 21,940 | System
25.05.2025 | Closing | - | Bektemir | - | - | 3,110 | System
───────────────────────────────────────────────────────────────────────────────
TOTALS: | 22,700 | 12,850 | 25,050 |
═══════════════════════════════════════════════════════════════════════════════
C. Stock Aging Report
Purpose: Identify aging inventory requiring discounts, promotions, or write-offs.
Report Grouping:
By Aging Category: Fresh (0-3 mo), Good (3-6 mo), Moderate (6-9 mo), Old (9-12 mo), Critical (12-15 mo), Expired (15+ mo)
Report Columns:
| Column | Description |
|---|---|
| Item Code & Name | Product identifier and description |
| Batch Number | Batch/lot traceability code |
| GRN Date | Date batch was received |
| Age (Months) | Calculated from GRN date to report date |
| Stock (Kg) | Remaining quantity in batch |
| Value ($) | Batch value at landed cost |
| Recommended Action | Based on aging category (Promote, Discount, Emergency sale, Write-off) |
Example Output (Critical Stock Only):
═══════════════════════════════════════════════════════════════════════════════
🔴 CRITICAL AGING STOCK REPORT (12-15 MONTHS)
As of: 25.05.2025 Total Value: $47,890
═══════════════════════════════════════════════════════════════════════════════
Item | Batch | GRN Date | Age | Stock (Kg) | Value | Action
───────────────────────────────────────────────────────────────────────────────
44 | B-HMA-280324-44 | 28.03.2024 | 13.9 mo| 3,450 | $13,282 | 🔴 Emergency Sale 70% off
46 | B-HMA-150424-46 | 15.04.2024 | 13.3 mo| 2,780 | $10,453 | 🔴 Emergency Sale 75% off
48 | B-RME-050524-48 | 05.05.2024 | 12.7 mo| 4,120 | $15,248 | 🔴 Emergency Sale 70% off
50 | B-HMA-220424-50 | 22.04.2024 | 13.1 mo| 2,190 | $8,907 | 🔴 Emergency Sale 80% off
───────────────────────────────────────────────────────────────────────────────
TOTAL CRITICAL STOCK: | 12,540 kg | $47,890 |
═══════════════════════════════════════════════════════════════════════════════
⚠️ URGENT: These batches must be sold within 30 days to avoid expiry and total loss.
D. Reorder Point Analysis Report
Purpose: Monitor stock levels against reorder points to ensure timely procurement.
Report Logic:
- Show products where Current Stock ≤ Reorder Point
- Calculate suggested order quantity to bring stock to Max Level
- Consider in-transit shipments (PIs/CIs not yet received)
Report Columns:
Item | Current Stock | Reorder Point | Min Level | Max Level | In Transit | Suggested Order Qty | Priority
Example Output:
═══════════════════════════════════════════════════════════════════════════════
📋 REORDER POINT ANALYSIS
As of: 25.05.2025 Items Below Reorder Point: 6
═══════════════════════════════════════════════════════════════════════════════
Item | Current | Reorder | Min | Max | In Transit | Suggested | Priority
| Stock | Point | Level | Level | (PI/CI) | Order Qty |
───────────────────────────────────────────────────────────────────────────────
41 | 14,200 | 16,980 | 10,000| 30,000 | 8,500 | 7,300 | 🟡 Medium
44 | 8,450 | 15,200 | 9,000 | 28,000 | 0 | 19,550 | 🔴 High
46 | 11,890 | 14,500 | 8,500 | 26,000 | 9,200 | 5,910 | 🟡 Medium
48 | 6,120 | 12,800 | 7,000 | 24,000 | 0 | 17,880 | 🔴 High
50 | 4,890 | 8,200 | 5,000 | 18,000 | 6,000 | 7,110 | 🟢 Low
52 | 9,340 | 11,500 | 7,500 | 22,000 | 0 | 12,660 | 🔴 High
───────────────────────────────────────────────────────────────────────────────
⚠️ Immediate Action Required: 3 items at HIGH priority (current stock near min level)
Priority Logic:
- 🔴 High Priority: Current Stock < Min Level OR (Current Stock < Reorder Point AND In Transit = 0)
- 🟡 Medium Priority: Current Stock < Reorder Point AND In Transit > 0 (shipment coming)
- 🟢 Low Priority: Current Stock slightly below Reorder Point AND In Transit covers gap
3. Financial Reports
A. Profit & Loss Statement (P&L)
Report Parameters:
- Period: Month, Quarter, Year, Custom Date Range
- Comparison: None, Previous Period, Same Period Last Year
P&L Structure:
═══════════════════════════════════════════════════════════════════════════════
📊 PROFIT & LOSS STATEMENT
MSA Meat Trading LLC
Period: May 2025 Currency: USD (and UZS equivalent)
═══════════════════════════════════════════════════════════════════════════════
REVENUE:
Sales Revenue $285,450 12,845,250,000 UZS
Less: Sales Returns & Allowances ($3,220) (144,900,000) UZS
───────────────────────────────────────────────────────────────────────────
Net Sales Revenue $282,230 12,700,350,000 UZS
COST OF GOODS SOLD (COGS):
Opening Inventory (01.05.2025) $520,340 23,415,300,000 UZS
Add: Purchases (FOB + Freight + Duty) $127,890 5,755,050,000 UZS
Less: Closing Inventory (31.05.2025) ($582,450) (26,210,250,000) UZS
───────────────────────────────────────────────────────────────────────────
Total COGS $65,780 2,960,100,000 UZS
GROSS PROFIT $216,450 9,740,250,000 UZS
Gross Profit Margin 76.7%
OPERATING EXPENSES:
Warehouse Rent $4,500 202,500,000 UZS
Staff Salaries $8,200 369,000,000 UZS
Utilities (Electricity for Cold Storage) $2,890 130,050,000 UZS
Transportation & Logistics $3,450 155,250,000 UZS
Marketing & Promotions $1,200 54,000,000 UZS
Administrative Expenses $2,100 94,500,000 UZS
Bank Charges & Interest $890 40,050,000 UZS
Depreciation $1,450 65,250,000 UZS
───────────────────────────────────────────────────────────────────────────
Total Operating Expenses $24,680 1,110,600,000 UZS
OPERATING PROFIT (EBIT) $191,770 8,629,650,000 UZS
Operating Profit Margin 68.0%
OTHER INCOME/(EXPENSES):
Exchange Rate Gain/(Loss) $2,340 105,300,000 UZS
Miscellaneous Income $450 20,250,000 UZS
───────────────────────────────────────────────────────────────────────────
Total Other Income $2,790 125,550,000 UZS
NET PROFIT BEFORE TAX $194,560 8,755,200,000 UZS
Income Tax (15%) ($29,184) (1,313,280,000) UZS
NET PROFIT AFTER TAX $165,376 7,441,920,000 UZS
Net Profit Margin 58.6%
═══════════════════════════════════════════════════════════════════════════════
Exchange Rate Used: 1 USD = 45,000 UZS (average for May 2025)
B. Accounts Payable Aging Report
Report Purpose:
Track outstanding vendor payments by age to manage cash flow and vendor relationships.
Aging Buckets:
- Current (0-30 days)
- 31-60 days
- 61-90 days
- Over 90 days (Overdue)
Example Output:
═══════════════════════════════════════════════════════════════════════════════
📋 ACCOUNTS PAYABLE AGING REPORT
As of: 25.05.2025 Total Outstanding: $89,450
═══════════════════════════════════════════════════════════════════════════════
Vendor | Invoice | Invoice | Due Date | Current | 31-60 | 61-90 | >90 Days
| Number | Date | | (0-30) | Days | Days | (Overdue)
───────────────────────────────────────────────────────────────────────────────
HMA AGRO | MH/104/25-26 | 21.04.25 | 28.05.25 | $21,322 | - | - | -
HMA AGRO | MH/098/25-26 | 05.04.25 | 12.05.25 | - | $18,450| - | -
RADHEY MEAT | RME/2025/078 | 15.03.25 | 22.04.25 | - | - | $14,670| -
HMA AGRO | MH/085/24-25 | 28.02.25 | 07.04.25 | - | - | - | $12,890
STAR FROZEN | SFE/CI/2025 | 10.04.25 | 17.05.25 | - | $11,230| - | -
RADHEY MEAT | RME/2025/065 | 22.03.25 | 29.04.25 | - | - | $10,888| -
───────────────────────────────────────────────────────────────────────────────
TOTALS: | $21,322 | $29,680| $25,558| $12,890
% of Total: | 23.8% | 33.2% | 28.6% | 14.4%
═══════════════════════════════════════════════════════════════════════════════
⚠️ Overdue Amount: $12,890 (14.4%) - Contact vendor HMA AGRO immediately
C. Cash Flow Statement
Report Structure:
═══════════════════════════════════════════════════════════════════════════════
💵 CASH FLOW STATEMENT
MSA Meat Trading LLC
Period: May 2025 Currency: USD
═══════════════════════════════════════════════════════════════════════════════
CASH FLOWS FROM OPERATING ACTIVITIES:
Cash Received from Customers $278,940
Cash Paid to Suppliers (Vendor Payments) ($115,670)
Cash Paid for Operating Expenses ($24,680)
Interest Paid ($890)
─────────────────────────────────────────────────────────────────────────
Net Cash from Operating Activities $137,700
CASH FLOWS FROM INVESTING ACTIVITIES:
Purchase of Cold Storage Equipment ($15,000)
Sale of Old Equipment $2,500
─────────────────────────────────────────────────────────────────────────
Net Cash from Investing Activities ($12,500)
CASH FLOWS FROM FINANCING ACTIVITIES:
Bank Loan Proceeds $0
Loan Repayments ($5,200)
Owner's Drawings ($30,000)
─────────────────────────────────────────────────────────────────────────
Net Cash from Financing Activities ($35,200)
NET INCREASE/(DECREASE) IN CASH $90,000
CASH AT BEGINNING OF PERIOD (01.05.2025) $185,340
CASH AT END OF PERIOD (31.05.2025) $275,340
═══════════════════════════════════════════════════════════════════════════════
4. Operational Reports
A. Shipment Tracking Report
Report Purpose:
Monitor status of all shipments from vendor dispatch to warehouse arrival.
Report Filters:
- Status Filter: All, In Transit, At Port, Arrived, Delayed
- Vendor Filter: All vendors or specific vendor
- Date Range: PI Date, Expected Arrival Date
Report Columns:
PI Number | CI Number | Vendor | Departure Date | Expected Arrival | Actual Arrival | Status | Days in Transit | Container Number
Example Output:
═══════════════════════════════════════════════════════════════════════════════
🚢 SHIPMENT TRACKING REPORT
As of: 25.05.2025 Active Shipments: 8
═══════════════════════════════════════════════════════════════════════════════
PI Number | CI Number | Vendor | Departure | Expected | Status | Days
| | | (India) | Arrival | | Transit
───────────────────────────────────────────────────────────────────────────────────────────────
HMA/PI/2677 | MH/104/25-26 | HMA AGRO | 21.04.2025 | 10.06.2025 | ✅ Arrived (28.05) | 37
HMA/PI/2680 | MH/108/25-26 | HMA AGRO | 05.05.2025 | 24.06.2025 | 🚢 In Transit | 20
RME/PI/078 | RME/CI/078 | RADHEY | 12.05.2025 | 01.07.2025 | 🚢 In Transit | 13
SFE/PI/2025-12 | SFE/CI/2025 | STAR | 18.05.2025 | 07.07.2025 | 🚢 In Transit | 7
HMA/PI/2685 | Pending | HMA AGRO | TBD | TBD | ⏳ Awaiting CI | -
───────────────────────────────────────────────────────────────────────────────────────────────
🔴 DELAYED SHIPMENTS (None)
🟡 AT RISK (Expected arrival in next 7 days): 0
B. Vendor Performance Scorecard
Report Purpose:
Evaluate vendor performance across quality, delivery, pricing, and compliance metrics.
Scorecard Metrics:
| Metric Category | Metric | Calculation | Weight |
|---|---|---|---|
| Quality (30%) | Rejection Rate | (Rejected Qty / Total Shipped Qty) × 100 | 15% |
| Claim Frequency | Number of claims per 100 shipments | 15% | |
| Delivery (30%) | On-Time Delivery | (Shipments delivered on/before due date / Total shipments) × 100 | 20% |
| Lead Time Accuracy | Average deviation from promised lead time (days) | 10% | |
| Pricing (20%) | Price Competitiveness | Vendor avg price vs. market avg price (%) | 15% |
| Price Stability | Standard deviation of price changes over 6 months | 5% | |
| Compliance (20%) | Documentation Accuracy | (Shipments with complete & accurate docs / Total) × 100 | 10% |
| Certificate Compliance | (Shipments with valid Halal/Health certs / Total) × 100 | 10% |
Example Vendor Scorecard:
═══════════════════════════════════════════════════════════════════════════════
⭐ VENDOR PERFORMANCE SCORECARD
Vendor: HMA AGRO INDUSTRIES LIMITED Period: Last 12 Months
═══════════════════════════════════════════════════════════════════════════════
QUALITY METRICS (30%):
Rejection Rate: 1.2% Score: 95/100 ⭐⭐⭐⭐⭐
Claim Frequency: 2 claims per 100 shipments Score: 92/100 ⭐⭐⭐⭐⭐
──────────────────────────────────────────────────────────────────────
Quality Score: 93.5/100 (Weight: 30%) Weighted: 28.05
DELIVERY METRICS (30%):
On-Time Delivery: 87% Score: 87/100 ⭐⭐⭐⭐
Lead Time Accuracy: +3 days avg deviation Score: 82/100 ⭐⭐⭐⭐
──────────────────────────────────────────────────────────────────────
Delivery Score: 85.4/100 (Weight: 30%) Weighted: 25.62
PRICING METRICS (20%):
Price Competitiveness: 2% below market avg Score: 102/100 ⭐⭐⭐⭐⭐
Price Stability: Low volatility (SD: $0.08/kg) Score: 95/100 ⭐⭐⭐⭐⭐
──────────────────────────────────────────────────────────────────────
Pricing Score: 99.5/100 (Weight: 20%) Weighted: 19.90
COMPLIANCE METRICS (20%):
Documentation Accuracy: 98% Score: 98/100 ⭐⭐⭐⭐⭐
Certificate Compliance: 100% Score: 100/100 ⭐⭐⭐⭐⭐
──────────────────────────────────────────────────────────────────────
Compliance Score: 99.0/100 (Weight: 20%) Weighted: 19.80
═══════════════════════════════════════════════════════════════════════════════
OVERALL VENDOR SCORE: 93.37/100 Rating: ⭐⭐⭐⭐⭐ (Excellent)
═══════════════════════════════════════════════════════════════════════════════
Rating Scale:
90-100: ⭐⭐⭐⭐⭐ Excellent (Preferred Vendor)
80-89: ⭐⭐⭐⭐ Good (Approved Vendor)
70-79: ⭐⭐⭐ Fair (Conditional Approval - Improvement Required)
Below 70: ⭐⭐ Poor (Consider Replacement)
C. GRN vs CI Variance Report
Report Purpose:
Identify discrepancies between what was shipped (CI) and what was received (GRN/Truck).
Report Filters:
- Date Range (GRN Date)
- Variance Threshold (Show only variances > X%)
- Vendor Filter
Example Output:
═══════════════════════════════════════════════════════════════════════════════
📋 GRN vs CI VARIANCE REPORT
Period: May 2025 Shipments with Variance: 3
═══════════════════════════════════════════════════════════════════════════════
CI Number | Item | CI Qty | GRN Qty | Variance | Variance | Reason | Action
| Code | (Boxes) | (Boxes) | (Boxes) | (%) | | Taken
───────────────────────────────────────────────────────────────────────────────
MH/104/25-26 | 44 | 896 | 840 | -56 | -6.25% | Shortage | Claim Filed
MH/108/25-26 | 41 | 425 | 430 | +5 | +1.18% | Packing Error | Vendor Notified
RME/CI/078 | 46 | 658 | 645 | -13 | -1.98% | Shortage | Under Investigation
───────────────────────────────────────────────────────────────────────────────
Total Boxes Shipped: 1,979 Total Boxes Received: 1,915 Net Variance: -64 (-3.23%)
Total Value of Variance: $2,380 (shortage)
═══════════════════════════════════════════════════════════════════════════════
⚠️ Note: Variances > 2% require vendor claim. Variances < 2% logged for trend analysis.
5. Sales Analytics Reports
A. Sales by Product Report
Report Parameters:
- Date Range (Month, Quarter, Year, Custom)
- Product Category Filter
- Sort By: Revenue, Quantity, Profit Margin
Report Columns:
Item Code | Item Name | Qty Sold (Kg) | Revenue (UZS) | COGS (USD) | Gross Profit (UZS) | Margin (%) | % of Total Sales
Example Output:
═══════════════════════════════════════════════════════════════════════════════
📊 SALES BY PRODUCT REPORT
Period: May 2025 Total Sales: 12,700,350,000 UZS
═══════════════════════════════════════════════════════════════════════════════
Item | Item Name | Qty Sold | Revenue | COGS | Gross Profit | Margin | % Sales
Code | | (Kg) | (UZS) | (USD) | (UZS) | (%) |
───────────────────────────────────────────────────────────────────────────────────────────────
44 | SILVER SIDE (HQ) | 18,450 | 3,228,000,000 | $14,670 | 2,568,000,000 | 79.5% | 25.4%
41 | TOPSIDE (HQ) | 16,780 | 2,854,200,000 | $13,230 | 2,259,000,000 | 79.1% | 22.5%
46 | THICK FLANK (HQ) | 14,220 | 2,412,600,000 | $10,890 | 1,922,400,000 | 79.7% | 19.0%
50 | STRIPLOIN (HQ) | 8,940 | 1,651,800,000 | $7,340 | 1,321,200,000 | 80.0% | 13.0%
48 | RUMP (HQ) | 7,330 | 1,283,100,000 | $5,560 | 1,032,900,000 | 80.5% | 10.1%
...
───────────────────────────────────────────────────────────────────────────────────────────────
TOTAL: | 78,450 | 12,700,350,000 | $65,780 | 9,740,250,000 | 76.7% | 100%
═══════════════════════════════════════════════════════════════════════════════
Top Performer: Item 44 (SILVER SIDE) - Highest revenue and margin
Slow Mover: Items with <1,000 kg sales - Consider promotions
B. Customer Sales Analysis
Report Purpose:
Analyze sales performance by customer including revenue, payment behavior, and profitability.
Report Columns:
Customer Name | Total Sales (UZS) | Avg Order Size (Kg) | Order Frequency | Payment Terms | Avg Days to Pay | Profit Margin (%)
Example Output:
═══════════════════════════════════════════════════════════════════════════════
📊 CUSTOMER SALES ANALYSIS
Period: May 2025 Total Customers: 47 Active: 38
═══════════════════════════════════════════════════════════════════════════════
Customer Name | Sales (UZS) | Avg Order | Orders | Payment | Avg | Margin
| | (Kg) | (Count)| Terms | Days | (%)
───────────────────────────────────────────────────────────────────────────────
Tashkent Hypermarket | 2,450,000,000 | 2,840 | 12 | Net 30 | 28 | 18.5%
Samarkand Distributors | 1,890,000,000 | 3,120 | 8 | Net 45 | 42 | 20.2%
Bukhara Food Co. | 1,670,000,000 | 2,180 | 10 | Net 30 | 31 | 19.8%
Fergana Meat Traders | 1,230,000,000 | 1,950 | 9 | COD | 0 | 22.1%
...
───────────────────────────────────────────────────────────────────────────────
TOTAL: | 12,700,350,000 | 2,450 | 142 | - | 25 | 20.5%
═══════════════════════════════════════════════════════════════════════════════
🏆 Top Customer: Tashkent Hypermarket (19.3% of total sales)
💰 Most Profitable: Fergana Meat Traders (22.1% margin, COD payment)
⚠️ Payment Risk: 3 customers averaging >45 days to pay (credit limit review recommended)
6. Custom Report Builder
Report Builder Requirements
Allow power users to create ad-hoc reports without developer intervention.
Features:
- Data Source Selection: Choose from predefined tables (Products, Vendors, Invoices, Stock, Sales, etc.)
- Column Selection: Drag-and-drop interface to select columns to display
- Filter Builder: Visual filter builder (e.g., "Stock Qty > 10000 AND Age > 6 months")
- Grouping & Aggregation: Group by fields (e.g., Vendor, Product Category) with SUM, AVG, COUNT, MIN, MAX
- Sorting: Multi-level sorting (e.g., Sort by Vendor ASC, then by Date DESC)
- Calculated Fields: Create custom calculations (e.g., "Margin % = (Revenue - COGS) / Revenue * 100")
- Export Options: Export to PDF, Excel, CSV
- Save & Share: Save report templates and share with other users
- Schedule Reports: Auto-generate and email reports daily/weekly/monthly
Example Use Case:
User wants to create a report showing "All products from HMA AGRO vendor with stock > 12 months old,
sorted by stock value descending, showing Item Code, Name, Stock Qty, Age, and Value"
Report Builder Steps:
- Select Data Source: "Inventory with Product and Vendor"
- Add Columns: Item Code, Item Name, Stock Qty (Kg), Age (Months), Stock Value ($)
- Add Filters: Vendor = "HMA AGRO" AND Age > 12
- Add Sorting: Stock Value (DESC)
- Preview Report → Generate → Export to Excel
7. Dashboard Data Visualization Requirements
Chart Types & Use Cases
| Chart Type | Use Case | Example |
|---|---|---|
| Line Chart | Trends over time | Monthly sales revenue (last 12 months) |
| Bar Chart | Comparisons across categories | Sales by product category |
| Pie Chart | Composition/percentage breakdown | Stock aging distribution (Fresh vs Old vs Critical) |
| Stacked Bar Chart | Multi-level comparisons | Sales by product by warehouse |
| Gauge Chart | KPI against target | Inventory turnover (actual vs target 6 turns/year) |
| Heat Map | Identify patterns in matrix data | Sales by product by month (12 months × 50 products) |
| Waterfall Chart | Show cumulative effect of sequential values | Cash flow (opening + inflows - outflows = closing) |
| Sparkline | Inline trend indicator | Small trend chart next to KPI card (e.g., Sales trend last 7 days) |
Dashboard Interactivity Requirements
- Drill-Down: Click on chart element to see detailed data (e.g., click on "May Sales" bar → see daily breakdown)
- Filter Sync: Applying filter on one chart updates all related charts on dashboard
- Date Range Selector: Global date range picker affecting all dashboard widgets
- Export Chart: Export individual charts as PNG or PDF
- Refresh Data: Manual refresh button + auto-refresh option (every 5 min, 15 min, 1 hour)
- Compare Mode: Toggle to compare current period vs. previous period or vs. budget
- Alert Triggers: Set alerts directly from charts (e.g., "Alert me if this KPI drops below X")
8. Report Export & Distribution
Export Formats
| Format | Use Case | Requirements |
|---|---|---|
| Professional reports for management/investors | Include company logo, header/footer, page numbers, table of contents for multi-page reports | |
| Excel (.xlsx) | Data analysis, pivoting, further calculations | Include formulas, formatting, multiple sheets for complex reports |
| CSV | Import into external systems, simple data transfer | UTF-8 encoding, comma delimiter, quoted text fields |
| JSON | API integration, programmatic access | Structured data format for developers |
Scheduled Report Distribution
Feature: Automatically generate and email reports on a schedule.
Configuration Options:
- Report Template: Select saved report template
- Schedule Frequency: Daily (8 AM), Weekly (Monday 8 AM), Monthly (1st of month 8 AM), Quarterly
- Recipients: Email addresses or user groups (e.g., "Finance Team", "Management")
- Format: PDF, Excel, or both
- Subject & Message: Customize email subject and body text
- Filters: Apply date range filters automatically (e.g., "Last Month", "Last Quarter")
Example Scheduled Report:
Report Name: Monthly Financial Summary
Schedule: 1st of every month at 8:00 AM
Recipients: finance@msameat.uz, ceo@msameat.uz
Format: PDF
Filters: Previous Month (auto-calculated)
Includes: P&L Statement, Cash Flow, Inventory Valuation, AP Aging
9. Report Performance & Optimization
Performance Requirements
| Report Type | Max Load Time | Optimization Strategy |
|---|---|---|
| Dashboard KPI Cards | < 2 seconds | Cache results, update every 5 minutes |
| Simple List Reports (< 1000 rows) | < 3 seconds | Direct database query with indexing |
| Complex Analytical Reports | < 10 seconds | Pre-aggregated summary tables, incremental updates |
| Large Export (> 10,000 rows) | Background job | Queue export job, email link to download when ready |
Optimization Techniques:
- Database Indexing: Index frequently queried columns (productId, vendorId, date fields)
- Materialized Views: Pre-calculate complex aggregations (e.g., monthly sales summary)
- Caching: Cache dashboard data for 5-15 minutes depending on data volatility
- Pagination: Load large reports in pages (50-100 rows per page)
- Lazy Loading: Load chart data only when chart becomes visible on screen
- Background Jobs: For heavy exports, run in background and notify user when complete
10. Report Access Control
Role-Based Report Access
| User Role | Accessible Reports |
|---|---|
| CEO / General Manager | ALL reports (full access) |
| Finance Manager | All financial reports (P&L, Balance Sheet, Cash Flow, AP Aging, Vendor Payments) |
| Operations Manager | Inventory reports, Shipment tracking, GRN reports, Stock aging, Vendor performance |
| Sales Manager | Sales reports, Customer analysis, Product performance, Pricing reports |
| Warehouse Staff | Stock balance, GRN reports, Stock transfers (LIMITED: cannot see financial data) |
| Accountant | Financial reports, AP aging, Payment tracking (NO access to inventory/operations) |
Data Filtering by Role:
- Vendor-Specific Users: Vendors can only see reports for their own data (their PIs, CIs, payments)
- Warehouse-Specific Users: Warehouse staff can only see stock/GRN data for their assigned warehouse
- Sensitive Financial Data: Hide COGS, profit margins from non-finance users (show revenue only)
👥 User Roles & Permissions Framework
Overview
The MSA ERP system implements a role-based access control (RBAC) model to ensure data security, operational integrity, and compliance with business processes. Each user is assigned one or more roles, and each role has specific permissions governing what actions they can perform and what data they can access.
1. Core System Roles
A. CEO / General Manager (Super Admin)
Access Level: FULL ACCESS - All Modules
| Module | Permissions | Restrictions |
|---|---|---|
| All Modules | Create, Read, Update, Delete (CRUD) on all data | None |
| User Management | Create/edit users, assign roles, reset passwords, deactivate accounts | None |
| System Settings | Configure system parameters, exchange rates, tax rates, approval workflows | None |
| Financial Data | View all financial reports including P&L, cash flow, profit margins, COGS | None |
| Audit Logs | View all system audit logs and user activity history | None |
Dashboard View:
- Executive Dashboard with all KPIs (revenue, profit, inventory value, cash flow)
- Real-time alerts and notifications (all priority levels)
- Performance scorecards (vendor, sales, operational)
- Strategic analytics and trend analysis
B. Finance Manager
Access Level: FULL FINANCIAL + VENDOR MANAGEMENT
| Module | Permissions | Restrictions |
|---|---|---|
| Proforma Invoices (PI) | Create, edit, approve, delete PIs; Record 30% advance payments | Cannot create PIs for unapproved vendors |
| Commercial Invoices (CI) | View, edit, verify against PIs | Cannot delete CIs after GRN created |
| Vendor Payments | Record payments, manage payment schedules, process 70% balance payments | Payments > $50,000 require CEO approval |
| Financial Reports | Generate and view all financial reports (P&L, Balance Sheet, Cash Flow, AP Aging) | Cannot modify closed accounting periods |
| Vendor Management | Create, edit, approve vendor records; Manage vendor contracts and pricing | Cannot delete vendors with active PIs/CIs |
| Inventory Valuation | View inventory valuation reports, FIFO calculations, landed cost breakdowns | Read-only access (cannot modify stock) |
| Claims & Disputes | Review claims, approve/reject claim resolutions, process vendor credits/debits | Cannot create claims (only review/approve) |
Dashboard View:
- Financial KPI cards (cash position, pending payments, overdue invoices)
- AP aging summary
- Payment due alerts (high priority)
- Exchange rate tracking
- Vendor payment history
C. Operations Manager
Access Level: FULL OPERATIONS + INVENTORY + SHIPMENT TRACKING
| Module | Permissions | Restrictions |
|---|---|---|
| Proforma Invoices (PI) | Create, edit PIs; Initiate procurement requests | Cannot approve final PIs (requires Finance Manager approval) |
| Commercial Invoices (CI) | View, track, update shipment status; Verify documents | Cannot edit CI financial details (prices, totals) |
| Shipment Tracking | Update container status, track shipments, manage logistics coordination | None |
| Goods Receipt (GRN) | Create GRNs, verify quantities, record discrepancies, approve warehouse entries | Cannot modify GRNs after 24 hours (requires CEO approval) |
| Inventory Management | View stock levels, aging reports, reorder point analysis; Initiate stock transfers | Cannot create stock adjustments > 100 kg (requires CEO approval) |
| Quality Control | Create rejections, record quality issues, manage temperature logs | None |
| Claims Management | Create claims for quantity shortages, quality issues, documentation errors | Cannot approve claim resolutions (Finance Manager approval required) |
| Vendor Performance | View vendor scorecards, delivery performance, quality metrics | Read-only access (cannot modify vendor data) |
Dashboard View:
- Inventory KPI cards (stock levels, aging alerts, reorder points)
- In-transit shipments tracker
- Temperature breach alerts (critical priority)
- GRN vs CI variance summary
- Vendor performance scorecard
D. Sales Manager
Access Level: FULL SALES + CUSTOMER MANAGEMENT + PRICING
| Module | Permissions | Restrictions |
|---|---|---|
| Sales Orders | Create, edit, approve sales orders; Manage pricing and discounts | Discounts > 15% require CEO approval |
| Customer Management | Create, edit customer records; Manage customer pricing, payment terms, credit limits | Cannot delete customers with active orders |
| Sales Invoices | Create, edit, send sales invoices; Record customer payments | Cannot modify invoices after customer confirmation |
| Inventory Availability | View real-time stock levels, aging, reserved stock | Read-only access (cannot modify stock) |
| Pricing Management | Set and update customer pricing based on landed cost + markup | Cannot price below cost (system enforced minimum margin: 15%) |
| Sales Reports | Generate sales by product, customer, period; View profit margins | Cannot view purchase costs or vendor details |
| Returns & Rejections | Process customer returns, create credit notes | Returns > $5,000 require Finance Manager approval |
Dashboard View:
- Sales KPI cards (monthly revenue, top customers, active orders)
- Product availability (stock levels for sales planning)
- Aging stock alerts (promotions/discounts opportunity)
- Customer payment status
- Sales trend charts (last 12 months)
E. Warehouse Manager (Main / Bektemir)
Access Level: FULL WAREHOUSE OPERATIONS (ASSIGNED LOCATION ONLY)
| Module | Permissions | Restrictions |
|---|---|---|
| Goods Receipt (GRN) | Create GRNs for assigned warehouse, verify quantities, record temperature at delivery | Can only create GRNs for their assigned warehouse |
| Inventory Stock | View stock levels, batch details, expiry tracking for assigned warehouse | Cannot view other warehouse stock (unless given multi-warehouse access) |
| Stock Transfers | Create transfer requests FROM their warehouse, receive transfers TO their warehouse | Transfers > 5,000 kg require Operations Manager approval |
| Stock Adjustments | Create adjustment requests for damaged, expired, or missing stock | All adjustments require Operations Manager approval |
| Sales Fulfillment | Pick, pack, ship sales orders from assigned warehouse; Record dispatch | Cannot ship if stock unavailable (system enforced) |
| Quality Control | Record temperature logs (3x daily), document quality issues, create rejection notices | None |
| Warehouse Reports | Generate stock movement reports, GRN logs, temperature logs for assigned warehouse | Cannot access financial reports or vendor data |
Dashboard View:
- Warehouse-specific stock levels
- Pending GRNs (expected arrivals)
- Temperature alerts for assigned warehouse
- Outbound sales orders (pick/pack queue)
- Stock aging summary (for their warehouse)
F. Accountant
Access Level: FINANCIAL DATA ENTRY + REPORTING
| Module | Permissions | Restrictions |
|---|---|---|
| Accounts Payable | Record vendor invoices, match PIs/CIs, track payment due dates | Cannot approve payments (Finance Manager approval required) |
| Accounts Receivable | Record customer payments, generate invoices, track aging | Cannot approve credit notes > $1,000 |
| Journal Entries | Create manual journal entries for corrections, accruals, prepayments | All manual entries require Finance Manager approval |
| Bank Reconciliation | Reconcile bank statements, match transactions, resolve discrepancies | Cannot modify reconciled periods |
| Financial Reports | Generate all financial reports, export to Excel/PDF | Read-only access (cannot modify closed periods) |
| Inventory Valuation | View inventory valuation, FIFO calculations for month-end closing | Cannot modify stock quantities or costs |
Dashboard View:
- AP aging summary (payments due in next 7/30/60 days)
- AR aging summary (customer payment status)
- Cash position (bank balances)
- Unreconciled transactions
- Pending approvals (journal entries, credit notes)
G. Warehouse Staff
Access Level: LIMITED WAREHOUSE OPERATIONS (DATA ENTRY ONLY)
| Module | Permissions | Restrictions |
|---|---|---|
| Goods Receipt (GRN) | Create GRN records, enter box counts, record temperature | Cannot approve GRNs (Warehouse Manager approval required) |
| Stock View | View current stock levels for assigned warehouse | Cannot view stock value or costs |
| Sales Dispatch | Record sales dispatch, scan barcodes, confirm delivery | Cannot create sales orders (only fulfill existing orders) |
| Temperature Logs | Record daily temperature readings (3x daily) | Cannot modify historical temperature data |
Dashboard View:
- Today's tasks (GRNs to process, orders to dispatch)
- Stock levels (basic view, no financial data)
- Temperature log entry form
H. Vendor Portal User (External)
Access Level: VENDOR-SPECIFIC DATA ONLY (READ-MOSTLY)
| Module | Permissions | Restrictions |
|---|---|---|
| Proforma Invoices | View PIs created for their company, download PDF | Can only see their own PIs (not other vendors) |
| Commercial Invoices | Upload CI documents, view shipment status | Can only upload CIs linked to their approved PIs |
| Payment Status | View payment history (30% advance, 70% balance), download payment receipts | Cannot see other vendors' payment data |
| Claims & Disputes | View claims filed against their shipments, respond with documentation, track resolution | Cannot view claims for other vendors |
| Performance Scorecard | View their own vendor scorecard (quality, delivery, pricing, compliance metrics) | Cannot see other vendors' scores |
Dashboard View:
- Active PIs and shipment status
- Pending payments and payment history
- Open claims (requiring vendor response)
- Performance scorecard summary
2. Permission Matrix
Module-Level Permissions
The table below shows permissions by role across all modules. Legend:
- C = Create (add new records)
- R = Read (view data)
- U = Update (edit existing records)
- D = Delete (remove records)
- A = Approve (approve workflow actions)
- - = No Access
| Module / Feature | CEO | Finance Mgr | Ops Mgr | Sales Mgr | Warehouse Mgr | Accountant | Warehouse Staff | Vendor |
|---|---|---|---|---|---|---|---|---|
| Vendors Master | CRUDA | CRUDA | R | R | R | R | - | R (own) |
| Products Master | CRUDA | CRU | CRU | RU | R | R | R | R |
| Proforma Invoices (PI) | CRUDA | CRUDA | CRU | R | R | R | - | R (own) |
| Commercial Invoices (CI) | CRUDA | CRUDA | CRU | R | R | R | - | CR (own) |
| Goods Receipt Notes (GRN) | CRUDA | R | CRUDA | R | CRUA | R | CR | - |
| Inventory Stock | CRUDA | R | CRUA | R | CRU | R | R | - |
| Stock Transfers | CRUDA | R | CRUDA | R | CRUA | R | R | - |
| Stock Adjustments | CRUDA | RA | CRUDA | - | CR | R | - | - |
| Sales Orders | CRUDA | R | R | CRUDA | R | R | R | - |
| Sales Invoices | CRUDA | RUA | R | CRUDA | R | CRU | - | - |
| Customers | CRUDA | RU | R | CRUDA | R | R | - | - |
| Vendor Payments | CRUDA | CRUDA | R | - | - | CR | - | R (own) |
| Customer Payments | CRUDA | CRUDA | R | CRU | - | CRU | - | - |
| Claims & Disputes | CRUDA | CRUDA | CRU | R | R | R | - | R (own) |
| Returns & Rejections | CRUDA | CRUDA | CRUA | CRU | CRU | R | R | - |
| Financial Reports | R | R | - | R (limited) | - | R | - | - |
| Inventory Reports | R | R | R | R | R (own WH) | R | R (own WH) | - |
| Sales Reports | R | R | R | R | - | R | - | - |
| Vendor Performance | R | R | R | - | - | - | - | R (own) |
| User Management | CRUDA | R | R | - | - | - | - | - |
| System Settings | CRUDA | RU | R | - | - | - | - | - |
| Audit Logs | R | R | R | - | - | R | - | - |
3. Data Filtering & Row-Level Security
Warehouse-Specific Data Filtering
Warehouse Managers and Staff can only access data for their assigned warehouse(s):
Implementation:
-- User table includes assigned warehouse
User {
id: uuid
username: string
role: string
assignedWarehouse: 'Main' | 'Bektemir' | 'All' (for CEO/Ops Manager)
}
-- All inventory queries filtered by user's warehouse
SELECT * FROM stock_balance
WHERE warehouse = getCurrentUser().assignedWarehouse
OR getCurrentUser().assignedWarehouse = 'All'
Affected Modules:
- Stock Balance (only show stock in assigned warehouse)
- GRN List (only GRNs for assigned warehouse)
- Stock Transfers (can only transfer FROM assigned warehouse)
- Temperature Logs (only for assigned warehouse)
- Stock Aging Reports (filtered by warehouse)
Vendor-Specific Data Filtering
Vendor Portal Users can only access data related to their company:
Implementation:
-- User table links to vendor
User {
id: uuid
username: string
role: 'Vendor'
vendorId: uuid (foreign key to Vendor table)
}
-- All PI/CI queries filtered by vendor
SELECT * FROM proforma_invoices
WHERE vendorId = getCurrentUser().vendorId
Affected Modules:
- Proforma Invoices (only their PIs)
- Commercial Invoices (only their CIs)
- Payments (only payments to their company)
- Claims (only claims filed against their shipments)
- Performance Scorecard (only their own scores)
Financial Data Masking
Sensitive financial data is hidden from non-finance users:
| Field | Visible To | Hidden From |
|---|---|---|
| Purchase Cost (FOB, Freight, Duty) | CEO, Finance Manager, Accountant | Sales Manager, Warehouse Manager/Staff, Vendor |
| Landed Cost per Kg | CEO, Finance Manager, Operations Manager, Accountant | Sales Manager (sees sales price only), Warehouse Staff, Vendor |
| Profit Margin (%) | CEO, Finance Manager, Sales Manager | Operations Manager, Warehouse Manager/Staff, Accountant, Vendor |
| COGS (Cost of Goods Sold) | CEO, Finance Manager, Accountant | All other roles |
| Customer Payment Terms & Credit Limits | CEO, Finance Manager, Sales Manager, Accountant | Operations Manager, Warehouse Manager/Staff, Vendor |
Example: Sales Manager viewing inventory
Item 41 - TOPSIDE (HQ CUTS)
Stock Available: 18,450 kg
Average Age: 4.2 months
Suggested Retail Price: 220,000 UZS/kg (Sales Manager sees this)
Purchase Cost: $3.95/kg (HIDDEN - Sales Manager does NOT see this)
Profit Margin: 18.5% (Sales Manager sees this)
4. Approval Workflows & Limits
Transaction Approval Thresholds
| Transaction Type | Approval Required When | Approver |
|---|---|---|
| Proforma Invoice (PI) | PI value > $30,000 | Finance Manager + CEO |
| Vendor Payment | Payment > $50,000 | CEO (Finance Manager can approve up to $50k) |
| Stock Adjustment | Adjustment > 100 kg OR value > $500 | Operations Manager (Warehouse Manager can approve up to 100 kg) |
| Sales Discount | Discount > 15% | CEO (Sales Manager can approve up to 15%) |
| Customer Return | Return value > $5,000 | Finance Manager (Sales Manager can approve up to $5k) |
| Claim Resolution | Claim amount > $2,000 | Finance Manager (Operations Manager can approve up to $2k) |
| GRN Modification | GRN created > 24 hours ago | CEO (cannot be modified without CEO approval) |
| Stock Transfer | Transfer > 5,000 kg | Operations Manager (Warehouse Manager can approve up to 5,000 kg) |
| Manual Journal Entry | All manual entries | Finance Manager (Accountant creates, Finance Manager approves) |
Approval Status Workflow:
- Draft: User creates transaction (not yet submitted)
- Pending Approval: User submits transaction for approval
- Approved: Approver reviews and approves transaction
- Rejected: Approver rejects transaction with reason
- Completed: Transaction processed and finalized
Example: $65,000 PI Approval Flow
1. Operations Manager creates PI for $65,000 → Status: DRAFT
2. Operations Manager submits for approval → Status: PENDING APPROVAL (Finance Manager)
3. Finance Manager reviews and approves → Status: PENDING APPROVAL (CEO) [because > $30k]
4. CEO reviews and approves → Status: APPROVED
5. Finance Manager records 30% payment → Status: COMPLETED (Active PI)
5. Audit Logging & User Activity Tracking
Audit Log Requirements
All user actions must be logged for compliance, security, and accountability.
Audit Log Table Structure:
AuditLog {
id: uuid
timestamp: datetime
userId: uuid (who performed the action)
userName: string
userRole: string
action: string (CREATE, UPDATE, DELETE, APPROVE, REJECT, LOGIN, LOGOUT)
module: string (PI, CI, GRN, Stock, Payment, etc.)
recordId: uuid (ID of the affected record)
recordType: string (ProformaInvoice, GoodsReceipt, etc.)
oldValues: json (before update)
newValues: json (after update)
ipAddress: string
userAgent: string
notes: string (optional, e.g., rejection reason)
}
Actions Requiring Audit Log:
| Action Type | Examples |
|---|---|
| Authentication | Login, Logout, Failed login attempts, Password resets |
| Data Modifications | Create/Edit/Delete PIs, CIs, GRNs, Stock Adjustments, Sales Orders |
| Financial Transactions | Record payments, Create journal entries, Approve claims |
| Approvals | Approve/Reject PIs, Payments, Stock Adjustments, Claims |
| Sensitive Data Access | View financial reports, Export vendor payment data, View profit margins |
| User Management | Create/Deactivate users, Change user roles, Reset passwords |
| System Settings | Change exchange rates, Modify tax rates, Update approval thresholds |
Example Audit Log Entry:
{
"id": "a3f8c2e1-4d9b-4c7a-8f2e-1b5d6c9a3e4f",
"timestamp": "2025-05-25T14:32:18Z",
"userId": "f6d8a2c1-9e3b-4f7c-a8d2-5c1b9e4a7f3d",
"userName": "Kamila Rashidova",
"userRole": "Finance Manager",
"action": "APPROVE",
"module": "Proforma Invoice",
"recordId": "pi-12345",
"recordType": "ProformaInvoice",
"oldValues": {"approvalStatus": "Pending Approval"},
"newValues": {"approvalStatus": "Approved", "approvedBy": "Kamila Rashidova", "approvedAt": "2025-05-25T14:32:18Z"},
"ipAddress": "192.168.1.105",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
"notes": "Approved after verifying vendor contract and pricing"
}
6. Security & Session Management
Authentication & Session Requirements
Password Policy:
- Minimum 8 characters
- Must contain: 1 uppercase, 1 lowercase, 1 number, 1 special character
- Cannot reuse last 5 passwords
- Password expires every 90 days (except for CEO/Finance Manager: 180 days)
- Account locked after 5 failed login attempts (unlock by admin only)
Session Management:
- Session timeout: 30 minutes of inactivity (system prompts to extend session)
- Maximum session duration: 8 hours (forced logout, must re-authenticate)
- Concurrent sessions: Maximum 2 active sessions per user
- Force logout on password change/role change
Multi-Factor Authentication (MFA):
- Required for: CEO, Finance Manager, Accountant (handling financial data)
- Optional for: Operations Manager, Sales Manager, Warehouse Manager
- Not required for: Warehouse Staff, Vendor Portal Users
- MFA methods: SMS OTP, Email OTP, Authenticator App (Google/Microsoft Authenticator)
7. Database Schema: Users & Permissions
User Management Tables
-- Users Table
CREATE TABLE users (
id UUID PRIMARY KEY,
username VARCHAR(50) UNIQUE NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
passwordHash VARCHAR(255) NOT NULL,
fullName VARCHAR(100) NOT NULL,
role VARCHAR(50) NOT NULL, -- 'CEO', 'Finance Manager', 'Operations Manager', etc.
assignedWarehouse VARCHAR(50), -- 'Main', 'Bektemir', 'All', NULL
vendorId UUID REFERENCES vendors(id), -- Only for vendor portal users
isActive BOOLEAN DEFAULT TRUE,
mfaEnabled BOOLEAN DEFAULT FALSE,
mfaSecret VARCHAR(255),
lastLoginAt TIMESTAMP,
passwordChangedAt TIMESTAMP,
createdAt TIMESTAMP DEFAULT NOW(),
createdBy UUID REFERENCES users(id),
updatedAt TIMESTAMP,
updatedBy UUID REFERENCES users(id)
);
-- User Sessions Table
CREATE TABLE user_sessions (
id UUID PRIMARY KEY,
userId UUID REFERENCES users(id) ON DELETE CASCADE,
sessionToken VARCHAR(255) UNIQUE NOT NULL,
ipAddress VARCHAR(45),
userAgent TEXT,
loginAt TIMESTAMP DEFAULT NOW(),
lastActivityAt TIMESTAMP DEFAULT NOW(),
expiresAt TIMESTAMP,
isActive BOOLEAN DEFAULT TRUE
);
-- Password History (prevent reuse)
CREATE TABLE password_history (
id UUID PRIMARY KEY,
userId UUID REFERENCES users(id) ON DELETE CASCADE,
passwordHash VARCHAR(255) NOT NULL,
changedAt TIMESTAMP DEFAULT NOW()
);
-- Audit Log Table
CREATE TABLE audit_logs (
id UUID PRIMARY KEY,
timestamp TIMESTAMP DEFAULT NOW(),
userId UUID REFERENCES users(id),
userName VARCHAR(100),
userRole VARCHAR(50),
action VARCHAR(50), -- CREATE, UPDATE, DELETE, APPROVE, REJECT, LOGIN, LOGOUT
module VARCHAR(50),
recordId UUID,
recordType VARCHAR(50),
oldValues JSONB,
newValues JSONB,
ipAddress VARCHAR(45),
userAgent TEXT,
notes TEXT
);
-- Approval Workflows Table
CREATE TABLE approval_requests (
id UUID PRIMARY KEY,
recordId UUID NOT NULL,
recordType VARCHAR(50) NOT NULL, -- 'ProformaInvoice', 'Payment', 'StockAdjustment', etc.
requestedBy UUID REFERENCES users(id),
requestedAt TIMESTAMP DEFAULT NOW(),
approverRole VARCHAR(50) NOT NULL, -- 'Finance Manager', 'CEO', etc.
approverId UUID REFERENCES users(id),
status VARCHAR(50) DEFAULT 'Pending', -- 'Pending', 'Approved', 'Rejected'
approvedAt TIMESTAMP,
rejectionReason TEXT,
notes TEXT
);
-- Indexes for performance
CREATE INDEX idx_users_username ON users(username);
CREATE INDEX idx_users_role ON users(role);
CREATE INDEX idx_audit_logs_user ON audit_logs(userId);
CREATE INDEX idx_audit_logs_timestamp ON audit_logs(timestamp);
CREATE INDEX idx_audit_logs_module ON audit_logs(module);
CREATE INDEX idx_approval_requests_status ON approval_requests(status);
CREATE INDEX idx_approval_requests_approver ON approval_requests(approverRole);
⚠️ Exception Handling Procedures
Overview
Despite careful planning, exceptions and unusual situations will occur in the frozen meat import business. This section provides standard operating procedures (SOPs) for handling common exceptions, escalation paths, and decision-making frameworks to minimize business disruption and financial loss.
1. Shipment & Logistics Exceptions
Exception 1.1: Delayed Container Departure from India
Symptoms:
- Vendor notifies that container will not ship on expected date
- CI created but shipment delayed by 7+ days
- Port congestion, customs clearance delays, vessel schedule changes
Immediate Actions (Operations Manager):
- Within 2 hours: Contact vendor to confirm new departure date and reason for delay
- Within 4 hours: Assess impact on stock levels and customer commitments
- Within 24 hours: Notify affected customers of potential delivery delays
- Document: Update CI record in system with new ETA, add delay note with reason
Decision Matrix:
| Delay Duration | Current Stock Level | Action Required |
|---|---|---|
| 7-14 days | Stock > 30 days supply | Monitor only - no action needed |
| 7-14 days | Stock < 30 days supply | Source alternative shipment from different vendor (expedited) |
| > 14 days | Any level | Escalate to CEO + Finance Manager; Consider canceling PI and sourcing alternative |
| > 30 days | Any level | Cancel PI, claim 30% advance refund, source from alternative vendor urgently |
Vendor Communication Template:
Subject: Urgent - Container Delay Notification for PI [PI Number]
Dear [Vendor Name],
We acknowledge receipt of your notification regarding the delay of container [Container Number]
for PI [PI Number] (CI [CI Number]).
Original Departure Date: [Date]
New Departure Date: [Date]
Delay Duration: [X] days
Please provide:
1. Updated Bill of Lading with confirmed vessel name and departure date
2. Written explanation for delay (port congestion, customs issue, etc.)
3. Compensation plan (if delay > 14 days): Discount on next shipment OR expedited shipping at your cost
We require the above information within 24 hours. Delays exceeding 30 days will result in
PI cancellation and refund request of 30% advance payment.
Regards,
[Operations Manager Name]
MSA Meat Trading LLC
Exception 1.2: Container Stuck at Iran Customs
Symptoms:
- Container arrived at Bandar Abbas port but not released by customs
- Missing/incorrect documentation (Halal cert, Health cert, COO)
- HS code classification dispute
- Demurrage charges accumulating ($100-$300 per day)
Immediate Actions (Operations Manager + Finance Manager):
- Within 1 hour: Contact Iran customs broker to identify root cause
- Within 2 hours: Request vendor to provide corrected/missing documents via email
- Within 4 hours: Calculate demurrage cost projection (days stuck × $200/day)
- Within 8 hours: If demurrage > $1,000, escalate to CEO for decision
Decision Matrix:
| Issue Type | Resolution Time | Action Required |
|---|---|---|
| Missing Halal Certificate | 3-5 days (vendor obtains new cert) | Vendor bears demurrage cost; deduct from 70% payment OR claim later |
| Incorrect HS Code | 1-2 days (reclassification) | Accept additional duty if < 5% of shipment value; Vendor compensates if > 5% |
| Health Certificate Expired | 5-7 days (new cert from India) | Vendor bears demurrage + expedite new certificate at their cost |
| Product Quality Concern (Random Inspection) | 2-3 days (lab testing) | If PASS: Resume clearance; If FAIL: Reject entire shipment, claim full refund + demurrage |
Demurrage Cost Recovery:
Demurrage Calculation Example:
Container: MSCU123456
Arrived: 15.05.2025
Released: 22.05.2025
Days Stuck: 7 days
Demurrage Rate: $200/day
Total Demurrage: 7 × $200 = $1,400
Cost Recovery:
- If vendor fault (missing docs): Deduct $1,400 from 70% balance payment
- If MSA fault (incorrect PI data): MSA absorbs cost
- If customs random inspection (no fault): Split 50/50 with vendor ($700 each)
Document in Claim module: CLM-2025-XXX (Type: Demurrage Recovery)
Exception 1.3: Lost or Damaged Container in Transit
Symptoms:
- Container not located at expected port after 14+ days past ETA
- Shipping line reports container damaged in transit (accident, mishandling)
- Container seal broken or tampered
Immediate Actions (Operations Manager + Finance Manager):
- Within 1 hour: Contact shipping line and request container tracking report
- Within 2 hours: Review insurance policy (check if shipment is covered)
- Within 4 hours: Notify vendor of situation and request their insurance details
- Within 24 hours: File insurance claim OR cargo claim with shipping line
- Within 48 hours: Arrange replacement shipment from vendor (expedited)
Insurance Claim Process:
Required Documents for Claim:
1. Bill of Lading (Original)
2. Commercial Invoice (CI)
3. Packing List
4. Insurance Certificate/Policy
5. Survey Report (if cargo damaged - hire surveyor to inspect)
6. Non-Delivery Certificate (from shipping line if lost)
7. Photos of damaged goods (if applicable)
Claim Submission Timeline:
- Day 1-2: Gather documents
- Day 3-5: Submit claim to insurance company
- Day 10-15: Insurance company investigation
- Day 20-30: Claim settlement (typically 70-90% of invoice value)
Expected Recovery: 80-90% of shipment value ($15,000 - $20,000 for typical 20-ton container)
Replacement Shipment Coordination:
- DO NOT wait for insurance settlement - arrange replacement immediately to avoid stockouts
- Vendor should provide replacement at NO ADDITIONAL COST (covered by their insurance)
- Expedite shipping (air freight for critical items if necessary)
- Insurance payout covers: Original shipment value + demurrage + expedite costs
2. Quality & Temperature Exceptions
Exception 2.1: Temperature Breach During Delivery
Symptoms:
- Truck arrives with product temperature > -10°C (should be -18°C to -22°C)
- Signs of thawing or refreezing visible on product
- Truck refrigeration unit malfunctioning
Immediate Actions (Warehouse Manager - DO NOT UNLOAD):
- STOP unloading immediately if temperature breach detected
- Within 15 minutes: Record truck temperature using calibrated thermometer
- Within 30 minutes: Take photos of temperature gauge, product condition, truck exterior/interior
- Within 1 hour: Contact Operations Manager and Vendor to report issue
- Within 2 hours: Decide: REJECT entire shipment OR Accept with discount
Decision Matrix:
| Temperature Reading | Visual Inspection | Action Required |
|---|---|---|
| -10°C to -15°C | No visible thawing | Accept with 10% discount (negotiate with vendor); Sell within 30 days (mark as "aging stock") |
| -5°C to -10°C | Minor thawing on surface | Accept with 25% discount; Sell within 15 days; Label "Quick Sale" |
| > -5°C | Significant thawing/refreezing | REJECT ENTIRE SHIPMENT - Do not unload; Vendor arranges return at their cost |
| Any temp | Foul odor, discoloration, slime | REJECT ENTIRE SHIPMENT - Health hazard; File claim for full refund + damages |
Temperature Breach Documentation:
TEMPERATURE BREACH REPORT
Date: [Date]
Time: [Time]
Location: Main Warehouse / Bektemir
Truck Number: [License Plate]
Driver: [Name]
CI Number: [CI Number]
Vendor: [Vendor Name]
TEMPERATURE READINGS:
Truck Internal Temp: [__]°C (Should be: -18°C to -22°C)
Product Surface Temp: [__]°C
Ambient Temp: [__]°C
VISUAL INSPECTION:
☐ No visible issues
☐ Minor surface thawing
☐ Significant thawing/refreezing
☐ Ice crystals on packaging
☐ Discoloration observed
☐ Foul odor detected
☐ Packaging damage
PHOTOS ATTACHED:
- Temperature gauge reading
- Product condition (3-5 photos)
- Truck refrigeration unit
DECISION:
☐ ACCEPTED with [__]% discount
☐ REJECTED - Return to vendor
Warehouse Manager Signature: _______________
Operations Manager Approval: _______________
Exception 2.2: Failed Quality Inspection at GRN
Symptoms:
- Product does not match CI description (wrong cut, lower grade)
- Excessive fat content (customer specification: max 5% fat, actual: 10%)
- Wrong product delivered (ordered TOPSIDE, received THICK FLANK)
- Product contamination (foreign objects, bone fragments in boneless cuts)
Immediate Actions (Warehouse Manager):
- Within 30 minutes: Stop unloading, isolate affected items
- Within 1 hour: Take photos, count boxes, weigh samples
- Within 2 hours: Create rejection notice in system
- Within 4 hours: Contact vendor and send rejection notice with evidence
- Within 24 hours: Vendor collects rejected items OR MSA disposes at vendor cost
Rejection Categories:
| Rejection Type | Evidence Required | Vendor Responsibility |
|---|---|---|
| Wrong Product | Photos of boxes, product labels, CI comparison | Replace with correct product within 7 days OR full refund + freight cost |
| Quality Defect | Photos, fat % lab test, bone fragment samples | Replace with correct specification OR 30-50% discount (if MSA agrees to keep) |
| Contamination | Photos, samples sealed in bags, third-party lab test | Full refund + disposal cost + claim for damaged brand reputation |
| Expired/Near Expiry | Photos of production date labels | Full refund (unacceptable - frozen meat should be fresh from slaughter) |
Sample Rejection Notice:
═══════════════════════════════════════════════════════════
🔴 GOODS REJECTION NOTICE
Rejection Number: REJ-2025-012
Date: 25.05.2025
═══════════════════════════════════════════════════════════
CI Number: MH/104/202526 (Dated: 21.04.2025)
Vendor: HMA AGRO INDUSTRIES LIMITED
Truck Number: UZ-TRK-001
Delivery Date: 28.05.2025
Warehouse: Main Warehouse (Ravshan aka)
REJECTION DETAILS:
Item Code: 44 - SILVER SIDE (HQ CUTS)
Quantity Delivered: 840 boxes × 40 kg = 33,600 kg
Quantity Rejected: 150 boxes × 40 kg = 6,000 kg (17.9%)
Quantity Accepted: 690 boxes × 40 kg = 27,600 kg
REASON FOR REJECTION:
☑ Quality defect - Excessive fat content
Description: Random sampling revealed 8-12% fat content. Customer specification
requires maximum 5% fat for HQ (High Quality) grade. Product does not meet
contractual quality standards.
EVIDENCE:
- Attached: 12 photos of product samples
- Attached: Lab test results (fat content analysis)
- Witness: Warehouse Manager (Ravshan Karimov), Operations Manager (Dilshod Yusupov)
VENDOR ACTION REQUIRED:
Option 1: Collect rejected 150 boxes within 48 hours at your cost
Option 2: MSA disposes of product, vendor pays disposal cost ($300) + rejection value ($5,640)
Option 3: Vendor provides 40% discount on rejected quantity, MSA sells as "Economy Grade"
Vendor must respond within 24 hours of receipt of this notice.
Warehouse Manager: _______________
Operations Manager: _______________
═══════════════════════════════════════════════════════════
3. Financial & Payment Exceptions
Exception 3.1: Vendor Demands Full Payment Before Shipment Release
Symptoms:
- Vendor refuses to release container at Iran port until 70% balance paid
- Standard payment term: 70% upon container arrival at Iran
- Vendor claims: "Cash flow issue" or "Company policy change"
Immediate Actions (Finance Manager + CEO):
- Within 2 hours: Review PI and payment terms (30% advance, 70% on arrival confirmed)
- Within 4 hours: Contact vendor to remind of agreed payment terms
- Within 24 hours: Escalate to CEO for negotiation
- Within 48 hours: Decide: Pay early with discount OR Hold firm on terms
Negotiation Strategy:
Scenario: Vendor demands $25,000 (70% balance) BEFORE container release
Standard Terms: Pay 70% AFTER arrival at Iran (MSA inspects container first)
Option 1: HOLD FIRM (Recommended)
- Remind vendor of signed PI with agreed payment terms
- Threaten to: (a) Cancel future orders, (b) Report to India export council
- Risk: Container stuck at port, demurrage accumulates
- Best for: Established vendors with good track record
Option 2: NEGOTIATE COMPROMISE
- Offer: Pay 50% now ($17,857), 20% upon container release ($7,143)
- Vendor benefit: Gets majority of payment early
- MSA benefit: Still retains 20% leverage to ensure quality
- Best for: First-time vendors or high-value shipments
Option 3: PAY EARLY WITH DISCOUNT
- Agree to pay 70% early IF vendor provides 3-5% discount
- Example: Pay $24,250 (instead of $25,000) for early payment
- Vendor benefit: Cash flow relief
- MSA benefit: $750 savings + avoids demurrage
- Best for: Low-risk shipments, strong vendor relationship
Option 4: REJECT & CANCEL (Last Resort)
- Cancel PI, demand refund of 30% advance ($10,714)
- Source replacement shipment from alternative vendor
- File complaint with vendor's bank/export authority
- Best for: Vendors with history of quality issues or fraud suspicion
Exception 3.2: Exchange Rate Fluctuation Significantly Increases Cost
Symptoms:
- PI created at 1 USD = 43,000 UZS; Payment due at 1 USD = 48,000 UZS (11.6% increase)
- 70% balance payment now costs 5,000,000 UZS more than budgeted
- Profit margin squeezed from 20% to 10% due to FX loss
Immediate Actions (Finance Manager + CEO):
- Within 1 hour: Calculate exact FX loss in UZS and impact on profit margin
- Within 4 hours: Review hedging options (forward contract, FX swap with bank)
- Within 24 hours: Decide: Absorb loss, Adjust sales prices, or Renegotiate with vendor
FX Loss Mitigation Strategies:
| Strategy | When to Use | Expected Outcome |
|---|---|---|
| Absorb Loss | FX fluctuation < 5%, Profit margin still > 15% | No action needed; Monitor future shipments for hedging |
| Increase Sales Prices | FX fluctuation 5-10%, Market can absorb price increase | Pass 50-70% of FX loss to customers; Maintain 15-18% margin |
| Renegotiate with Vendor | FX fluctuation > 10%, Long-term vendor relationship | Request 2-3% discount on next shipment to offset FX loss |
| FX Forward Contract | Future shipments (lock rate for next 3-6 months) | Eliminate FX risk; Bank charges 0.5-1% fee |
Example FX Loss Calculation:
PI Value: $35,000 (total)
Payment Structure: 30% advance ($10,500), 70% balance ($24,500)
30% Advance Payment (1 month ago):
Exchange Rate: 1 USD = 43,000 UZS
UZS Cost: $10,500 × 43,000 = 451,500,000 UZS
70% Balance Payment (today):
Exchange Rate: 1 USD = 48,000 UZS
UZS Cost: $24,500 × 48,000 = 1,176,000,000 UZS
Total UZS Cost: 451,500,000 + 1,176,000,000 = 1,627,500,000 UZS
If exchange rate had stayed at 43,000: $35,000 × 43,000 = 1,505,000,000 UZS
FX LOSS: 1,627,500,000 - 1,505,000,000 = 122,500,000 UZS ($2,552)
Impact on Profit Margin:
Planned Margin: 20% → Actual Margin: 12.7% (7.3% margin erosion)
Action: Increase retail prices by 5% OR absorb 2.7% loss and increase prices by 2.3%
4. System & Data Exceptions
Exception 4.1: Duplicate GRN Created for Same Container
Symptoms:
- Warehouse staff accidentally creates 2 GRNs for same truck/container
- Stock balance inflated (showing 60,000 kg when only 30,000 kg received)
- Discovered during month-end physical count or variance report
Immediate Actions (Operations Manager + Warehouse Manager):
- Within 1 hour: Identify duplicate GRN by comparing CI number, truck number, date
- Within 2 hours: Verify physical stock count (actual boxes in warehouse)
- Within 4 hours: Mark duplicate GRN as "VOID" in system (do not delete - audit trail)
- Within 24 hours: Run stock reconciliation report to verify correct balances
System Correction Procedure:
Step 1: Identify Duplicate GRNs
Run query: SELECT * FROM goods_receipt_notes WHERE containerNumber = 'MSCU123456' AND createdDate = '2025-05-28'
Result: Found 2 GRNs (GRN-2025-088, GRN-2025-089) for same container
Step 2: Verify Correct GRN
Check: Which GRN matches actual stock received?
- GRN-2025-088: Created by Warehouse Manager Ravshan at 14:30 (CORRECT)
- GRN-2025-089: Created by Warehouse Staff at 14:45 (DUPLICATE - void this)
Step 3: Void Duplicate GRN
UPDATE goods_receipt_notes
SET status = 'VOID', voidReason = 'Duplicate entry', voidedBy = 'Operations Manager', voidedAt = NOW()
WHERE id = 'GRN-2025-089'
Step 4: Reverse Stock Entries
DELETE FROM stock_balance WHERE grnId = 'GRN-2025-089'
Step 5: Create Audit Log
INSERT INTO audit_logs (action, module, recordId, notes)
VALUES ('VOID', 'GRN', 'GRN-2025-089', 'Duplicate GRN voided - Correct GRN: GRN-2025-088')
Step 6: Verify Stock Balance
Run: SELECT productId, SUM(quantity) FROM stock_balance GROUP BY productId
Compare with physical count - should match within 2% tolerance
Prevention Measures:
- System validation: Block GRN creation if same container number + date exists
- User training: Warehouse staff must check for existing GRN before creating new one
- Weekly reconciliation: Operations Manager reviews all GRNs for duplicates
Exception 4.2: System Outage During Critical Operation
Symptoms:
- Database connection lost, system inaccessible
- Occurs during: GRN creation, Sales order processing, Payment recording
- Users unable to access system for 2+ hours
Immediate Actions (Operations Manager + IT Support):
- Within 15 minutes: Switch to manual paper-based recording (temporary)
- Within 30 minutes: Contact IT support/developer to diagnose issue
- Within 1 hour: Estimate recovery time; Notify all users
- Within 4 hours: System restored OR implement manual workaround for 24 hours
Manual Fallback Procedures:
MANUAL GRN RECORDING (Paper Form):
Date: _________
Container Number: _________
CI Number: _________
Truck Number: _________
Item Code | Item Name | Boxes | Kg/Box | Total Kg | Temperature | Condition
----------------------------------------------------------------------
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | [ ]
[ ] | [ ] | [ ] | [ ] | [ ] | [ ] | [ ]
Warehouse Manager Signature: ___________
Date/Time: ___________
IMPORTANT: Enter this data into system IMMEDIATELY when system is restored.
Create GRN with original date/time from paper form.
MANUAL SALES ORDER:
Customer: _________
Date: _________
Order Number (assign manually): SO-2025-XXX
Item | Qty (Kg) | Price/Kg | Total | Delivery Date
-------------------------------------------------
[ ] | [ ] | [ ] | [ ] | [ ]
Sales Manager Signature: ___________
ENTER INTO SYSTEM when restored using original date/time.
System Recovery Checklist:
- ☐ Restore database from latest backup (automatic hourly backups)
- ☐ Verify data integrity (run consistency checks)
- ☐ Re-enter manual paper records into system (with correct timestamps)
- ☐ Reconcile stock balances (physical count vs. system)
- ☐ Notify all users that system is operational
- ☐ Conduct post-mortem: Document cause, implement prevention measures
5. Customer & Sales Exceptions
Exception 5.1: Customer Demands Urgent Delivery But Stock Unavailable
Symptoms:
- Customer orders 5,000 kg TOPSIDE for delivery tomorrow
- Current stock: 1,200 kg TOPSIDE available
- Next shipment arrives in 10 days
Immediate Actions (Sales Manager):
- Within 1 hour: Check if alternative products acceptable (THICK FLANK instead of TOPSIDE)
- Within 2 hours: Contact other warehouses/suppliers for emergency stock transfer
- Within 4 hours: Offer customer: (a) Partial delivery + balance later, (b) Alternative product, (c) Wait 10 days with discount
Customer Communication Template:
Dear [Customer Name],
Thank you for your urgent order for 5,000 kg of Item 41 (TOPSIDE - HQ CUTS).
We currently have 1,200 kg in stock and can offer the following options:
OPTION 1: Partial Delivery
- Deliver 1,200 kg tomorrow (24.05.2025)
- Deliver remaining 3,800 kg on 05.06.2025 (10 days)
- Pricing: Standard rate (220,000 UZS/kg)
OPTION 2: Alternative Product (Immediate Delivery)
- Deliver 5,000 kg of Item 46 (THICK FLANK - HQ CUTS) tomorrow
- Similar quality and pricing (215,000 UZS/kg)
- 2% discount as compensation for product substitution
OPTION 3: Wait with Discount
- Deliver full 5,000 kg on 05.06.2025
- 5% discount (209,000 UZS/kg) for delayed delivery
Please confirm your preferred option within 2 hours.
Best regards,
[Sales Manager Name]
MSA Meat Trading LLC
Escalation to Operations:
- If customer is high-value (>50M UZS/month), escalate to Operations Manager to arrange emergency shipment from India (air freight - 3-day delivery)
- Air freight cost: $8/kg (vs. $0.50/kg sea freight) - absorb cost for VIP customers
- Inform customer: "We are arranging express delivery at no extra charge"
Exception 5.2: Customer Refuses Delivery Due to Quality Complaint
Symptoms:
- Delivery truck arrives at customer location
- Customer inspects product and refuses acceptance
- Claims: "Excessive fat", "Wrong product", "Temperature too high", "Packaging damaged"
Immediate Actions (Sales Manager + Operations Manager):
- Within 30 minutes: Contact driver to understand customer's specific complaint
- Within 1 hour: Request driver to take photos/videos of product condition
- Within 2 hours: Dispatch Quality Manager to customer site for inspection
- Within 4 hours: Decide: Accept return, Provide replacement, or Negotiate resolution
On-Site Resolution Process:
Quality Manager arrives at customer site with:
1. Calibrated thermometer
2. Camera for documentation
3. Product samples for lab testing (if needed)
4. Authority to offer 10% discount on-the-spot
Inspection Checklist:
☐ Measure product temperature (acceptable: -18°C or below)
☐ Visual inspection (fat content, color, odor, packaging)
☐ Weigh product (verify quantity matches invoice)
☐ Review customer's specific complaint
Resolution Options:
1. Valid Complaint (our fault):
- Accept return, provide full credit
- Deliver replacement within 24 hours
- Apologize + offer 5% discount on next order
2. Marginal Issue (negotiable):
- Offer 10-15% discount if customer keeps product
- Replace specific boxes that are defective
- Agree to stricter quality checks on future deliveries
3. Invalid Complaint (customer fault or unreasonable):
- Show evidence (temperature logs, quality certificates)
- Remind customer of agreed specifications in contract
- Customer must accept delivery (no refund/return)
Document everything - Photos, signed statements, resolution agreement
6. Escalation Matrix
When to Escalate & Who to Contact
| Exception Type | Initial Handler | Escalate If | Escalate To | Timeline |
|---|---|---|---|---|
| Shipment Delay | Operations Manager | Delay > 14 days OR Stock < 20 days | CEO + Finance Manager | Within 24 hours |
| Container Stuck at Customs | Operations Manager | Demurrage > $1,000 | CEO | Within 8 hours |
| Temperature Breach | Warehouse Manager | Temperature > -5°C OR Shipment value > $10,000 | Operations Manager + CEO | Within 2 hours |
| Quality Rejection | Warehouse Manager | Rejection value > $5,000 OR Vendor disputes | Operations Manager + Finance Manager | Within 4 hours |
| Payment Dispute | Finance Manager | Vendor threatens legal action OR Payment > $50,000 | CEO + Legal Advisor | Within 24 hours |
| FX Loss | Finance Manager | FX loss > 10% OR Margin drops below 10% | CEO | Within 48 hours |
| System Outage | Operations Manager | Outage > 4 hours OR Data loss suspected | CEO + IT Support | Within 1 hour |
| Customer Complaint | Sales Manager | High-value customer (>50M UZS/month) OR Legal threat | CEO | Within 4 hours |
| Lost/Damaged Container | Operations Manager | Any occurrence (always escalate) | CEO + Finance Manager + Insurance Agent | Within 1 hour |
7. Emergency Contact List
24/7 Emergency Contacts
| Role | Name | Phone (Office) | Phone (Mobile) | |
|---|---|---|---|---|
| CEO / General Manager | [Name] | +998-XX-XXX-XXXX | +998-9X-XXX-XXXX | ceo@msameat.uz |
| Finance Manager | [Name] | +998-XX-XXX-XXXX | +998-9X-XXX-XXXX | finance@msameat.uz |
| Operations Manager | [Name] | +998-XX-XXX-XXXX | +998-9X-XXX-XXXX | operations@msameat.uz |
| Warehouse Manager (Main) | Ravshan Karimov | +998-XX-XXX-XXXX | +998-9X-XXX-XXXX | warehouse.main@msameat.uz |
| Warehouse Manager (Bektemir) | [Name] | +998-XX-XXX-XXXX | +998-9X-XXX-XXXX | warehouse.bektemir@msameat.uz |
| Iran Customs Broker | [Name] | +98-XX-XXXX-XXXX | +98-9XX-XXX-XXXX | broker@iranlogistics.ir |
| Insurance Agent | [Name] | +998-XX-XXX-XXXX | +998-9X-XXX-XXXX | claims@insurance.uz |
| IT Support / Developer | [Name] | - | +998-9X-XXX-XXXX | support@msameat.uz |
External Emergency Services:
- Refrigeration Repair (24/7): +998-XX-XXX-XXXX
- Backup Cold Storage (Emergency): +998-XX-XXX-XXXX (Tashkent Cold Storage LLC)
- Legal Advisor: +998-XX-XXX-XXXX (Law Firm)
- Veterinary/Health Inspector: +998-XX-XXX-XXXX
- Fire Department: 101
- Police: 102
System Capabilities Summary
Complete Import Management Coverage
Document Management
- Proforma Invoice (PI) tracking
- Commercial Invoice processing
- Bill of Lading management
- Packing list verification
- Certificate tracking (Origin, Health, Quality)
- Customs declaration handling
Financial Operations
- 30/70 payment split tracking
- Multi-currency support (USD, UZS)
- Exchange rate management
- Duty and tax calculation
- Vendor payment processing
- 3-way match verification
Logistics Tracking
- Container tracking (51 per shipment)
- Vessel and voyage monitoring
- Transit status updates
- Port arrival notifications
- Container-to-truck conversion
- Delivery scheduling
Quality & Compliance
- Goods Receipt Note (GRN)
- Physical verification and counting
- Temperature monitoring
- Quality inspection workflow
- Variance reporting
- Acceptance/rejection processing
Process Automation Benefits
| Manual Process | Automated Process | Time Saved |
|---|---|---|
| Manual payment tracking across 17 invoices | Automatic 30/70 split calculation and tracking | ~4 hours per shipment |
| Manual currency conversion and rate lookup | Real-time conversion with historical tracking | ~2 hours per week |
| Excel-based container tracking | Real-time status dashboard for 51 containers | ~3 hours per day |
| Manual 3-way matching (PO, Invoice, GRN) | Automatic variance detection and alerts | ~2 hours per invoice |
| Manual duty calculation | Automatic duty and tax computation | ~1 hour per clearance |