Ctrl+K

Request for Proposal (RFP)

A Request for Proposal (RFP) is the subcontractor equivalent of the RFQ. While an RFQ solicits pricing from material suppliers, an RFP solicits competitive bids from subcontractors for defined work packages. The RFP captures the scope of work, site details, and timeline, then circulates this information to multiple subcontractors who submit their proposals. These proposals are compared using a Comparative Statement for Work Orders, and the best offer is converted into a Work Order (WO).

Request for Proposal (RFP) 0:19
Navigation: Main Menu → ProcurementRFP
RFP vs. RFQ

The RFP follows the subcontractor procurement path: Work Requisition (WR) → RFP → Vendor WO Offers → Work Order. This parallels the material path (MR → RFQ → Vendor Offers → PO) but deals with labour and services rather than materials. The source document for an RFP is always an approved Work Requisition, not a Material Requisition.

RFP List

The RFP list displays all Requests for Proposal created within the selected date range. Each row shows the RFP code, associated job, offer window, and current status.

RFP list view showing RFP codes, job names, offer dates, vendor count, status badges, and action buttons
RFP list view with date range filter, status indicators, and per-row action dropdown.
ColumnDescription
RFP CodeSystem-generated code identifying the RFP. Format links back to the source Work Requisition.
JobThe job/project this RFP is associated with.
DescriptionSummary of the work scope being solicited.
Offer Start DateThe date from which subcontractors can submit proposals.
Offer End DateThe deadline for subcontractors to submit proposals.
Vendors InvitedNumber of subcontractors added to this RFP.
StatusCurrent status badge: Open, Offers Received, WO Issued.

Row Actions

Each RFP row provides a dropdown action menu with the following options:

ActionWhat It Does
ItemsOpens the RFP detail view to see/edit work items, manage vendors, and record offers.
Comparative StatementOpens the SSRS Work Order Comparative Statement showing all vendor proposals side-by-side.
ViewOpens the RFP as a printable SSRS report document for circulation to subcontractors.
DetailsExpands an inline detail panel below the row with summary information.

RFP Document (Print View)

Clicking View on an RFP opens the formal RFP document as an SSRS report. This is the document that is circulated to subcontractors for them to prepare their proposals.

RFP document showing company header, reference number, work scope description, work items grid with quantities and UOM, work location, dates, and terms and conditions
RFP formal document — printable report showing company details, work scope, items, location, and terms.

The RFP document includes:

  • Header — Company name, logo, address, date, and RFP reference number
  • Subject / Scope — The offer description summarizing the work package
  • Work items grid — Line items from the Work Requisition with descriptions, UOM, and quantities
  • Work location — The site or area where work will be performed
  • Work date — Expected start or execution date for the work
  • Offer window — Start and end dates for proposal submission
  • Contact email — Email address for subcontractor queries
  • Terms & Conditions — Standard terms governing the proposal process
  • Attachments — Drawings, BOQ details, specifications, or scope documents

RFP Header Fields

The RFP header captures the overall proposal request details. Stored in the omni_rfp_header table (17 columns).

FieldDescriptionRequired
RFP CodeAuto-generated unique code identifying the RFP (stored as rfp_code). Links back to the source WR for traceability.Auto
JobThe job/project this RFP belongs to (job_id). Determines the budget and scope context.Yes
Work RequisitionThe approved Work Requisition that originated this RFP (wr_id). All work items are pulled from the WR.Yes
Offer DescriptionFree-text description of the work scope being solicited (offer_description). This appears as the subject on the printed RFP document.No
Offer Start DateThe date from which subcontractors may begin submitting proposals (offer_startdate).No
Offer End DateThe deadline by which all proposals must be received (offer_enddate). Proposals submitted after this date may not be considered.No
Work LocationThe physical site or area where the subcontract work will be performed (work_location).No
Work DateExpected start or execution date for the work (work_date). Helps subcontractors assess resource availability.No
Contact EmailEmail address for subcontractor queries about the RFP (contact_email).No
AttachmentFile path for supporting documents such as drawings, BOQ sheets, or specifications (RFP_AttachmentFilePath). Also linked via DMS (dms_document_id).No
Work OrderOnce the best offer is selected and a WO is created, this field stores the resulting Work Order ID (wo_id). Null until WO award.Auto
RFP UIDSystem-generated unique identifier (rfp_uid) for cross-system references and integrations.Auto

RFP Line Item Fields

Each RFP contains one or more line items representing the individual work activities or scope items being solicited. These are pulled from the source Work Requisition and stored in the omni_rfp_detail table.

