nocta
Architecture · construction · maîtrise d’œuvre

Bid analysis and re-estimates, run by an agent on your own server.

It opens the DPGFs that came back, puts them side by side on the structure you issued, flags the trade one bidder forgot and the quantity another one changed, checks the odd price against thirty years of your own projects, and drafts the letters. It stops before sending. You send.

Serveur agenceExcel · DPGFBase de prix BIOutlook
The demo

Watch the agent run, in the product

Each button opens the Nocta dashboard and starts the session there, in a new tab. Left: what the agent reads and says. Right: the agency’s real screens being driven. It pauses to ask before anything is sent. The chapters at the top are clickable, so you can jump straight to the part you want to see.

Tender response2 min 20, one halt

Réponse à un appel d’offres

Indexes seven years of past responses on the server, reads the DCE, stops for go/no-go, prices the fees from a won bid, drafts the memo in the agency’s own words. Every number has a Voir la source button: click it and the agent reopens the original file.

In

A published tender: 7 DCE files on the server, and 7 years of past responses nobody indexed.

Out

DCE analysis with an article cited per field, go/no-go, a fee breakdown traced to a won bid, a 6-section memo drafted from the agency’s own words.

Time

About 2 minutes 20. By hand: a week of team time per response, starting from zero.

Control

It stops for go/no-go. Every number has a Voir la source button: the agent reopens the original file on the server. Filing stays human.

Open in the dashboard →
Bid analysis1 min 20, one halt

Analyse des offres · comparaison des DPGF

Opens the three bids, puts them side by side on the cadre, flags the omitted trade and the changed quantity, checks the odd price against thirty years of the agency’s own projects, drafts the letters.

In

3 bids, 8 sections each, on a 312-line cadre. Three files, three different layouts.

Out

A comparison table with every cell traced to its source file, 6 flagged anomalies, an analysis report, 2 letters drafted.

Time

About 80 seconds. The same job by hand: half a day per lot, per consultation.

Control

Ranking is a proposal. Letters wait for a click. Runs on the agency server; nothing leaves.

Open in the dashboard →
Re-estimate40 seconds, one halt

Reprise de chiffrage · retour du maître d’ouvrage

Reads the client’s letter, reopens the estimate, compares each item to the agency’s real ratio, prices four variants under the envelope, prepares the note. The arbitrage stays with the architect.

In

The client’s letter: envelope 12.5 M€, 15 days, program unchanged.

Out

Four priced variants: -1.74 M€, 12.46 M€, under the envelope. A savings note, drafted.

Time

About 40 seconds. By hand: a full re-estimate cycle, roughly a day, every round.

Control

The variants are the architect’s call. The note stays a draft until sent by a person.

Open in the dashboard →
How to read what you see
Chapters

The five pills above the screen: where it is in the job. Click one to jump straight there. Relever, Normaliser, Base de prix, Comparatif, Rédiger.

One sentence per step

What it is doing right now, and why. Present tense, written for a person, not a log.

Blue labels

A value it just read out of a file, with a ring on the cell it came from.

Green labels

A value it just wrote into the comparison. Red cells are the anomalies it found.

The halt

It stops with the two letters drafted and asks. Nothing is sent until someone clicks.

The three jobs that eat an agency’s weeks

Same systems every agency has: the file server, Excel, an in-house price base from the 2000s, Outlook. Nothing is wired through an API, because none of these have one. The agent works the screens the way your économiste does.

1 · Bid analysis

Analyse des offres · comparaison des DPGF

Trigger: the consultation closes, three bids are in the folder.
  1. Opens the three DPGF from the offers folder, with each bidder’s submission time.
  2. Reads each bid on the cadre: the total, then the eight section subtotals, quietly.
  3. Spots the lowest bid is missing a whole section (the renders), and that another bidder priced 2 180 m² of slab instead of the 2 450 issued.
  4. Checks the suspicious foundation price against the agency’s own price base: median, min, max, and the projects it came from.
  5. Writes the comparison, one column per bidder, recalculates the gaps, generates the analysis report.
HALT · Stops here. Two demandes de précisions are drafted. Nothing leaves until a person clicks.

The trap is not the addition. It is the lowest bidder who forgot a trade. Here CAZALS is 223 000 € under, but the renders are not priced: until they are, it is not a price gap.

Watch →1 min 20 · live
2 · Re-estimate

Reprise de chiffrage · retour du maître d’ouvrage

