Quality audit · Verdal Group (fictional case)

Contract review

The same dual-external method applied to the service agreement before signature.

Contract review report — Verdal Group

Document audited: contrat-verdal-group-v3.docx — Consulting Services Agreement, IPANEMA SAS / Verdal Group Source paper: the consultant's own model, consultant-library/service-agreement-template-en.md (branch A) Date: 27 July 2026

« Ce document ne constitue pas un conseil juridique ni fiscal — à faire relire par un professionnel. » Not legal or tax advice. The rubric below ensures coverage; it does not make the analysis legally exhaustive.


1. Proposal → contract coherence

Field-by-field equality against the proposal "EV charging: strategic options" (29 July 2026) and the engagement file.

Field Proposal Contract v3 ✓/✗
Scope in — work packages WP1–WP6 WP1–WP6 (Cl. 1.2, Sch. 1)
Scope in — evidence modules M1 + M2 (Scenario 2) M1 + M2 (Cl. 1.2)
Scope out M3 basket study, phase 2 M3 excluded, no till-data extract required (Cl. 1.3)
Effort 47 senior days 47 senior days (Cl. 4.1, Sch. 1)
Day rate EUR 2,000 EUR 2,000 (Cl. 4.1, 5.3, 11.3)
Fee EUR 94,000 excl. VAT EUR 94,000 excl. VAT — 47 × 2,000 verified
Field costs M1 EUR 18,000–28,000, at cost, outside fee Identical, capped at 28,000 (Cl. 4.2)
Option M3 EUR 20,000 / 10 days EUR 20,000 / 10 days (Sch. 2)
Payment split 30 / 30 / 40 28,200 / 28,200 / 37,600 = 94,000
Kick-off 4 August 2026 4 August 2026
Interim review 8 September 2026 8 September 2026
Final delivery 14 October 2026 (Scenario 2) 14 October 2026
Deliverables Board deck · Excel model, assumptions visible and editable · one-page recommendation · weekly check-ins D1–D5 (Cl. 3.1)
Team One senior end to end; 2 contingency days unbilled; named associate; PI cover Cl. 10.1–10.4, 9.4
Client inputs Day 1 leases + lessee data request · Week 1 car park file · Weeks 2–4 M1 access Cl. 5.2
Effective Date proposal dated 29 July 2026 you entered 27 July 2026 ✗ — see below

The one ✗, and how it is handled

A contract dated 27 July cannot incorporate a proposal dated 29 July. Both external auditors ranked this BLOCKING independently. Rather than silently overwrite your input, the draft now takes its Effective Date from the date of the last signature, which removes the impossibility without inventing a date. Overwrite it with a fixed date only if that date is on or after 29 July 2026.

The move from EUR 80,000 / 30 September to EUR 94,000 / 14 October is not a discrepancy: it is Scenario 2, priced in the proposal, and the 14 October date is the one the proposal itself recommends because 47 days do not fit the 42 working days to 30 September.


2. Clause review — the four sensitive clauses

Clause Present? Risk What was done
Liability / limitation (9.3) Yes Template read "total Fees paid" — before final payment that caps exposure at EUR 28,200 while the parenthetical said EUR 94,000. Ambiguity reads against the drafter. Mutual cap would also have capped Verdal's obligation to pay you. Fixed at EUR 94,000, being fees payable. Carved out of the cap: the Client's payment obligations, expenses, field costs and late interest; confidentiality; data protection; third-party IP; fraud, wilful misconduct, gross negligence.
IP / ownership of deliverables (7.2–7.4) Yes Under French law an assignment that does not enumerate the rights, territory, duration and media is exposed under Art. L.131-3 CPI. "Internal purposes" was undefined. Assignment on full payment lets a minor dispute block ownership. Rights enumerated, worldwide, legal term, all media, consideration stated as included in the fee. Assignment now on payment of undisputed amounts, with an interim licence from delivery. Permitted use defined to affiliates, advisers and implementation partners under confidentiality.
Payment conditions and timing (4.5–4.7) Yes Template's "[rate]" was unresolved; suspension had no cure period; no PO/onboarding provision. 30 days from invoice date, expressly within the L.441-10 cap. Statutory late-payment wording aligned (ECB most recent refinancing operation + 10 points, EUR 40 indemnity, further recovery costs on evidence). Suspension only after 10 business days' notice, good-faith disputes excluded. PO/onboarding must not defer the due date.
Penalties / termination (11.1–11.3) Yes Termination for convenience was formally symmetric, commercially one-sided: Verdal could terminate at day 30 and pay only for work done, and the survival list omitted payment. Termination payment now = days performed + committed costs + the balance of any triggered milestone, reserved capacity being non-cancellable. Survival extended to Clauses 4, 6, 7, 9, 11.3, 12 and 16.1.

