Compare quotations with AI: a three-offer exercise

Let's discuss your project →

What you will finish with

By the end of this exercise, you will have a repeatable way to compare three quotations with AI without turning the model into an automatic buyer. The output is not just a table of prices: it is a comparison pack that separates what is declared, what is calculable, and what is still unknown.

That matters because the NIST AI RMF Core is a voluntary framework organized around govern, map, measure, and manage, and the NIST Playbook offers suggested actions rather than a mandatory sequence or checklist. In other words, the point is to make the process explicit, not to outsource the decision to a chatbot. NIST AI RMF Core · NIST AI RMF Playbook · NIST AI Risk Management Framework

Who this is for, tools, prerequisites, and materials

Who this is for

  • Procurement, operations, IT, and finance teams comparing software or service quotations.
  • SMEs that need to compare setup fees, monthly fees, support, renewals, and scope.
  • Editors or trainers who want to show a safe AI workflow with a fully simulated example.

Tools

  • A spreadsheet or document editor.
  • An AI model that can read long text and produce a structured answer.
  • A calculator, if you want to verify the arithmetic by hand.

Prerequisites

  • You know the business problem you are buying for.
  • You can define a shared comparison scope.
  • You accept that an offer may be non-comparable if key details are missing.

Material provided in this article

  • Three complete simulated quotations.
  • A copy-ready prompt.
  • A filled comparison table.
  • A decision example.
  • Troubleshooting and final acceptance checks.

Everything below is fictional and used only for training. Do not treat it as a real procurement document.

Simulated quotations: complete data sheet

Copy this block into your working document before you ask the AI to compare anything.

COMMON COMPARISON SCOPE
We need a solution for a single operational workflow with:
- up to 5 users included;
- 1 standard workflow;
- import of up to 500 records;
- one initial training session;
- 12 months of corrective maintenance.

OFFER A
- Initial setup: EUR 4,500
- Monthly fee: EUR 100
- Proposed duration: 12 months
- Renewal: automatic for 12 months unless canceled with 30 days’ notice
- Support included: yes, by email, 8x5, response within 2 business days
- Included activities: initial configuration, 1 standard workflow, 2 hours of onboarding training, ordinary corrective maintenance
- Excluded activities: extra development, data migration above 1,000 records, phone support, custom reports, extra environments
- Notes and constraints: the monthly fee covers up to 5 users; extra users are charged separately

OFFER B
- Initial setup: EUR 5,000
- Monthly fee: EUR 0
- Proposed duration: 12 months
- Renewal: not automatic; a new proposal must be accepted at expiry
- Support included: yes, base ticketing only, within 5 business days; no dedicated SLA
- Included activities: initial configuration, import of up to 500 records, 1 hour of remote onboarding training
- Excluded activities: evolutionary maintenance, SLA, phone assistance, custom reports on request, extra environments
- Notes and constraints: the service is sold as a one-off project, with limited support during the first 12 months

OFFER C
- Initial setup: EUR 3,000
- Monthly fee: EUR 180
- Proposed duration: not specified
- Renewal: not specified
- Support included: “included”, but without hours, channels, or response times
- Included activities: “project support” and “ongoing assistance”, with no operational detail
- Excluded activities: not specified
- Notes and constraints: the scope is unclear; it is not obvious whether it covers the same objective as the other two offers

1. Freeze the comparison rules before asking the AI

Work in your spreadsheet or document first, not in the prompt field. Create one row per offer and at least these columns: setup, monthly fee, duration, renewal, support, included activities, excluded activities, notes, comparable/non-comparable status.

What to do

  • Paste the quotations exactly as written.
  • Keep the wording untouched.
  • If a field is missing, write not specified instead of guessing.

Expected result

  • The comparison starts from a common base.
  • The AI does not need to invent anything.

If it diverges

  • If someone already rewrote the quotations in free text, go back to the original version and recopy only the declared facts.

This step is the AI equivalent of setting the spreadsheet structure before entering formulas. If the inputs are already mixed, the model will only sort out your confusion faster.

2. Paste the full dataset and ask for extraction only

Now open the AI and ask it to extract the declared fields only. Do not ask for a winner yet.

Use this prompt exactly, or adapt it only if your teams need a different output format.

Compare ONLY the three quotations below.