FieldDescriptionRequired
WR DetailLink to the specific Work Requisition line item (wr_detail_id). Maintains traceability from RFP items back to the original work scope definition.Yes
NotesAdditional notes or specifications for this work item (notes). Use this to clarify scope boundaries, quality requirements, or special conditions for the subcontractor.No
Work Items from WR

RFP line items are inherited from the approved Work Requisition. The WR detail contains the activity description, quantity, UOM, and estimated rate. The RFP carries these forward so subcontractors know exactly what work is being tendered and can price each item accordingly.

Creating an RFP

An RFP is created from an approved Work Requisition (WR). The system carries forward the work scope, quantities, and specifications from the WR, ensuring consistency throughout the subcontractor procurement chain.

How to Create an RFP (Request for Proposal) 0:41
  1. Navigate to the approved Work Requisition — Go to Operations → Jobs → select the job → Work Requisition. Ensure the WR is in Approved status. Only approved WRs can be used to create RFPs.
  2. Click “Create RFP” — From the WR detail, click the Create RFP action. The system calls omni_sp_scm_CreateRFP, which creates a new RFP header linked to the WR (wr_id) and auto-populates RFP detail rows from the WR’s line items.
  3. Set the offer window — Define the Offer Start Date and Offer End Date to give subcontractors a clear timeline for preparing and submitting their proposals. Allow sufficient time for subcontractors to visit the site and prepare detailed proposals.
  4. Enter work details — Specify the Work Location (e.g., “Block C, 3rd Floor, Sector 42”), Work Date (expected start), and Contact Email for vendor queries.
  5. Add the offer description — Provide a detailed description of the work scope in the Offer Description field. This appears as the subject on the printed RFP document and should be comprehensive enough for subcontractors to understand the full requirement.
  6. Review line items — Verify that all work items from the WR have been correctly carried over. Add any clarifying notes to individual line items as needed.
  7. Attach supporting documents — Upload drawings, BOQ breakdowns, technical specifications, site plans, or any other documents that will help subcontractors prepare accurate proposals. Use the RFP_AttachmentFilePath or the DMS integration.
  8. Add subcontractors — Switch to the Vendors section and add one or more registered subcontractors who should receive this RFP (see Managing Vendors below).
  9. Circulate the RFP — Print or electronically send the RFP document to the invited subcontractors. The SSRS report provides a professional, formatted document suitable for external distribution.
Approved WR Required

An RFP can only be created from an approved Work Requisition. Draft, rejected, or cancelled WRs cannot generate RFPs. This ensures that all subcontractor procurement is backed by a properly authorized work scope.

Managing Vendors on an RFP

Subcontractors are added to the RFP through the omni_rfp_vendors table. Each vendor-RFP association is tracked individually, enabling the system to record which subcontractors were invited and when.

Adding Vendors

  1. Open the RFP — Navigate to the RFP and click Items to open the detail view. Switch to the Vendors tab.
  2. Click “Add Vendor” — The system calls omni_sp_scm_AddVendorToRFP to create a new entry in the omni_rfp_vendors table. Select a registered subcontractor from the Vendor Directory.
  3. Repeat for additional subcontractors — Add all subcontractors who should receive this RFP. Each addition is timestamped with the user and date (inserted_by, inserted_on).

Vendor Record Fields

FieldDescription
VendorThe subcontractor party record (vendor_id) from the Vendor Directory. Must be a registered vendor with party type “V” (Vendor).
Added ByThe user who added this vendor to the RFP (inserted_by). Creates an audit trail.
Added OnTimestamp when the vendor was added (inserted_on).
Vendor UIDSystem-generated unique identifier (rfp_vendor_uid) for the vendor-RFP association.
Competitive Bidding

Best practice is to invite at least three subcontractors for every RFP to ensure competitive pricing and transparent vendor selection. The Comparative Statement report is most effective when there are multiple proposals to compare.

Recording Vendor WO Offers

When subcontractors respond with their proposals, their offers are recorded in the system as Vendor WO Offers. The system uses omni_sp_scm_CreateVendorWOOfferFromRFP to create offer records from the RFP context.

  1. Open the RFP — Navigate to the RFP and click Items to access the detail view.
  2. Select the vendor — Choose the subcontractor whose proposal you are recording from the list of invited vendors.
  3. Create WO Offer — Click the “Create WO Offer” action. The system calls omni_sp_scm_CreateVendorWOOfferFromRFP, which creates a Vendor Work Order Offer linked to both the RFP and the vendor. The work items from the RFP are automatically populated into the offer.
  4. Enter pricing details — For each work item, record the subcontractor’s proposed unit rate, quantity, discount (if any), tax components, and any special terms or conditions.
  5. Add delivery and payment terms — Record the subcontractor’s proposed timeline, mobilization schedule, payment milestones, and any deviations from the RFP terms.
  6. Repeat for all respondents — Record offers from every subcontractor who submitted a proposal. This ensures the Comparative Statement has complete data for evaluation.
