Back to storiesPractical guides

Turn field notes into a quote you can check

Build a quote draft from fictional site notes, customer confirmations and a rate card. Trace each line, keep unpriced items visible, and check a second-round change.

7 min read
On this page7 sections

A usable quote starts with a clear scope

A site visit ends with a note saying “two or three units.” A customer later confirms two. There are two versions of the rate card, and nobody has confirmed transport. Turning those scraps into a convincing proposal is easy; keeping the agreed scope and the open questions visible takes more care.

In its September 15, 2026 small-business article, Anthropic describes turning a site-visit voice memo into a priced proposal for review. We borrow that task idea for an original exercise: a fictional audiovisual rental team prepares a local quote draft from text files. This exercise does not use Claude’s integrations or its sending and signature workflows.

You will produce two files: proposal.md, the draft a colleague can read, and evidence.md, the record they can use to check every quantity and price. Then you will handle one customer change without losing an unresolved cost.

Prepare the practice folder

Download the fictional quote exercise, unzip it into a new folder, and read its README. You need a configured model connection in Onevium and Node.js 20 or later for the reference calculation; no packages need installing. All names, requests and prices are teaching data. The site notes are already text, so no voice recording or transcription is required.

Use Add Project → Open an existing folder to open the extracted project, then create a conversation from that project row. Confirm the directory before sending a task. In the input box, type @ and a filename to select a project file.

The inputs have different jobs:

FileWhat it establishes
field-notes.mdThe customer originally considered two or three units; this does not fix a quantity
confirmation-v1.mdTwo units and four installation hours
rate-card-current.jsonSeptember 1, 2026: CNY 300 per unit and CNY 150 per installation hour
rate-card-previous.jsonAugust 1, 2026: CNY 250 and CNY 120; retained only as a wrong-version example
confirmation-v2.mdThree units, with installation explicitly remaining at four hours; use in round two

The current rate card is designated as applicable to this fictional job. In a real task, a later date alone does not prove which rate applies to an existing agreement. Keep the second confirmation out of the first round’s input scope.

Ask for the draft and its evidence together

Start with the first confirmation and the current rate card. A useful evidence entry names the file and the exact section or record that supports a claim, such as C1 in confirmation-v1.md. “According to the customer” is too vague when several messages say different things.

Round one · send after selecting the practice inputs
Prepare a quote draft for this fictional rental job.
Read only field-notes.md, confirmation-v1.md,
and rate-card-current.json (2026-09-01).
Do not read confirmation-v2.md or reference/ yet.
The old rate card is not applicable.

Write proposal.md and evidence.md.
Show each service, quantity, unit, rate, and line subtotal.
Call their sum the confirmed subtotal, not the final price.
Transport, tax treatment/amount, and delivery time
are unconfirmed. List each as pending, never as zero
or as a promise.

In evidence.md, map each quantity and rate to its
source file and section or record; show the arithmetic.
Explain how the confirmation resolves “two or three.”
Do not invent a scope, discount, or commercial term.
Do not change inputs, send messages, or publish the draft.

Check the scope before the wording

Open both outputs with Browse all files. Read the confirmation yourself, then check the rate card and the arithmetic. The first round should contain the two lines below. The earlier rates would produce CNY 980, so a clean-looking total is not enough to establish that the right version was used.

Round one · expected calculation from the fictional inputs
ServiceQuantityRateLine subtotal
Equipment2 unitsCNY 300 per unitCNY 600
Installation4 hoursCNY 150 per hourCNY 600
Confirmed subtotalCNY 1,200
On narrow screens, scroll sideways to read the full table.

Keep the unknowns visible when you verify

An acceptable draft says: “Confirmed equipment and installation subtotal: CNY 1,200. Transport, tax treatment/amount, and delivery time remain to be confirmed. A final price and delivery commitment cannot yet be given.” It must not turn an empty transport field into free delivery or describe the subtotal as tax-inclusive.

After the assistant has written its files and you have checked the source references, run these commands from the extracted project root in the terminal:

node --test test.mjs
node calculate.mjs reference/scope-v1.json rate-card-current.json v1

The calculation returns pricedSubtotalCny: 1200 and quoteStatus: "incomplete-draft"; transport, tax and delivery date remain null, meaning unknown. Compare that result with the draft. If they disagree, ask for the included quantities and rate-card version before requesting more polished wording.

The calculator reads the supplied human reference data. It does not read your proposal or call a model. Its result and the static tests prove only the fixture’s calculation and the specific rules tested, not that your AI run passed. Keep the actual draft and your review notes as evidence of that run.

Handle a change without rebuilding the agreement

Preserve the first draft and evidence before continuing. In your operating system’s file manager, create a new round-1 folder in the project and copy proposal.md and evidence.md into it. If that folder already exists, choose an unused name and update the prompt below to match. The README also gives terminal commands for macOS and Linux.

Now add confirmation-v2.md. It explicitly changes equipment to three units and keeps installation at four hours. This is an authorized revision to one item, not permission to rewrite the rest of the job.

Round two · after adding the second confirmation
Update the quote using confirmation-v2.md.
It supersedes the first confirmation for equipment quantity:
three units; installation remains four hours.
Keep rate-card-current.json (2026-09-01).
Do not read reference/.

Update proposal.md and evidence.md in the project root.
Do not change the saved copies in round-1/.
List exactly what changed and cite the new confirmation.
Retain every unresolved item from round one.
Do not send or publish either draft.

Review the change, then decide what to ask

After reviewing the updated draft, run the second reference calculation:

node calculate.mjs reference/scope-v2.json rate-card-current.json v2

The expected subtotal is 3 × 300 + 4 × 150 = CNY 1,500. Equipment rises from CNY 600 to CNY 900; installation stays at CNY 600. The confirmed subtotal increases by CNY 300. Both files should now cite the second confirmation for equipment quantity, while preserving the applicable rate-card reference.

Check the complete proposal, not just its changed number. Transport and taxes are still unresolved; delivery time is still unconfirmed. Correct arithmetic does not make it ready to send. If a later message changes scope ambiguously, list the competing interpretations and ask the job owner to resolve them.

Finish with specific questions: What transport arrangement and cost apply? What tax treatment and amount belong on the quote? What delivery time can the team commit to? Once those facts are confirmed, the owner can approve a final quote through the team’s normal process.

To repeat this with real work, start with one approved job and its applicable price list. Check who may receive the information, including the configured model provider. Preserve the source confirmations and reviewed draft so the next person can explain what changed.