Rules:
1. Do not invent any missing data.
2. If a field is not specified, write exactly: “not specified”.
3. Calculate the 12-month total only if duration is explicitly stated and the scope is comparable.
4. If an offer lacks duration, renewal, support detail, or a minimum scope, mark it as non-comparable.
5. Do not automatically choose the lowest price as the winner.
6. Separate:
   - declared cost;
   - usable 12-month total;
   - unknown or non-usable total.
7. Return:
   - a comparison table,
   - the key differences,
   - the questions to send to the vendors,
   - a motivated decision with stated limits.

OFFER A:
[insert Offer A]

OFFER B:
[insert Offer B]

OFFER C:
[insert Offer C]

Expected result

  • The model extracts setup, monthly fee, duration, renewal, support, inclusions, exclusions, and notes.
  • Unknown fields are clearly marked.

If it diverges

  • If the model fills gaps with assumptions, stop and resend the instruction: “Return only text explicitly present in the offers; replace everything else with not specified.”

Simulated extraction output

This is what a correct extraction should look like on the sample data.

Field Offer A Offer B Offer C
Initial setup EUR 4,500 EUR 5,000 EUR 3,000
Monthly fee EUR 100 EUR 0 EUR 180
Proposed duration 12 months 12 months not specified
Renewal automatic, 30 days’ notice not automatic not specified
Support email, 8x5, 2-business-day response base ticketing, 5-business-day response not specified
Included activities setup, 1 workflow, training, corrective maintenance setup, import up to 500 records, 1 hour training not specified in detail
Excluded activities extra development, extra migration, phone, custom reports, extra environments evolutionary maintenance, SLA, phone, custom reports, extra environments not specified
Status comparable comparable non-comparable

3. Compare only what is actually comparable

At this point, do not calculate totals for the whole set as if every offer were equivalent. First check whether the comparison scope matches: same objective, same duration, same scope, and enough detail to understand what is and is not included.

What to do

  • Compare the declared scope line by line.
  • Verify whether support, renewal, and exclusions are sufficiently clear.
  • Mark offers with unclear duration or scope as non-comparable.

Expected result

  • You know which quotations can be compared economically and which ones can only be compared after clarification.

If it diverges

  • If an offer is vague but the model tries to “complete” it, do not accept the completion. Vague is not the same as detailed.

For example, Offer C mentions “project support” and “ongoing assistance”, but that is not enough to know whether it really matches the same workload, service level, or corrective-maintenance obligation as the other two offers.

4. Calculate the 12-month totals for the comparable offers

Now you can do the arithmetic for the offers that have a declared 12-month duration and a sufficiently clear scope.

Where to work

  • In the spreadsheet, add a 12-month total column.
  • In the AI output, ask for totals only for comparable offers.

How to calculate

  • Offer A: EUR 4,500 + 12 × EUR 100 = EUR 5,700
  • Offer B: EUR 5,000 + 12 × EUR 0 = EUR 5,000
  • Offer C: arithmetic can be attempted only as a pure math exercise, but the result is not usable because the duration is not specified and the scope is unclear

Expected result

  • A and B produce usable 12-month totals.
  • C stays marked as non-comparable.

If it diverges

  • If the model assigns a “winner” to C just because it has the lowest setup fee, stop the process. A lower starting price does not make an incomplete offer usable.

Simulated compiled output

Offer Declared cost Usable 12-month total Status
A EUR 4,500 + EUR 100/month EUR 5,700 comparable
B EUR 5,000 + EUR 0/month EUR 5,000 comparable
C EUR 3,000 + EUR 180/month not usable non-comparable

This is the key distinction in the exercise:

  • declared cost = the numbers the vendor wrote down;
  • usable 12-month total = the number you can safely use in a decision;
  • unknown or non-usable total = a figure that may be arithmetically possible but is not decision-safe.

5. Compare scope, support, renewal, and exclusions separately from price

A quotation can be cheaper and still be less useful if it excludes the service you actually need. That is why the comparison should never stop at the total.

What to do Create a second comparison table with at least these dimensions:

  • support channel and response time;
  • renewal terms;
  • included and excluded activities;
  • user limits;
  • migration limits;
  • custom reporting;
  • extra environments.

