AWRA OpsHub Search

Quote Us for an Unspecified Quantity

The request-for-quotation form makes quantity compulsory. The API does not, on either creating or updating a line — and where it is missing, null is written. A supplier is then asked to price something without being told how much of it.

Procurement Insights AWRA OpsHub Team 11 min read

A quotation request is a question, and the quality of the answer is bounded by the quality of the question. Most of what makes a request answerable is not in the software. But quantity is, and it is the one field a price cannot be given without.

Two doors, one rule

A line on a request for quotation carries a quantity. On the form, it is required and must be at least one. Through the API, on both the create path and the update path, it is optional.

When it is not supplied, the API looks for an alternative key, and if that is missing too it writes null. Not zero, not a default, not a refusal — an absent quantity, stored.

The form

Quantity required, minimum one. A buyer cannot create this state by hand.

Built in

The API, creating

Quantity optional. Falls back to a second key, then to null.

Not built

The API, updating

The same, so an existing good line can be emptied.

Not built

A downstream refusal

Nothing checks the quantity again before the request is sent out.

Not built

The update path is the one that stings. A line created correctly on the form can be emptied afterwards through the API, and nothing about the request will look different.

What a supplier does with it

Nothing good, and the range of responses is the actual cost. One supplier ignores the line. One quotes a unit price with no commitment. One quotes for the quantity they assume you meant, and the assumption is not written down anywhere.

You now have three responses that cannot be compared, on a line you cannot award, and the reason is invisible on your screen because a blank quantity looks like a blank quantity rather than like a defect.

A request with quantities

  • Every response is a total you can compare
  • Price breaks are meaningful
  • Freight can be quoted
  • The award is arithmetic

A request with a blank

  • Responses are unit prices, or silence
  • Price breaks cannot be offered
  • Freight cannot be estimated at all
  • The award is a conversation

Why it matters more where freight is the cost

In a market where goods arrive by road over long distances, quantity is not a detail of the price — it is most of it. Whether something ships as part of a load or as its own movement changes the delivered cost more than the unit price does.

So a blank quantity does not degrade a quotation gracefully in that context. It makes the most expensive component of the answer unquotable, and the supplier who does answer will have priced in the uncertainty.

Quotation requests, precisely

What AWRA OpsHub does today

  • Requests for quotation with lines, sent to selected suppliers, with responses recorded against them.
  • A required quantity of at least one on the web form.
  • Supplier prequalification and blacklisting with a reason, a date and an actor, so a lapsed or barred supplier drops out of selection.
  • A qualification that expires automatically and deactivates the supplier without anybody acting.

What it does not do

  • A required quantity on the API, on either the create or the update path.
  • Any downstream check that a line has a quantity before a request is issued.
  • A request for proposal or request for information. Only quotation requests exist.
  • Any scoring model, weighted evaluation, panel scoring or sealed bidding.
  • A required-by date on a line, distinct from the request.

Not ours, by choice

  • This was found by comparing the web and API rule sets during an audit for this batch, and it is the second instance of that exact shape found in one afternoon. The other one is about a tax rate ceiling.
  • The absence of proposals, information requests and scoring is long-standing and already documented; this page is about the quantity field only and does not re-argue those.
  • Nothing here is Cameroonian or Gabonese. Central Africa is here because inland freight dominates delivered cost, which is what makes an unspecified quantity unusually expensive rather than merely untidy.

What we would build

The correction, and the check that finds the next one

The same pair as the other instance found in this audit, because the defect is the same defect wearing a different field name.

One validation definition behind the form and the API

Shared rules for a quotation line, so the form and both API paths cannot disagree. The correction is small; doing it as a shared definition rather than as three matching copies is what stops it recurring.

An automated comparison of create and update rules

A check across every web and API controller pair asserting the rule sets agree. This product already runs checks of exactly this shape for permissions and for output escaping; validation is the obvious third.

How it works: you describe the requirement, we return a written scope, timeline and cost, and once agreed it is built into your environment and maintained as part of the product.

Talk to us about procurement data quality

Our position

If you raise quotation requests through the screens, this does not affect you and never has. If you create or update them through an integration, validate the quantity on your side until the shared rule ships — and check any request whose lines came from an integration before you issue it. The fix is small and it is recorded publicly with its file references.

Four questions about the requests you send out

Can a line be issued with no quantity?

A good answer sounds like

No, by any route.

What it actually means

Ask about every route. Ours answers differently for the form and the API.

What is checked at the moment of sending?

A good answer sounds like

Something.

What it actually means

Validation at creation is not validation at issue, and lines can be edited in between — which is where the update path matters.

Can suppliers see each other's responses?

A good answer sounds like

No.

What it actually means

A different question, and worth asking in the same breath because it is the other thing that makes a comparison meaningless.

Is there a required-by date on the line?

A good answer sounds like

Yes.

What it actually means

Ours is on the request, not the line. Where lead times differ by item, that matters, and it is stated as absent.

Check the lines that came from a machine

Anything created through an integration has been through a different set of rules than anything typed on a screen. That is true of every product with an API, and it is worth one check before a request goes out.

Talk about sourcing

Frequently asked questions

Would a supplier notice a blank quantity?

Some would ask and some would assume, and the ones who assume are the problem — their quote looks comparable and is answering a question you did not pose. That is worse than the ones who ask.

Does this affect purchase orders too?

The finding is on quotation request lines specifically. An order raised from a quotation carries the quoted quantity, so the exposure is at the sourcing stage rather than at the ordering one — which is the stage where it is cheapest to correct and hardest to see.

Why does the API have an alternative key at all?

Backward compatibility — it accepts either name and prefers one. That is reasonable in itself, and it is also what turns a missing field into a silent null rather than a rejection, because two absent keys look like one deliberate omission.

Help Center

Need a quick answer while you read?

Run inventory, procurement, assets, sales, and field work with approved AWRA guidance for setup, migration, integrations, security, pricing, and support.

Search all approved AWRA public help articles.

Open Help Center