How PreBLD learns from real project outcomes.

Every finalized estimate contributes anonymized scope + pricing data that future estimates are anchored against. This page explains exactly what data feeds the learning pool, what stays private to your firm, and why we built it this way.

The short version

  • When you click Finalize, an anonymized copy of your estimate joins a shared pool that every firm in PreBLD can learn from.
  • The shared pool contains scope and pricing only — never your project name, client name, or address.
  • Your full project record (with names + clients) stays inside your firm's tenant. No other firm can see it. Ever.
  • In return, every estimate you make is anchored against real bid data from across the whole user base — not just static benchmarks.

What another firm can actually see

This is the part that matters most, so it comes first. When PreBLD anchors another firm's estimate against the pool, the only thing a person at that firm can see is an anonymous reference label:

Commercial Addition · 18,000 SF · MB

  • Square footage is rounded (18,342 SF becomes 18,000 SF).
  • Location is shown as province / state only. The city is not displayed.
  • No dollar figures. No project total, no $/SF, no division breakdown, no fees. A person at another firm never sees a single number from your project.

Your competitors cannot browse the pool, search it, or pull up your project. There is no screen anywhere in PreBLD that shows one firm another firm's pricing.

What the pricing engine reads (machine-only)

Behind that label, the estimating engine itself reads an anonymized record so it can calibrate future estimates against real outcomes. These fields are consumed inside the engine's math during similarity search; they are not browsable or displayed as your project's data to any user at any firm:

  • • Project type, scope type, building use
  • • Square footage, number of storeys
  • • City + province / state — never street address
  • • Year of estimate (so the engine knows recent from stale)
  • • Structural system, wall assembly, roof, exterior finish, foundation, HVAC
  • • Division-level $/SF benchmarks and totals

One field deserves a plain explanation: the record also carries the effective fee percentage baked into the total. That exists for exactly one reason — when the engine anchors a new estimate against your project, it must know a fee is already inside the total so it doesn't stack a second fee on top. It is bookkeeping for correct math. It is never displayed to anyone, and with no firm or user attached to the record, it cannot be read as “so-and-so charges X%.”

In short: the shape of the building and what it cost, readable by the engine, tied to nobody.

What's NOT shared

The shared pool's database schema literally cannot hold these fields — the columns don't exist. This isn't a policy promise we hope our code follows; it's enforced by the database itself.

  • ✗ Project name
  • ✗ Client name
  • ✗ Street address
  • ✗ Tenant ID (no link back to your firm)
  • ✗ User ID (no link back to who created the estimate)
  • ✗ Free-text notes
  • ✗ Line-item descriptions that mention identifying details

When another firm's estimate references one of your finalized projects, they see the anonymous label described above — rounded size, region only, no dollars. They never see who built it, for whom, what it cost, or where it sits.

Why we built it this way

Construction estimating is a category where the data network effect compounds: more real bids means tighter $/SF benchmarks, better division-level cost intelligence, and faster onboarding for new firms (who otherwise start cold).

But a bid total is also competitively sensitive — it's the firm's pricing strategy on a specific job. So we split the data:

  • Your firm's private record keeps everything — project name, client, address, notes. It powers your dashboard, your finalize history, and the CRM-style features built on top of it. Only your tenant can see it.
  • The shared learning pool keeps only scope + pricing. It feeds the AI's anchor data, building the calibration data that will let estimates sharpen as more real outcomes are contributed. No identifying data, by schema design.

This gives every firm a real network-effect advantage without exposing anyone's specific bid strategy on a specific job to a specific competitor.

If you re-edit an estimate

Re-opening a finalized estimate clears the lock so you can edit. When you re-finalize, the shared pool is updated with the new numbers — the latest version is what's anchored against. Re-edits don't create new anchor entries; they overwrite the existing one for that project.

If you delete a project

Deleting a project from your dashboard removes it from your firm's tenant. The anonymized anchor entry stays in the shared pool — it's already anonymous and can't be traced back to you, your firm, or your client. This is standard for anonymized contributions: once data has been stripped of identifying information and entered the pool, it remains there as part of the collective baseline.

Questions?

If anything about this isn't clear, or you have specific concerns about how a project's data flows through PreBLD, email hello@prebld.com. We'll answer directly.

Last updated: August 29, 2026. This page describes the cross-firm learning pool architecture as of today and may be updated as PreBLD's data model evolves. Material changes will be communicated to existing users.