Expected result

  • You can explain why two offers with similar numbers are not the same deal.
  • You can identify whether a cheaper price is simply a narrower scope.

If it diverges

  • If the AI says “support included” means “full support”, reject that inference. Ask for channels, hours, and response times.

Simulated comparison notes

  • Offer A is more explicit about support: email, 8x5, and response within 2 business days.
  • Offer B is cheaper in year one, but support is limited to base ticketing with a 5-business-day response.
  • Offer C is too vague to compare, because “included” does not tell you how the service will actually be delivered.

This step is also where a responsible AI approach matters. The NIST framework is useful precisely because it encourages measurement and governance instead of blind automation. NIST AI RMF Core

6. Turn missing data into questions for the vendor

Missing information should not be filled in by the model. It should become a precise question.

What to do Ask the AI to convert every gap into a vendor question.

Questions to ask

  1. Is the duration really 12 months?
  2. Is renewal automatic or subject to explicit approval?
  3. Which support channels are included?
  4. What are the response times and service hours?
  5. Which activities are included in the monthly fee?
  6. Are there user limits or record limits?
  7. Is data migration included, and up to how many records?
  8. Are extra environments, reports, or phone support excluded or available as add-ons?

Expected result

  • Every unclear point becomes a decision question.
  • The comparison becomes repeatable across vendors.

If it diverges

  • If a vendor answers vaguely, keep the field marked as not specified. Do not reward vague language with an assumption.

Simulated missing-data case

If you remove the duration line from Offer A, the AI should no longer calculate its 12-month total. The correct reaction is not to guess 12 months; it is to ask for the duration and mark the offer incomplete until it is confirmed.

7. Make the decision and record it in a reusable register

The final decision is a human decision. The AI can structure the evidence, but it should not proclaim a winner on its own.

Where to work

  • In the final section of your document or in a procurement memo.
  • In a reusable register for future quotation rounds.

What to write

  • which offers are comparable;
  • which offer is cheapest in year one;
  • which offer has the clearest scope;
  • which gaps still block the decision;
  • who owns the next action.

Expected result

  • The decision is traceable.
  • The team can reopen the comparison later without restarting from scratch.

If it diverges

  • If the group wants to choose only by the lowest number, stop and re-open the scope table. The cheapest offer may simply be the least complete one.

Simulated decision example

  • If the goal is to minimise first-year spending, Offer B wins on cost: EUR 5,000 versus EUR 5,700 for Offer A.
  • If the goal is to reduce ambiguity and keep support terms clearer, Offer A is easier to defend because its scope and support are more explicit.
  • Offer C must stay on hold until duration, renewal, support, and scope are clarified.

Reusable register

Field Offer A Offer B Offer C Who checks When
Duration 12 months 12 months not specified procurement before pricing
Renewal automatic not automatic not specified procurement + legal before approval
Support email, 8x5 ticketing only not specified IT / operations before signature
Scope clarity high medium low business owner before selection
12-month total EUR 5,700 EUR 5,000 not usable finance before decision
Decision status comparable comparable pending sponsor at the end of the cycle

8. Troubleshooting and final acceptance check

Troubleshooting

If the model invents details

  • Re-run the prompt with the sentence: “Do not invent any missing data.”
  • Replace any uncertain field with not specified.

If the model compares different scopes as if they were equal

  • Split the price column from the scope column.
  • Verify that inclusions and exclusions are aligned before using totals.

If a vague offer is treated as valid

  • Pause the process.
  • Ask for duration, renewal, support, and included activities before any decision.

If the team wants to pick the cheapest offer immediately

  • Show the exclusions table.
  • Point out what is missing from the scope and whether those omissions would create later work.

Final acceptance check

Your comparison is ready only if all of the following are true:

  • each quotation was copied without creative rewriting;
  • every missing field is clearly marked;
  • duration and scope are known before totals are calculated;
  • only comparable offers receive a usable 12-month total;
  • support, exclusions, and renewal are checked separately from price;
  • missing information is turned into vendor questions;
  • the final decision is written by a person, not by the model.

If all seven checks pass, the exercise is complete.

If you are applying this to a real software or integration purchase, continue with the service pages that match the decision context, such as benefit AI and responsible automation, strategic IT advisory and governance, and custom software and integrations. If you want to turn the exercise into a live project discussion, describe your project.

Sources