Viewing All Offers

Use omni_sp_scm_ShowRFPOffers to retrieve all vendor offers associated with an RFP. This stored procedure returns a consolidated view of every subcontractor’s proposal, including item-level pricing, totals, and terms — making it easy to review all responses before generating the Comparative Statement.

Comparative Statement for Work Orders

The Comparative Statement is the central evaluation tool for subcontractor proposals. It presents all vendor WO offers side-by-side in a structured SSRS report, enabling objective comparison and transparent vendor selection. This report is generated by omni_sp_reports_ComparativeStatementWorkOrder.

Report Structure

The Work Order Comparative Statement follows the same structure as the material Comparative Statement but is tailored for work/service pricing:

SectionContent
A. Work Items Basic CostLine-by-line breakdown of each work activity with quantity, UOM, unit rate, discount, tax, and total amount per vendor.
B. Order-Level TaxationAdditional taxes applied at the order level (GST, service tax, etc.).
C. Other ChargesMobilization costs, insurance, any additional charges or order-level discounts. Sub-total shows net additional costs.
Total Landed CostA + B + C — the all-inclusive cost for the complete work package per vendor.
Landed Cost in Job CurrencyTotal converted to the job’s base currency using the applicable exchange rate.
Landed Cost by ItemPer-item landed cost in job currency, compared against the Budgeted Rate from the job estimate.
Position of the SupplierL1 (lowest cost), L2, L3, etc. — automatically ranked by total landed cost.
Technical ApprovalWhether the subcontractor’s technical capability and past performance have been verified.

Evaluation Criteria

When evaluating subcontractor proposals, consider these factors beyond just the lowest price:

CriteriaWhat to Evaluate
Total Landed CostThe all-inclusive cost for the work package. L1 is the lowest bidder, but the lowest price is not always the best choice for subcontract work.
Budget VarianceCompare the proposed rates against the budgeted rates from the job estimate. Large overruns may require budget amendments or scope negotiations.
Technical CapabilityDoes the subcontractor have the skills, equipment, and workforce to execute this scope? Has technical approval been completed?
Timeline & MobilizationCan the subcontractor mobilize within the required timeframe? Delayed mobilization impacts the overall project schedule.
Payment TermsMilestone-based payments, retention percentages, advance requirements, and credit periods affect cash flow planning.
Past PerformanceTrack record on previous Work Orders — quality of work, adherence to schedule, safety record, and dispute history.
Safety & ComplianceInsurance coverage, safety certifications, labour compliance, and adherence to regulatory requirements.
Important: The Comparative Statement footer records the Offer Selected vendor, Selection Date, and Selection Notes. Always document the rationale for vendor selection, especially when the awarded vendor is not the L1 (lowest) bidder. This creates a complete audit trail for the subcontractor selection decision.

Converting Best Offer to Work Order

After evaluating all proposals through the Comparative Statement, the best offer is selected and converted into a Work Order (WO). This is the final step in the subcontractor procurement process.

  1. Review the Comparative Statement — Open the Comparative Statement report and evaluate all vendor proposals using the criteria described above. Identify the preferred subcontractor.
  2. Select the best offer — Mark the preferred vendor’s offer as “Selected” in the system. Add selection notes explaining why this vendor was chosen. The selection can be at the item level if different work activities should be awarded to different subcontractors.
  3. Create Work Order — From the selected offer, click “Create Work Order.” The system creates a new WO header and populates it with the subcontractor details, agreed pricing, quantities, taxes, payment terms, and work schedule from the selected offer.
  4. RFP is updated — The RFP header’s wo_id field is populated with the newly created Work Order ID, completing the traceability chain. The RFP status changes to WO Issued.
  5. Approve the Work Order — The newly created WO enters the approval workflow. Once approved, it becomes a binding commitment with the subcontractor.
Automatic Data Carry-Forward

When a Work Order is created from an RFP offer, all data — subcontractor details, item-level pricing, tax components, payment terms, and work schedule — is automatically carried over. No manual re-entry is required, reducing errors and ensuring the WO exactly reflects the agreed proposal.

RFP Status Lifecycle

An RFP progresses through the following statuses during its lifecycle:

StatusDescriptionNext Actions
DraftRFP is being prepared. Header fields, line items, and vendors can be edited. Not yet circulated to subcontractors.Edit, Add Vendors, Add Items, Finalize
OpenRFP has been finalized and circulated to subcontractors. The offer window is active and proposals are being collected.Record Offers, View Document, Add Vendors
Offers ReceivedOne or more subcontractor proposals have been recorded. The RFP is under evaluation.Record More Offers, View Comparative Statement, Select Offer
EvaluatedAll offers have been reviewed through the Comparative Statement. A preferred vendor has been identified.Create Work Order
WO IssuedA Work Order has been created from the selected offer. The wo_id field is populated. The RFP is complete.View only (link to WO)
CancelledThe RFP has been cancelled. No further action is possible.View only

End-to-End Traceability

The subcontractor procurement chain maintains full traceability from the initial work requirement through to the final Work Order. Every document in the chain links back to its predecessor:

StageDocumentKey LinkDescription
1. Demand Work Requisition (WR) job_id Site team raises a formal request for subcontract work, specifying the scope, quantities, and estimated rates against the job budget.
2. Solicitation RFP wr_id → WR Procurement creates an RFP from the approved WR. Work items are carried forward. Subcontractors are invited and the RFP document is circulated.
3. Response Vendor WO Offers rfp_hdr_id → RFP Each invited subcontractor submits a proposal. Offers are recorded against the RFP with item-level pricing, terms, and conditions.
4. Evaluation Comparative Statement Report on RFP offers All offers are compared side-by-side using the Work Order Comparative Statement. The best offer is selected with documented rationale.
5. Award Work Order (WO) wo_id on RFP The selected offer is converted into a formal Work Order. The WO becomes the binding agreement with the subcontractor for execution.
Complete Audit Trail

At any point, you can trace a Work Order back through the entire chain: WO → RFP → WR → Job. Similarly, from a Work Requisition, you can follow the chain forward to see which RFP was created, which vendors were invited, what offers were received, and which vendor was ultimately awarded the Work Order. This transparency supports audit requirements and management review.

Key Stored Procedures

The following stored procedures power the RFP workflow in the database:

Stored ProcedurePurpose
omni_sp_scm_CreateRFPCreates a new RFP header and detail rows from an approved Work Requisition. Auto-populates work items from the WR.
omni_sp_scm_AddVendorToRFPAdds a registered subcontractor to the RFP’s invited vendor list. Creates a record in omni_rfp_vendors.
omni_sp_scm_CreateVendorWOOfferFromRFPCreates a Vendor WO Offer from the RFP context, populating offer items from the RFP detail rows for a specific vendor.
omni_sp_scm_ShowRFPOffersRetrieves all vendor offers associated with an RFP, showing item-level pricing, totals, and terms for review.
omni_sp_reports_ComparativeStatementWorkOrderGenerates the SSRS Comparative Statement report for Work Order offers, showing side-by-side vendor comparison with L1/L2 ranking.

Best Practices

  1. Start from an approved Work Requisition — Always create RFPs from properly approved WRs. This ensures the work scope has been validated against the job budget and authorized by the project manager before subcontractor solicitation begins.
  2. Provide detailed scope documents — Attach comprehensive drawings, BOQ breakdowns, technical specifications, and site plans to the RFP. The more detail subcontractors receive, the more accurate and comparable their proposals will be. Vague scope descriptions lead to wide price variations and scope disputes during execution.
  3. Invite at least three subcontractors — Competitive bidding requires a minimum of three proposals for meaningful comparison. If fewer than three vendors respond, consider extending the offer window or inviting additional subcontractors before proceeding to evaluation.
  4. Allow adequate response time — Set the offer window (start to end date) to give subcontractors enough time to visit the site, assess the work, and prepare detailed proposals. For complex work packages, allow at least two weeks. Rushed timelines result in inflated or inaccurate proposals.
  5. Document selection rationale — When selecting a vendor from the Comparative Statement, always add selection notes explaining the decision. This is especially important when awarding to a vendor who is not the L1 (lowest) bidder — document the technical, timeline, or quality factors that justified the higher cost.
  6. Evaluate beyond price — For subcontract work, the cheapest bid is not always the best. Assess the subcontractor’s technical capability, past performance on similar work, safety record, financial stability, and ability to meet the project schedule. Use the technical approval mechanism to verify capability before finalizing selection.
  7. Maintain the traceability chain — Ensure that every RFP links back to its source WR and forward to the resulting WO. Do not create Work Orders without going through the RFP process for tendered work. This preserves the audit trail and ensures all subcontractor commitments are backed by competitive evaluation.
  8. Close the offer window before evaluating — Wait until the Offer End Date has passed before generating the Comparative Statement. This ensures all invited subcontractors have had an equal opportunity to submit proposals and the comparison is fair.