Clauses added that the template did not carry

Anti-corruption and sanctions (Sapin II) · exclusivity and competing-engagement disclosure · audit right on M1 field-cost receipts · force-majeure termination after 30 days · day-for-day extension and standby rate for client delay · a 3-business-day approval clock on field costs, silence being approval · a cure loop on acceptance · signatory authority warranties · a personal-data floor on the M1 measurement (no plates, no images of identifiable individuals, no employee-level data).

Where the contract deliberately departs from the template default

Template Contract Why
Acceptance in [N] days 10 business days, with a 5-day cure loop Five days is aggressive for a Board deck and a model; a retailer will refuse it.
Cap = total fees paid Cap = EUR 94,000 payable, with carve-outs Removes an ambiguity that reads against you.
Confidentiality 3 years 3 years, unchanged Your template default. A retailer may ask for five — a concession worth having in reserve.
Single clause 14 "General" Renumbered to 16, anti-corruption inserted at 14 Large-group legal teams insert their own if it is absent. Better yours than theirs.

3. Independent double-check — QA Level 3

Two genuinely independent external models audited the draft in parallel, neither seeing the other's work, both scoring the final figures (EUR 94,000 / 47 days / 14 October) — not a superseded scenario.

Models: Sonnet 4.6 (claude-sonnet-4-6) · GPT-5.5 (gpt-5.5-2026-04-23)

Criterion Sonnet 4.6 GPT-5.5 Convergence
A1 Proposal-to-contract fidelity 4/5 4/5
A2 Internal consistency 4/5 4/5
A3 French-law specifics 3/5 3/5
B1 Sensitive clauses 3/5 3/5
B2 Missing clauses 2/5 2/5
B3 Risk asymmetry 3/5 3/5
B4 Ambiguity 2/5 2/5

Combined on the v1 draft: 21/35. Every finding below was closed in v3 except the three that need your input (open items 1–3 on the cover sheet).

Confirmed by both — all arithmetic clean. Fee, day count, day rate, milestone percentages, milestone amounts, total, M3 pricing, M1 range, and the 47-versus-42-working-days logic all verified independently by both models.

Confirmed by both — blocking, now closed: effective-date impossibility · unresolved venue · order-of-precedence inverted against you · liability-cap ambiguity · termination-for-convenience under-protection · survival list incomplete · missing anti-corruption clause.

Confirmed by both — blocking, still open: the Client's legal identity. Nothing can close that but Verdal's details.

Divergence, and where I came down

Point Sonnet 4.6 GPT-5.5 Criticality Resolution
Venue "Dieppe has no Tribunal de commerce — use Rouen" "use Rouen, or client venue" HIGH Both wrong. The Tribunal de commerce de Dieppe exists, at 54 rue du Faubourg de la Barre, and sits within the ressort of the Cour d'appel de Rouen. Your registered office is in Dieppe, so Dieppe is the natural forum. Drafted as Dieppe.
The "not legal advice" block on page 1 not raised BLOCKING — "client will reject a contract that says it has not been reviewed" HIGH GPT is right about the client-facing effect, and the disclaimer is non-negotiable on my side. Resolved by moving it to a separate internal cover page marked for deletion before sending.
D4 "WP1 and WP2 answers" fidelity OK "not in the source" LOW GPT was working from a summary. The proposal states it: "8 September: market and segment answers, assumptions exposed." Kept.
Clause 5.2 six-countries confirmation fidelity OK "not in the source" LOW The proposal states it twice — "Layer four needs the six named. One question at kick-off" and the single-contact resourcing page. Kept.
Schedule 2 hold-open to 14 October not raised "not in the source — delete" MEDIUM GPT is right, I had introduced it. Removed.
Confidentiality term silent "retailer may demand 5 years" LOW Left at your template's 3 years. Noted as a concession in reserve.

Residual risk, stated plainly. The single biggest exposure is not a clause — it is that the Client is still unidentified. Until Verdal's legal name, registration and intra-Community VAT number are in the preamble, the agreement is unsignable, uninvoiceable, and the reverse charge at Clause 4.6 cannot be relied on.


Not legal or tax advice. Have a qualified lawyer review before signature.