Ctrl+K

Estimates & Budgets

An Estimate represents the resource requirements for executing a Job. Estimates are always created for Scopes — the estimate for a Scope applies to a BOQ by virtue of the link between the Scope and BOQ.

Estimate workflow showing five resource factors and approval flow
Estimate workflow — five resource factors (Labour, Material, Machine, Subcontractor, Overhead), budget vs non-budget types, and approval flow.

Dual Purpose of Estimates

Estimates serve two distinct functions in JobNext:

FunctionDescription
Budget for Resource Procurement and Consumption Controls spending limits — determines how much can be spent on materials, labour, and other resources during project execution
Basis for Creating a Quote (Bid/Tender) By adding markup to the estimate, it becomes the pricing foundation for customer proposals

Budget vs Non-Budget Estimates

How to Set Budget for a Job 0:37
Key distinction: Budget estimates set spending limits for the project. Non-budget estimates are used solely for quotation purposes and do not affect the project budget. Choose the correct type based on your intent.
AspectBudget EstimateNon-Budget Estimate
Purpose Controls spending limits for procurement and consumption Provides cost basis for quotation only
Budget impact Sets and enforces the project budget No impact on project budget
Typical use Post-contract, for execution planning Pre-contract, for estimate-based quotes

Estimate Header Fields

Each estimate is stored in omni_job_estimate_header (20 columns):

FieldDB ColumnTypeDescription
Estimate Code estimate_code varchar Auto-generated unique code
Job job_id int (FK) The job this estimate belongs to
Is Budget is_budget bit 1 = Budget estimate (sets spending limits), 0 = Non-budget (for quotes only)
Is Additional is_additional bit Marks supplementary estimates added after the original
Approved By approved_by / approved_on int / datetime Approval authority and timestamp
Approval Notes approval_notes varchar Comments from the approver
Is RFQ is_rfq bit Whether an RFQ was generated from this estimate
Is Quoted is_quoted bit Whether a quote was created from this estimate
Is Cancelled is_cancelled bit Soft-delete flag (cancelled estimates are preserved for audit)

Five Resource Factors

Every estimate breaks down costs into five resource types. Each resource line is stored in omni_job_estimate_detail (13 columns) with a common formula: value = rate × qty × (1 + waste%).

Factorresource_typeResource SourceEstimation Basis
Labour (L) L Staff designation or named person Time (hours/days/months) × rate per period
Material (M) M Material master item Quantity of material × rate per unit
Machine (Mc) Mc Equipment type from plant module Time of equipment usage × rate per period
Subcontractor (S) S Subcontractor work items Quantity of work × rate per unit
Overhead (O) O Indirect cost items Monetary amount for overhead costs

Estimate Detail Fields

Each resource line captures:

FieldDB ColumnDescription
Resource Type resource_type L, M, Mc, S, or O
Resource Subtype resource_subtype Further classification within the type
Resource resource_id FK to material/staff/equipment/subcon master
Scope job_scope_id The scope this resource is estimated for
BOQ-Scope Link boq_job_scope_link_id Links to the BOQ through scope mapping
Base Qty base_qty Original estimated quantity
Waste % waste_percent Expected wastage factor (e.g., 5% for concrete)
Qty qty Final quantity: base_qty × (1 + waste%)
Rate rate Cost per unit of resource
Value value Total cost: rate × qty

Scheduled Rates for Quick Estimation

Speed up estimation: JobNext provides Scheduled Rates — a database of pre-defined resource breakdowns for each Scope in the WBS. With Scheduled Rates, you can populate all five resource factors for a scope in one click, instead of building rates from scratch every time.
Estimates tab showing budget summary with donut chart of resource breakdown
Estimates tab — budget summary with total budget value and resource breakdown donut chart (Equipment, Labour, Material, Overhead).

Creating an Estimate

How to Create an Estimate 0:36
  1. Navigate to the Job and click Estimates in the horizontal menu
  2. Click Add Estimate
  3. Set the estimate type:
    • Check Is Budget if this estimate should control spending limits
    • Leave unchecked for quotation-only (non-budget) estimates
  4. Select the Scope(s) to estimate against
  5. For each scope, add resource lines:
    • Labour: Select designation/person, enter time and rate
    • Material: Select material from master, enter quantity and rate
    • Machine: Select equipment type, enter usage time and rate
    • Subcontractor: Define work package, enter quantity and rate
    • Overhead: Select cost category, enter amount
  6. Set waste percentages where applicable (common: 3-10% for materials)
  7. Review the total estimate value (sum of all resource lines)
  8. Click Save, then Submit for Approval
Important: Once an estimate is approved and marked as budget, it sets the spending limits for the job. Procurement (MRs, POs) and consumption are tracked against these budget amounts. Exceeding the budget triggers alerts.

Estimate Lifecycle

StateDescriptionActions Available
Draft Estimate created, resources being added Edit, add resources, save
Submitted Sent for approval Review, approve, reject
Approved Approved by authority — budget is set View, create additional estimates
Rejected Sent back for revision Edit and resubmit
Cancelled Soft-deleted (is_cancelled = 1) View only (audit trail preserved)