AI at WeInspect — transparency
Version v1.1 — effective 2026-XX-XX
This page is a transparency commitment, not a standard legal document. It describes in plain language how AI works in WeInspect, with what data, with whom, and why you can trust us — or hold us accountable if we slip.
WeInspect AI in 30 seconds
┌─ How WeInspect AI works ───────────────────────────────┐
│ │
│ Models used │
│ ─────────── │
│ ✓ Anthropic claude-sonnet-4-6 (findings, vision) │
│ ✓ OpenAI gpt-4o-mini-transcribe (transcription) │
│ ✓ OpenAI gpt-5-mini (targeted rewriting) │
│ ✓ Microsoft Azure Translator (FR↔EN translation) │
│ ✗ No other, never without telling you — §3 │
│ │
│ Your data vs AI │
│ ─────────────── │
│ ✗ No training — commitments per provider in §3 │
│ ✗ Not shared with other users │
│ ✓ Encrypted transit; retention detailed in §3 │
│ │
│ What AI does for you │
│ ──────────────────── │
│ ✓ Finding suggestions from voice + photos │
│ ✓ FR-QC audio transcription │
│ ✓ Photo classification by section │
│ ✓ On-demand targeted rewriting │
│ ⚠ BNQ + Civil Code chatbot (coming, post-launch) │
│ │
│ What AI does NOT do │
│ ─────────────────── │
│ ✗ Sign your report (it's your name, your license) │
│ ✗ Decide a property's compliance │
│ ✗ Bill you behind your back (cost shown before action)│
│ ✗ Replace your professional expertise │
│ │
│ Your powers │
│ ────────── │
│ ✓ Disable everything in one click │
│ ✓ Credits do not expire │
│ ✓ Costs capped by your credits (except translation) │
│ ✓ "Report error" button on every AI output │
│ │
└────────────────────────────────────────────────────────┘
Plain language: AI saves you time, doesn't replace your judgment. It suggests, you decide. None of our providers uses your data to train its models — with a caveat on the third one, written down in §3.3 rather than passed over. And if you want to turn it off, two clicks and WeInspect works without AI.
1. What AI does for you
| Feature | Model used | When | Data sent |
|---|---|---|---|
| Audio transcription | OpenAI gpt-4o-mini-transcribe (online) |
When you dictate a note | Dictated audio file |
| Finding generation | Anthropic Claude Sonnet 4.6 (claude-sonnet-4-6) |
On demand, when you finish a capture | Transcript (or written note) + photos + current section and category + up to 9 file fields, including the street address — details in §1.1 |
| Photo classification | Anthropic Claude Sonnet 4.6 (claude-sonnet-4-6, vision) |
On demand, single or batch photo | Photos + up to 7 file fields, without the address or the date — details in §1.1 |
| Targeted rewriting | OpenAI gpt-5-mini |
When you select text and provide an instruction | Selected text + your instruction |
| BNQ + Civil Code chatbot (coming) | Claude Sonnet 4.6 + RAG on pgvector | When you ask a question | Your question + relevant BNQ/Civil Code excerpts |
| Level 2 AI review | Anthropic Claude Sonnet 4.6 (claude-sonnet-4-6) |
Before report finalization, on demand | Report findings + terminology reference |
| FR↔EN translation | Microsoft Azure AI Translator | On the "Translate" button, and automatically when you leave a bilingual field — see §3.3 | The text of the field being translated — finding, client letter, report introduction, context fields, or a block from your text library |
| RAG embeddings (coming) | OpenAI text-embedding-3-small |
At indexing, once the chatbot ships | BNQ + Civil Code + jurisprudence text — no inspection data |
1.1 What "file context" covers, field by field
"Metadata", "context": those words can mean anything. Here are the actual fields, and what each of the two functions receives.
- Street address of the building (number, street, city) — finding generation: sent ; photo classification: not sent
- Visit date — finding generation: sent ; photo classification: not sent. This field can carry a time as well as a date.
- Building type — finding generation: sent ; photo classification: sent
- Number of units — finding generation: sent ; photo classification: sent
- Year built — finding generation: sent ; photo classification: sent
- Roof year — finding generation: sent ; photo classification: sent
- Water heater year — finding generation: sent ; photo classification: sent
- Weather conditions — finding generation: sent ; photo classification: sent
- Temperature — finding generation: sent ; photo classification: sent
For finding generation only, the current section and category are added — these come from the screen you are working on, not from the file.
A field left empty is not sent: the counts given in the table above are maximums.
The street address is the most identifying field of the set. It is also the one the previous wording — "observation metadata" — hid best. It goes out only for finding generation.
What never goes out, on either function, even though your file may contain it — among others:
- the building owner's name;
- the condominium syndicate;
- the free-text summary description.
Those three are excluded by an allow-list: a field added to the file tomorrow will not go out until it is explicitly added to that list.
One clarification so the sentence above is not over-read: this does not mean no free text goes out. The street address is free text, so are the weather conditions, and above all your dictation or written note goes out in full — it is the first item listed in the §1 table. What the allow-list guarantees covers file fields, not what you dictate.
2. What AI does not do
- AI does not sign your reports. It's your name, your license, your civil liability.
- AI does not decide a property's compliance. It suggests according to BNQ patterns; you judge.
- AI does not redistribute your data. None of your findings, photos, or transcriptions feed another user. On the training of our providers' models: a contractual commitment for Anthropic, the API data usage policy for OpenAI, and no commitment stated for Azure — the detail, provider by provider, is in §3.
- AI does not bill you behind your back. Each action has a credit cost displayed before execution. You can disable everything.
3. Where your content transits
3.1 Anthropic (Claude Sonnet 4.6)
- Hosting: United States
- API region used:
us-east-1orus-west-2based on availability - Encryption: TLS 1.3 in transit + AES-256 at rest (ephemeral API transit, no long-term storage on Anthropic side)
- Contractual "no training" commitment: Anthropic Zero Data Retention enabled on our API account → payloads are not retained beyond the strict response generation time, and not used to train Claude.
- Policy: <https://www.anthropic.com/legal/privacy>
How your photos travel — and what the link contains
When a photo accompanies an AI request, WeInspect usually does not send the file: it sends a temporary signed link, and Anthropic's servers fetch the image from that link.
That link contains the file's storage path, and that path starts with your WeInspect account identifier:
account-identifier / inspections / inspection-identifier / section / [mobile-captures] / file-name
The mobile-captures folder appears only for photos taken in the mobile app.
It is a technical identifier — not your name, not your email — but it designates you consistently. It therefore goes to Anthropic every time a photo accompanies a request. We write this because it is true, not because it suits us: it is information linkable to a person, leaving for a subprocessor.
That link is signed by our servers at call time, never supplied by your device, and it stays valid only briefly. We give the exact figures rather than one reassuring average:
- Photo classification — valid for 2 minutes.
- Finding generation — valid for 5 minutes, whether the photo comes from the mobile app or from the web.
That the link is signed by our servers, rather than carried over from your device, is what makes those two figures true. Let us be precise about what that guarantees and what it does not: the address itself and its lifetime are set by our servers — your device can neither choose nor extend them. What your device still designates is which file the link points to; that choice is confined to your own inspection photos, and is checked on every call.
An earlier version of this page listed a third case, and we recall it rather than making it disappear: a queued web capture then reused the link signed at upload time, valid for up to 7 days. That defect is fixed — that link is no longer handed to the provider.
A link signed by WeInspect grants access to that one file only. It does not open your folder, nor your other inspections.
A photo taken with live web capture — the camera in the page, with no queueing — does not use this mechanism: the image travels in the request body, and no storage path leaves WeInspect.
3.2 OpenAI (transcription and rewriting)
- Hosting: United States
- Audio transcription:
gpt-4o-mini-transcribe. - Targeted rewriting:
gpt-5-mini. - Retention: we send no retention parameter in either of these calls. What does hold is OpenAI's API data usage policy, below — not a setting we would pass request by request.
Three corrections, which we write down rather than slipping in unannounced. An earlier version of this page named a different transcription model, the one we used before; it placed targeted rewriting with Anthropic, when that text goes to OpenAI; and it presented zero retention as an API parameter we pass, which we do not. The three lines above state what actually happens.
- No training on API data: <https://openai.com/policies/api-data-usage-policies>
- Embeddings: not deployed yet. Nothing is indexed today; when it is, it will be public content (BNQ, Civil Code) and never your inspections.
3.3 Microsoft (Azure AI Translator)
- Service: Azure AI Translator, for French ↔ English translation of the bilingual fields of the editor, the letter studio and the configuration screens.
- Two triggers, not one. The "Translate" button is one. The other is automatic: when you leave a bilingual field, if AI is enabled and the other-language version is empty or was machine-produced, it is re-translated without you asking for anything. An earlier version of this page mentioned only the button; that was wrong, and we say it here because this is the point that decides whether you know when your text leaves.
- What is sent: the text of the field you are translating, sanitized before it leaves. It is not only finding text: the button also exists on the client letter, on the report introduction, and on the blocks of your shared text library. We write this down because client correspondence is more sensitive than a technical finding.
- What is not sent: no photos, no payment data, no authentication data, no file fields — unlike the Anthropic path described in §3.1.
- Requested region: Canada (
canadacentral). Processing residency is not guaranteed by Azure's global endpoint: worst case, the transfer happens in the United States, on par with our two other AI subprocessors. - Training and retention: we state neither a no-training commitment nor zero retention for this provider here. To place the gap without overstating it: zero retention is stated only in §3.1 (Anthropic), since §3.2 has precisely stopped claiming it for OpenAI; no-training is stated in §3.1 and, by reference to the provider's policy, in §3.2. Here, neither. The actual contractual posture — DPA, certifications — is kept current in the subprocessors list, which is authoritative on it; we do not copy it here so as not to let it go stale.
- Consent: the server requires
ai_processingbefore any translation — without it, the request is refused. But let us state the gap rather than round it off: the wording you ticked speaks of "generating findings and assistance"; it names neither translation nor Microsoft. The code protects you; the text you read when consenting had not told you about it. - Provider policy: <https://privacy.microsoft.com/privacystatement>
3.4 No other providers, no hidden routing
WeInspect uses only these three providers for AI: Anthropic, OpenAI and Microsoft Azure. No Google Gemini, no AWS Bedrock, no hidden routing.
An earlier version of this page named only two, and Azure was missing from it even though it already received your finding text. It was listed in our subprocessors list and in our privacy policy — it was this page that lagged behind. We are correcting it rather than staying quiet about it.
If we were to add a provider, we would tell you in advance.
4. Your consents
Before first use of an AI feature, we ask for explicit and separate consent for:
| Consent | Covers |
|---|---|
ai_processing |
All generic AI processing: generation, classification, rewriting, translation — see the caveat in §3.3 about the translation wording |
audio_recording |
Recording and transcribing your voice |
You can withdraw these consents at any time from /settings/privacy/ai. Effect:
- Immediate disabling of AI features
- Immediate deletion of the transcript kept in the AI generation registry for findings produced by voice dictation (findings generated after provenance tracking came into effect); texts already integrated into your inspection reports are retained with them
- Retention of already-generated findings (you can delete them manually)
5. AI costs and credits
5.1 Caps per plan
| Plan | Monthly AI credits |
|---|---|
| Pay-as-you-go | 10 basic text messages included |
| Solo Unlimited | 200 AI credits / month |
| Solo Annual | 200 AI credits / month |
| Team | Shared pool by number of seats |
| Student | 50 credits / month |
5.2 Cost per action (indicative, adjusted to provider pricing)
| Action | Credits |
|---|---|
| Transcription 1 min audio | 1 |
| Finding generation from capture | 5 |
| Photo classification | 1 |
| Short rewriting (≤500 words) | 2 |
| Chatbot question | 3 |
| Level 2 review (full report) | 10 |
Exact values are visible at /settings/credits and locked at the moment of action.
FR↔EN translation debits no credits and therefore does not appear in the table. It is not unlimited for all that, and "free" would be misleading: it requires a paid plan, and it is bounded by a rate limit (30 requests per minute), by a text size cap, and by our provider's monthly quota — once exhausted, the feature stops. We say so because the §2 sentence — "every action has a credit cost shown before execution" — and the box line "costs capped by your credits" do not hold for it.
5.3 No expiration
Your included credits do not expire as long as your account is active (Québec Consumer Protection Act). Credits purchased à la carte: no expiration either.
5.4 Cost safeguards
If an AI provider raises prices mid-year, you are not retroactively impacted. We adjust credit costs only from the next month, with 30 days' notice.
6. Quality, hallucinations, verification
6.1 Recognizing a hallucination
LLMs may invent a BNQ reference, misremember a Civil Code article, or infer a defect from an ambiguous photo. Always verify:
- Generated BNQ references (the live BNQ gauge S06 helps)
- Civil Code citations (the chatbot displays the source text of the cited article — check it exists)
- Photo classifications (a glance at the photo + your context)
6.2 Our validation setup
- Evaluation harness: before each model or prompt update, we test on a golden dataset of 100+ real inspector cases (validated by design partners). No silent regression.
- Strict anti-invention prompt: our prompts contain the explicit instruction "never invent a BNQ reference; if uncertain, answer 'not found'".
- Sourced citations: for chatbot and AI review, each statement is accompanied by the source (BNQ section X, Civil Code art. Y).
6.3 If you spot an error
"Report" button on every AI output → the response + your feedback enter our improvement loop (anonymized, aggregated). You can also write to support@ouiinspect.ca.
7. Automated decisions and profiling
WeInspect makes no automated decision about you with legal or similar effect (Law 25 sec. 12.1). All important decisions (report publication, account suspension, refund refusal) are made by humans.
Anti-fraud risk scoring (Stripe Radar) is applied to payments. You can contest any decision by writing to support@ouiinspect.ca.
8. How to disable AI completely
From /settings/privacy/ai, toggle "Disable all AI features". Effect:
- Finding generation pipeline: disabled (manual drafting only)
- Transcription: disabled (keyboard input only)
- Photo classification: disabled (manual tagging)
- Rewriting: disabled
- FR↔EN translation of bilingual fields: disabled
- Chatbot: hidden from interface
- Level 2 review: disabled
WeInspect remains fully usable: capture, manual drafting, findings library, heuristic BNQ gauge, report, client portal, multi-seat, billing — everything works without AI.
9. Evolution
If we add a new AI feature, a new model or a new provider, we notify you and this page is updated.
Until now this paragraph also promised new explicit consent on every addition. That promise was not kept: Azure AI Translator arrived under the existing ai_processing consent, without asking you for a new one, and this page only named it afterwards (see §3.4). Rather than leave a guarantee our own facts contradict, we write down what we actually do: a provider added for a purpose already covered by a consent you gave does not trigger a new one; a provider added for a new purpose would. In both cases it is named here.
If that regime does not suit you, withdrawing ai_processing blocks every AI feature server-side — the exact effect is described in §4.
10. Questions, complaints, suggestions
- DPO (privacy / Law 25 questions): dpo@ouiinspect.ca
- Support (AI quality, bug report): support@ouiinspect.ca
- CAI (independent recourse): <https://www.cai.gouv.qc.ca>
Last updated: 2026-XX-XX