Trigger: the client writes back. Too expensive. Fifteen days to answer.
  1. Reads the letter: the envelope, the deadline, the constraints (program unchanged, usable surfaces kept).
  2. Reopens the estimate on the server: 14.2 M€, 1 449 €/m², 1.7 M€ to find.
  3. Pulls the agency’s real ratio for this building type from its own history: 1 180 €/m² on assembly halls. The envelope is reachable.
  4. Finds the four items sitting above what the agency usually pays and prices a variant for each: -1.74 M€, 12.46 M€, under the envelope.
  5. Generates the savings note and drafts the reply.
HALT · Stops here. The variants are an architect’s call, not a spreadsheet’s. The note stays a draft until you send it.

Being faster does not win the competition: the client waits for all three teams anyway. What it changes is that you arrive at the final offer having considered several solutions instead of one. And the cycle repeats.

Watch →1 min 20 · live
3 · Tender response

Réponse à un appel d’offres

Trigger: a maîtrise d’œuvre tender is published. DCE in the folder, deadline in 12 days.
  1. Indexes seven years of past responses where they sit on the server: memo, fee grid and result for each. Nothing is uploaded.
  2. Reads the RC, the CCAP and the programme, and fills the analysis with the article behind every field.
  3. Finds the closest won bid: same client, same mission, ranked first two years ago.
  4. Composes the fee breakdown from that grid, element by element, and the OPC from the one past bid that priced it.
  5. Drafts the six memo sections from the agency’s own past wording, adapted to this site.
HALT · Stops for the go/no-go. Then every percentage and paragraph carries a source: click it, and the agent goes back to the server and opens the file.

Nothing leaves the server, and nothing is asserted without a file behind it. Click a source and watch the agent reopen the 2024 fee grid at the right cell. Not an AI that claims, an agent that shows.

Watch →2 min 20 · live

Three things it does not do

It does not leave your server.

The agent runs on the workstation, against the S: drive, Excel and the price base. No upload, no API, no copy of thirty years of archives anywhere else.

It does not invent a number.

Every cell in the comparison names the file it came from. Every reference price names the projects behind the median. If it cannot trace it, it says so.

It does not decide.

The ranking is a proposal to the maître d’ouvrage. The variants are the architect’s arbitrage. The letters wait for a click. The économiste keeps the judgment.

CUSTOMER QUOTES

In the customer’s own words

Not our pitch. What an économiste said when asked how bid analysis actually happens today.

We end up with price breakdowns of [several thousand] lines that we have to try to compare against one another, and we do it intelligently, but by hand and in a shambles.
On se retrouve avec des décompositions de prix à [plusieurs milliers de] lignes qu’il faut essayer de comparer de l’une à l’autre, et on fait ça de manière intelligente, mais artisanale et bordélique.
We have thirty years of building costs, stored, but in a way where we always have to re-estimate the cost of a new building and we base it on what we’ve done before. We never invent anything, in fact, ever. And it’s stored in a way that’s a mess.
On a trente ans de coûts d’ouvrage, stockés, mais d’une manière où on a toujours besoin de réestimer le coût d’un nouvel ouvrage et on se base sur ce qu’on a fait auparavant. On n’invente rien en fait, jamais. Et ça c’est stocké d’une manière qui est un bordel.
It’s the same server that holds all thirty years of the agency’s archives, where we go digging for our references, our price bases, our mess. […] It’s 100% manual.
C’est le même serveur qui contient toutes nos archives de trente ans d’agence, dans lesquelles on va piocher nos références, nos bases de prix, notre bordel quoi. […] C’est 100 % manuel.
Did he forget anything? Did he understand everything? Why is he much more expensive on this item? Why is he three times cheaper on that one? […] The cheapest one who forgot half the things, that is going to go badly.
Est-ce qu’il n’a rien oublié ? Est-ce qu’il a tout compris ? Pourquoi sur ce poste-là il est beaucoup plus cher ? Pourquoi sur ce poste-là il est trois fois moins cher ? […] Le moins cher en ayant oublié la moitié des choses, ça va mal se passer.
How long does that take you?It’s an analysis phase that lasts three weeks.
And how many people work on it?It can be five people. It can be two.
Three weeks, two to five people, every consultation.

Cost estimator at an architecture and construction-management firm, thirty years of archives, Occitanie. From a first call. Figures he gave as illustrations are in brackets.