Bid Proposal Manual¶
Introduction¶
Welcome to the Bid Proposal team!
We are the sharp blade of an axe. We amplify the efforts put in and crack open hard deals. We are always at the front line, taking initiatives, sharp, alert, focused and quick to respond.
Bid Proposal Process¶
- ITB: Invitation To Bid (From Customer)
- RFQ: Request For Quotation
- RFI: Request For Information
- BP: Bid Proposal
- SS: Sales Support
- VQ: Vendor Qualification (Require when the supplier is new and the value is substantial.)
(A) Bid Initiating Phase¶
flowchart TB
a(["(A) Start"])
itb([ITB])
evaluate{"Evaluate<br/>ITB"}
itb-registered{"ITB<br/>Registered"}
register-itb("Request to Register/<br/>Register ITB")
a --> itb
itb --> evaluate
evaluate --> |Go| itb-registered
itb-registered -->|No| register-itb
register-itb --> itb-registered
sales-checklist{"Received<br/>Sales Checklist"}
request-sc("Request<br/>Sales Checklist")
initiate("Initalize Project<br/><tt>bid init</tt>")
organize("Organize<br/>ITB Documents")
itb-registered -->|Yes| sales-checklist
sales-checklist -->|No| request-sc
request-sc --> sales-checklist
inform("Inform<br/>Sales/Customer")
itb-registered -->|Yes| initiate
evaluate -->|No-go| inform
inform --> End([End])
b2((B))
b((B))
study(Study Deatiled<br/>Project Requirements)
enough-partial-info{"Enough Partial Info to<br/>Liaise with Suppliers"}
required-clarification{"`Require<br/> **Initial** Clarification<br/>or Additional Info`"}
send-rfi("Send RFI/Clarification<br/>to Customer")
sales-checklist --> |Yes| organize
initiate --> organize
organize --> study
study --> required-clarification
required-clarification --> |Yes| enough-partial-info
enough-partial-info --> |Yes| b
enough-partial-info --> |Yes/No| send-rfi
send-rfi --> required-clarification
required-clarification ---> |No| b2
click sales-checklist "https://egg.posonekyu.com/bid-proposal/sample-sales-checklist-r0.pdf"
(B) Supplier RFQ Phase¶
flowchart TB
b(("B"))
b2((B))
b3((B))
drop([Drop])
send-rfq("Send RFQ/RFI to Suppliers<br/>or Price Negotiation with Suppliers")
require-clarification-s{"Require<br/>Clarification<br/>or Additional<br/>Info"}
received-rfq{"Received<br/>Quotation or<br/>Information"}
meet-specs{"Meet<br/>Requirement<br/>Specs"}
try{"Tries <= 3"}
is-critical-supplier{"Is Critical<br/>Supplier"}
inform("Inform<br/>Sales/Customer")
inform2("Inform<br/>Sales/Customer")
chase("Chase<br/>Supplier")
End([End])
End2([End])
drop2([Drop])
negotiate{"Right Time to<br/>Negotiate Price"}
new-supplier{Is New Supplier}
require-vq{Require VQ}
vq(Engage Purchasing<br/>for Vendor Qualification)
price-negotiated{Price<br/>Negotiated}
make-request("Make Request<br/> & Negotiate")
c((C))
has-alternate-s{"Has Alternative<br/>Supplier"}
is-critical-requirement{"Is Critical<br/>System<br/>Requirement"}
b --> send-rfq
send-rfq --> received-rfq
received-rfq --> |Yes| require-clarification-s
require-clarification-s --> |Yes| send-rfq
received-rfq --> |"No<br/>Not In-Time"| is-critical-supplier
is-critical-supplier --> |Yes| try
is-critical-supplier --> |No| drop
try --> |Yes| chase
try --> |No| inform
inform --> End
chase --> received-rfq
require-clarification-s --> |No| meet-specs
meet-specs --> |No| is-critical-requirement
meet-specs --> |Yes| new-supplier
new-supplier --> |No| price-negotiated
new-supplier --> |Yes| require-vq
require-vq --> |Yes| vq
require-vq --> |No| price-negotiated
vq --> price-negotiated
negotiate --> |No| c
price-negotiated --> |Yes| c
price-negotiated --> |No| negotiate
negotiate --> |Yes| make-request
make-request --> b2
is-critical-requirement --> |No| drop2
is-critical-requirement --> |Yes| has-alternate-s
has-alternate-s --> |Yes| b3
has-alternate-s --> |No| inform2
inform2 --> End2
click vq "https://egg.posonekyu.com/bid-proposal/jason-vendor-qualification-form-r4-2023-07-14.docx"
(C) Bid Compilation Phase¶
flowchart TB
c((C))
compile-proposal("Compile Into Main Proposal")
proposal-completed{"Proposal Completed"}
has-enough-time{"Has Enough Time"}
has-historical-data{"Has Historical Data"}
request-extension("Request ITB Extension")
allow-partial-submission{"Partial<br/>Submission<br/>Allowed"}
seek-consensus("Seek Internal Consensus<br/>to Drop ITB")
send-review("`Internal Review`")
approved{"Approved"}
revise-proposal("Revise Proposal")
extension-granted{"Extension<br/>Granted"}
prepare-docs("Generate & Prepare<br/>Necessary Docs")
inform("Inform<br/>Sales/Customer")
c1((C1))
c11((C1))
d((D))
b2((B))
End([End])
b((B))
project-phase{"Porject Phase"}
e1((E1))
c --> compile-proposal
compile-proposal --> proposal-completed
proposal-completed --> |Yes| c1
c1 --> send-review
send-review --> approved
approved --> |Yes| prepare-docs
prepare-docs --> project-phase
project-phase --> |Submission| d
project-phase --> |Clarification| e1
approved --> |No| revise-proposal
revise-proposal --> send-review
has-enough-time --> |Yes| b
proposal-completed --> |No| has-enough-time
request-extension --> extension-granted
has-historical-data --> |Yes| compile-proposal
has-enough-time --> |No| has-historical-data
has-historical-data --> |No| request-extension
extension-granted --> |No| allow-partial-submission
allow-partial-submission --> |Yes| c11
allow-partial-submission --> |No| seek-consensus
extension-granted --> |Yes| b2
seek-consensus --> inform
inform --> End
(D) Bid Submission Phase¶
flowchart TB
d((D))
send-for-commercial("Send for<br/>Commercial Review")
%% Sales, BP, SS
submission-by{"Submission By"}
%% Direct, Portal
submission-mode{"Submission Mode"}
submit-via-email("Submit Via Email")
submit-via-portal("Submit Via Portal")
inform("Inform Customer")
include-pdf("Include Required Files<br/>in Commercial Review Itself<br/>or Give These Separately<br/>to Submit")
e((E))
d --> send-for-commercial
send-for-commercial --> submission-by
submission-by --> |BP| submission-mode
submission-mode --> |Direct| submit-via-email
submit-via-email --> e
submission-mode --> |Portal| submit-via-portal
submit-via-portal --> inform
inform --> e
submission-by --> |SS| include-pdf
submission-by --> |Sales| e
include-pdf --> e
(E) Bid Clarification Phase¶
flowchart TB
e((E))
receive-response{"Receive Customer Response"}
proposal-type{"Proposal Type"}
pass-time{"Sufficient Time<br/>Has Elapsed"}
wait("Wait")
response-type{"Response Type"}
work-with-sales("Work Together<br/>with Sales")
require-clarification-s{"Required<br/>Clarification<br/>with Suppliers"}
prepare-docs("Prepare<br/>Necessary Docs")
b((B))
d((D))
mark-lost("Mark Project Lost")
End1([End])
tries{"Tries <= 3"}
End2([End])
chase("Chase<br/>Sales/Customer")
f((F))
e1((E1))
e2((E))
e --> receive-response
tries --> |Yes| chase
receive-response --> |No| pass-time
wait --> pass-time
pass-time --> |Yes| proposal-type
pass-time --> |No| wait
proposal-type --> |Budgetary| End1
proposal-type --> |Firmed| tries
tries --> |No| mark-lost
mark-lost --> End2
chase --> e2
receive-response --> |Yes| response-type
response-type --> |Lost| mark-lost
response-type --> |Commercial<br/>Clarification| work-with-sales
response-type --> |Tecnical<br/>Clarification| e1
e1 --> require-clarification-s
require-clarification-s --> |No| prepare-docs
require-clarification-s --> |Yes| b
work-with-sales --> prepare-docs
prepare-docs --> d
response-type --> |PO<br/>Contract| f
(F) Bid Handover Phase¶
flowchart TB
f((F))
check-po(Check PO or Contract)
po-correct{PO Correct}
highlight-discrepancies(Highlight Discrepancies in<br/>PO or Contract Document)
inform(Inform Sales, SS or Customer)
mark-won(Mark Project Won)
handover("Handover Project by Following Handover Checklist")
attend-internal(Attend Internal KOM)
attend-external(Attend External KOM)
End([End])
f --> check-po
check-po --> po-correct
po-correct --> |No| highlight-discrepancies
highlight-discrepancies --> inform
inform --> check-po
po-correct --> |Yes| mark-won
mark-won --> handover
handover --> attend-internal
attend-internal --> attend-external
attend-external --> End
click handover "https://egg.posonekyu.com/bid-proposal/sample_handover_checklist_r3.pdf"
Proposal File Versioning¶
- Budgetary: As long as the client we are quoting to does not have the project in hand themselves, it will be treated as budgetary.
- Firmed: The client has the project in hand and is looking for actual purchase.
- VO: Variation Order for the project we have already won.
- Major Revision: It means there is any kind of change in selling price. If in doubt, use major revision. Major revision requires updating changes in color that correspondances to the revision number.
- Minor Revision: It means there is no change in price and that the change is only technical or re-arrangement of items. The color for the changes remains as per the current revision number.
flowchart TB
s([Start])
proposal-type{Proposal Type}
budgetary("`Code **B** Suffix<br/>File Name with B0, B1, B2...
**B** code starts count from **0**`")
revision-type{Revision Type}
first-submission("`Code **R** Suffix<br/>Very First Submission<br/>**R0**. if VO, **V1-R0**`")
major-revision("`Update **R** number<br/>e.g. **R1, R2**...,<br/>if VO, **V1-R1, V3-R1**, ...
Revision Color Update Required`")
minor-revision("`Append '.' & sub-number after major-revision e.g. **R0.1, R2.2** ...,
if VO, **V1-R0.1, V2-R1.2**,...
Revision Color Update **Not** Required`")
vo("`Code **V** Suffix<br/>File Name with V1, V2, V3... followed by hyphen**(-)**
e.g. **V1-, V2-**
**V** code starts count from **1**<br/>`")
End([End])
s --> proposal-type
proposal-type --> |Budgetary| budgetary
proposal-type --> |Firmed| revision-type
proposal-type --> |VO| vo
revision-type --> |First| first-submission
revision-type --> |"Major<br/>(Selling Price Change)"| major-revision
revision-type --> |"Minor<br/>(No Selling Price Change)"| minor-revision
vo --> revision-type
budgetary & first-submission & major-revision & minor-revision --> End
The revision without the minor revision number, e.g. R0, V2-R1, etc., is implicitly considered to be of minor revision "0". This means R0=R0.0, V1-R0=V1-R0.0, etc. Therefore, when a minor revision is carried out, the count starts from 1.
For MODEC/OFS Budgetary Proposals
They do not accept if we put in as Budgetary Proposal in the cover page. In this case, in the cover page we can put in Commercial Proposal. However, file version to remain Code B.
Item Removal Using Negative Quantity¶
Overview¶
Items can be removed from a revision using a negative quantity in the Qty column. This is the recommended approach when submitting a revised proposal where a client has requested removal of a previously quoted item. It provides a clear visual signal (the negative number) and produces correct financial calculations.
The alternative is the REMOVED scope keyword. Both approaches produce identical lot prices and financial figures — the choice is a matter of preference for how the removal is communicated.
When to Use Each Approach¶
| Approach | Use when |
|---|---|
| Negative Qty | You want to signal removal with a visible number (e.g. -1 lot, -6 ea). The item stays in the BoM as a clear record. |
| REMOVED keyword (Scope column) | You prefer a text label. The item's price and cost cells go blank; only the REMOVED tag is visible. |
Both approaches produce the same lot price, TCDQL, BTCQL, TSPL, TP, and TM at the sheet subtotal level.
How to Apply Negative Quantity¶
Full system or lot removal¶
Set the Title row Qty to negative. Leave all sub-items at their original positive quantities.
9 PROGRAMMING KIT -1 lot ...
1 Programming USB Cable For R7Ex 6 ea
2 Programming USB Cable For DM 6 ea
3 Programming USB Cable For DP 6 ea
The lot price and all financial columns (TCDQL, TSPL, TP, TM) automatically go negative, correctly reflecting the credit back to the client.
Partial removal — one sub-item within a retained lot¶
Set the sub-item (Lineitem) row Qty to negative. Leave the Title row at its original positive quantity.
9 PROGRAMMING KIT 1 lot ...
1 Programming USB Cable For R7Ex -6 ea ← removed
2 Programming USB Cable For DM 6 ea
3 Programming USB Cable For DP 6 ea
The lot price automatically adjusts downward to reflect only the remaining positive-quantity items. The removed sub-item shows as a line with a negative number — no price is displayed for it (it remains in Lumpsum format like the other sub-items).
Set-based items¶
Same rules apply. Negate the Title row to remove the whole set, or negate a sub-item to remove that component from a retained set.
Financial Impact¶
Full lot/set removal (negative Title qty)¶
All financial columns on the Title row go negative:
| Column | Effect |
|---|---|
| G (Subtotal Price) | Negative — the credit amount shown to the client |
| TCDQL | Negative — material cost credit |
| BTCQL | Negative — base cost credit |
| TSPL | Negative — selling price credit |
| TP | Negative — profit credit |
| TM (GM%) | Shows the item's original margin % (informative — signals what was given up) |
The sheet Subtotal row aggregates all of these correctly. The project-level GM recalculates to reflect the net position after removal.
Sub-item removal (negative Lineitem qty)¶
The lot Title's financial figures reduce proportionally:
| Column | Effect |
|---|---|
| G (Subtotal Price, lot Title) | Reduced — reflects remaining items only |
| TCDQL, BTCQL, TSPL, TP | Reduced accordingly |
| TM (GM%) | Recalculates based on the revised lot figures |
Rules and Constraints¶
-
Never negate both the Title and a sub-item within the same lot. If the Title is already negative (whole lot removed), negating a sub-item within it is meaningless — the sub-item is already excluded by the Title's negative quantity. The result is undefined and should be avoided.
-
Sub-item negative qty is equivalent to REMOVED for financial purposes. The lot price, cost, and selling price figures are identical whether a sub-item is marked
REMOVEDor set to a negative quantity. The only difference is visual. -
Positive sub-item quantities are not affected. When you negate a sub-item, all other sub-items in the same lot continue to contribute normally to the lot price.
-
The lot price cannot go negative through sub-item negation. Because negative sub-items are excluded from the lot price calculation, the displayed lot price always reflects the sum of the remaining positive-quantity items only. (Note: negating the Title row of a lot can produce a negative lot total — this is intentional and represents a credit.)
Gross Margin on Removed Items¶
When the Title row is negated (full removal), the TM column shows the same margin percentage as the original item. This is correct: the percentage reflects the item's inherent profitability, which is unchanged by the removal. The sheet-level subtotal GM is the figure to watch — it recalculates to the correct net margin across all remaining and removed items.
When a sub-item is negated (partial removal), the lot's TM recalculates based on the revised lot figures.
Summary of Scope Keywords¶
For reference, all scope keywords and their effect on pricing:
| Scope | Price shown | Included in totals |
|---|---|---|
| (blank) | Yes | Yes |
OPTION |
Yes | No |
INCLUDED |
No | Yes (cost only) |
WAIVED |
No | Yes (cost only) |
TBA |
No | No |
REMOVED |
No | No |
| Negative Qty | No (sub-item) / Negative (Title) | Yes (as credit) |