Back to ER Diagram
Estimation & BOQ

Estimation & BOQ Logic

Bill of Quantities creation, rate analysis, cost estimation, version management, and WBS mapping for construction projects.

PostgreSQL
10 Tables
Schema: estimation
Rate Analysis

Overview

The Estimation module handles creation and management of Bills of Quantities (BOQ) with detailed rate analysis. BOQ items are linked to WBS elements for cost distribution. Version control allows comparison between original, revised, and supplementary BOQs. Rate analysis decomposes item rates into material, labour, equipment, and overhead components using IS/CPWD/SSR standards.


Abstract Estimate

Create BOQ

Rate Analysis

Version & Compare

Map to WBS
10
Estimation Tables
4
Rate Components
Multi
BOQ Versions
Auto
Cost Rollup

Status States

StatusDescriptionAllowed ActionsNext States
DraftBOQ being prepared by estimation teamEdit, Add Items, DeleteUnder Review
Under ReviewSent to senior estimator / PM for reviewApprove, Return, CommentApproved, Draft
ApprovedBOQ frozen for use in tendering/procurementView, Create Version, CompareRevised
RevisedNew version created with changes trackedEdit, Submit for ReviewUnder Review
SupersededOlder version replaced by newer versionView Only, Compare

BOQ Types

Item-Rate BOQ

Standard BOQ with item description, quantity, unit, and rate. Most common for civil works.

Percentage BOQ

Items priced as percentage of a base item — used for overheads, supervision charges.

Lump Sum BOQ

Fixed-price items without quantity breakdown — used for specialist/package works.

Provisional Sum BOQ

Estimated amounts for undefined work — adjusted during execution via variation orders.

Database Schema

estimation.boq

  • boq_id — PK, BOQ header per project
  • project_id — FK → project.project
  • boq_number, boq_name — Unique identifier and title
  • boq_type — item_rate | percentage | lump_sum | provisional
  • total_amount, currency — Auto-calculated from line items
  • status — Draft → Approved → Revised lifecycle

estimation.boq_item

  • item_id — PK, individual BOQ line item
  • boq_id — FK → estimation.boq
  • item_code, description — SOR/custom item code and details
  • quantity, uom, rate, amount — qty × rate = amount
  • material_pct, labour_pct, equipment_pct — Rate component split percentages

estimation.rate_analysis

  • ra_id — PK, rate analysis record
  • item_id — FK → estimation.boq_item
  • component_type — material | labour | equipment | overhead | contractor_profit
  • description, quantity, unit, rate, amount — Component cost breakdown
  • source_sor — Reference to Schedule of Rates (IS/CPWD/SSR)

estimation.boq_version

  • version_id — PK
  • boq_id — FK → estimation.boq
  • version_number, created_at — Sequential version tracking
  • change_summary — Description of what changed
  • snapshot_json — Full BOQ snapshot for comparison

estimation.boq_wbs_mapping

  • mapping_id — PK
  • item_id — FK → estimation.boq_item
  • wbs_id — FK → project.wbs
  • allocated_qty, allocated_amount — Quantity/cost distributed to WBS element

Estimation Process Steps

1

Abstract Estimate

Preliminary cost estimate created from similar project benchmarks. Used for feasibility studies and budget approvals before detailed BOQ preparation.

2

BOQ Creation

Estimator creates BOQ with item descriptions from SOR (Schedule of Rates). Quantities computed from drawings using measurement sheets. Each item gets unit rate.

3

Rate Analysis

Decompose each item rate into material, labour, equipment, overhead, and profit components. Reference standard rates from CPWD/IS/SSR. Apply area factors and lead charges.

4

Version Control

When BOQ is revised (scope change, rate revision), create a new version. System tracks additions, deletions, and rate changes between versions for audit trail.

5

WBS Mapping

Distribute BOQ quantities across WBS elements. This enables cost tracking at WBS level and feeds the commitment accounting module with budget figures.

Query Examples

BOQ Amount Summary

-- BOQ total with component breakdown
SELECT b.boq_number, b.boq_name,
       SUM(bi.amount) AS total_amount,
       SUM(bi.amount * bi.material_pct / 100) AS material_cost,
       SUM(bi.amount * bi.labour_pct / 100) AS labour_cost,
       SUM(bi.amount * bi.equipment_pct / 100) AS equipment_cost
FROM estimation.boq b
JOIN estimation.boq_item bi ON bi.boq_id = b.boq_id
WHERE b.project_id = :project_id AND b.status = 'Approved'
GROUP BY b.boq_id;

Validation Rules

Business Rules

  • Rate Analysis Sum: Sum of RA components must equal BOQ item rate (±0.5% tolerance)
  • WBS Mapping: Total allocated qty per item ≤ BOQ item qty (no over-allocation)
  • Version Integrity: Cannot modify approved BOQ — must create new version
  • Duplicate Items: BOQ item codes must be unique within a BOQ

Integration Points

Connected Modules

  • Project Management: BOQ items linked to WBS for progress-based cost tracking
  • Procurement: MR quantities validated against BOQ item quantities
  • Commitment Accounting: BOQ amounts feed budget allocation in finance module
  • Subcontractor: Work order quantities derived from BOQ for subcontractor scope
  • EVM: BOQ budget = BAC for earned value calculations

Best Practices

Recommended

  • Use SOR codes for standardization across projects
  • Perform rate analysis for all items above ₹50,000 threshold
  • Map BOQ to WBS before project execution begins
  • Compare BOQ versions before approving revisions