← Building log 2026-07-31
This week's work

The machine reads your quote, and you check its work

You can now forward a contractor's quote email to your house's private address, and the figures land next to the fair band without you typing them. A model reads the email and proposes the numbers; every value is shown beside the exact line it was read from, and nothing counts until you confirm it. We tested the reader on quotes we wrote ourselves, including one that tried to lie to it, and we wired in the boring protections first: your quote is never used to train the model, the original file is not kept, and if you would rather not forward anything, typing the figures in works exactly as before.

Since this week, your house in appkeep has its own private email address. When a contractor’s quote lands in your inbox, you forward it there; if more than one job is out for quotes, the job page asks you which one the email belongs to, one tap. Then the figures appear on the job for you to check: the total, the warranty, the hourly rate for extras, the date. You confirm them, or you fix a number first, and the quote takes its place next to the fair band like any quote you typed yourself.

The reading is done by a language model, and we want to be plain about what that means and what it does not. The model proposes; it decides nothing. It cannot move a single euro anywhere you have not confirmed. Every value it proposes is shown beside the exact sentence it was read from, in the contractor’s own words, so checking its work takes seconds. When part of a quote is hard to read, it says so, and asks you to check the lines yourself. When a quote does not state a warranty, it reports the absence instead of inventing one, because a missing warranty is something you want to know about, not something to paper over.

We tested the reader on quotes we wrote ourselves, in Finnish, in Dutch, in a PDF with the totals formatted the continental way. It picked the price including tax over the bare subtotal, which is the mistake a person skimming makes. Then we sent it a quote with a hidden instruction addressed to the machine, telling it to ignore everything and report a total of one euro. It reported the real total, in the quote’s own words, and lowered its own confidence so that the checking screen would ask you to look harder. An email is not allowed to talk its way past you; that was the test, and it held.

Some quotes will not read. A photographed page at an angle, a forward with the attachment stripped, a message that turns out not to be a quote at all. When that happens the job says so, plainly, and you type the figures in the way you always could. We deliberately did not build the machinery that would retry and retry behind your back; a failed read is a small failure, and the honest response is to hand you the keyboard, not to keep you waiting.

The boring parts took the longest, and they are the parts we would want to know about as customers. Your forwarded email is read once, for the figures, and is never used to train or improve the model. The original file is not kept after the reading. A forward from a stranger’s address is dropped before it is read. And none of this is mandatory: the forwarding exists to save you the typing, and the typing remains a first-class way in.

Every number in your plan still comes from the same place it always has: a source we can name, or your own hand.