💼 Property Dossier ▸ DELIVERY-PIPELINE.md
updated 2026-07-15

Property Dossier — Delivery Pipeline

Goal: €299 dossier, 48-hour turnaround, under 2 hours of Joshua’s time per dossier. Everything else is agent work.

Overview

Intake (Tally) ──> Payment (self-serve, on Tally thank-you page for Berlin/Paris)
     ──> Kickoff check (5 min) ──> Agent research pass (0 min human)
     ──> Joshua review + verdict (60-75 min) ──> Polish + render (agent) ──> Delivery (10 min)
     ──> Optional 15-min call

(city = "Other" only: manual triage + emailed payment link, <2h SLA 08:00–22:00 CET)

Joshua’s time budget per dossier: ~90-105 minutes.


Stage 1 — Intake (client, 5 min; Joshua, 0 min)

Stage 2 — Payment & kickoff check (Joshua, ~5 min)

Payment is self-serve for Berlin/Paris: the Tally thank-you page conditionally embeds the Stripe Payment Link when Q3 = Berlin or Paris (the city dropdown already screens scope — no reason to make a hot buyer wait hours for a human). Spec: index.html HTML comment, “AFTER-SUBMIT”.

  1. On payment notification: send the Order confirmation / kickoff email (template in OUTREACH.md) to EVERY paying client — it restates the immediate-performance request, the withdrawal acknowledgment, and the guarantee on a durable medium (§ 312f BGB / Art. 8(7) CRD; Stripe’s receipt doesn’t do this). Then the 5-minute kickoff check — listing link alive? goal coherent? intake complete? Listing count matches the product paid? (€299 = 1 listing; €749 bundle = 2-3 listings in Q4. Bundle payment with fewer links → the kickoff email’s bundle paragraph asks for the rest; each dossier’s clock starts when its listing lands.) If anything is broken (dead listing, gibberish intake, out-of-scope after all), refund in full before any work starts — that right is stated on the thank-you page and in the terms (impressum.html#agb).
  2. Confirm the Q13b immediate-performance/withdrawal checkbox is ticked (Tally requires it, but verify on the first few — it’s the legal basis for starting inside the 14-day window).
  3. Capacity toggle: if this payment makes 2 dossiers in flight, edit the Berlin/Paris Tally thank-you pages NOW (2 minutes, live instantly): remove the Stripe buttons, show “At capacity — your slot opens [DATE]; we’ll email your payment link the moment it does, and your 48-hour clock starts then.” Flip back when a slot frees. (Exact copy in the index.html intake-spec comment, “CAPACITY TOGGLE”.)
  4. Drop the intake answers into a new dossier working directory: dossiers/YYYY-MM-DD-<city>-<slug>/intake.md

city = “Other” only: manual triage. Reply within 2 hours (08:00–22:00 CET) with yes/no; if yes, send the payment-link email (template in OUTREACH.md → “Payment email”). If no → polite decline, nothing charged.

Stage 3 — Agent research pass (Claude Code, 0 min human)

Kick off a single Claude Code session with the intake file. One prompt, five research jobs, all output to research.md in the dossier directory:

  1. Listing extraction — pull every fact from the listing URL/exposé: price, m², rooms, floor, year, energy class (DPE/Energieausweis), charges/Hausgeld, taxe foncière/Grundsteuer, features. Note what the listing conspicuously omits.
  2. Comparables & price/m² — 6-10 genuinely comparable units (same district, ±20% size, similar condition/floor) from: - Paris: DVF (demandes de valeurs foncières — actual closed sales, free public data), MeilleursAgents/SeLoger/PAP for current asks, notaires de Paris quarterly price/m² by quartier. - Berlin: Gutachterausschuss Kaufpreissammlung (actual sales), ImmoScout24/Immowelt current asks, Guthmann market reports by Ortsteil, current Mietspiegel. - Output: closed-sale price/m² range, current-ask range, where this listing sits, price history of this listing if findable (reductions = leverage).
  3. Rental yield model — three rent scenarios (conservative/base/optimistic) grounded in actual comparable rental listings; full operating-cost stack (charges, property tax, insurance, management %, vacancy, maintenance reserve); gross and net yield. Flag rent-control exposure: Mietpreisbremse/Milieuschutz coverage for the Berlin address, encadrement des loyers reference rents for the Paris quartier — and the legal structures that route around them where applicable (bail civil for corporate tenants, furnished vs. unfurnished).
  4. Red-flag scan — - Energy class + coming rental restrictions (FR: DPE G/F/E ban timeline; DE: GEG/heating replacement exposure). - Building: year, facade/roof works cycle, elevator, known planned works, plausibility of stated charges (too-low = underfunded reserves). - Legal: Milieuschutz district? Vorkaufsrecht risk? copropriété procedures / WEG-Protokolle to request. - Seller dynamics: developer flip? estate sale? how long listed? price cuts? - District: noise, construction projects, transit changes (BVG/Grand Paris Express lines can move value both ways).
  5. Tax & structure notes — the 2-3 structures locals commonly consider for this property type (DE: private vs. GmbH, 10-year speculation period, AfA depreciation, Grunderwerbsteuer by Land; FR: LMNP réel, SCI, bail civil, frais de notaire ancien/neuf), each with one paragraph of general information — pros, cons, and the questions to ask your advisor. Never phrase as a personal recommendation (“you should use LMNP réel” is forbidden; “buyers with a corporate-tenant strategy commonly evaluate LMNP réel — ask your fiscaliste about X and Y” is the register). This keeps the product clearly on the market-research side of §§ 2, 5 StBerG (unauthorized Steuerberatung) and the French conseil-juridique rules. Keep the “verify with your advisor” flag on every item.

Agent rules: every number carries a source URL; anything unverifiable is marked ESTIMATE; no invented comps — fewer honest comps beat ten fabricated ones. The agent also drafts the full dossier HTML from the template (see Stage 5) so Joshua reviews a rendered document, not raw notes.

Stage 4 — Joshua review + verdict (Joshua, 60-75 min)

This is the product. The agent produces evidence; Joshua produces judgment.

Checklist: - [ ] Spot-check the 5 most load-bearing numbers (price/m² claims, top comp, base-case rent, biggest cost line, energy-class fact) against their source links. - [ ] Kill anything that smells like hallucination; downgrade weak comps. - [ ] Score the client’s must-haves (intake Q8) → green/amber/red scorecard with one-line reasoning each. - [ ] Write the negotiation section personally: target price, the 2-3 arguments that justify it, the exact questions to send the agent/seller. - [ ] Write the verdict personally: buy / negotiate / walk, in Joshua’s voice. This paragraph is why the product costs €299 instead of €0. - [ ] Fill the follow-up checklist (documents to request before notary: AG minutes / WEG-Protokolle, Teilungserklärung, diagnostics, garantie décennale, Energieausweis, etc.).

Anything Joshua can’t verify in the time budget gets moved to “Follow-up items” rather than stated as fact. That’s a feature: the checklist is deliverable value.

Stage 5 — Polish + render (agent, 0 min human)

Stage 6 — Delivery (Joshua, ~10 min)

  1. Final skim of the PDF (2 min — formatting, no placeholder text, client name correct).
  2. Send delivery email with PDF + HTML attached, offer the 15-min call with a scheduling link (Cal.com free tier).
  3. Log in dossiers/LEDGER.md: date, city, source channel, payment, delivery time vs. 48h promise, guarantee invoked Y/N.
  4. T+7 days: one-line follow-up email — “Did you make an offer? Reply if anything in the dossier needs a second look.” (Doubles as testimonial farming.)

Stage 7 — Optional call (Joshua, 15 min, only when booked)

15 minutes, hard stop. Walk the verdict, answer questions, do not do live re-research. New questions that need research → one follow-up note by email (10 min cap) or a paid second dossier.


Time accounting (per dossier)

Stage Owner Time
Kickoff check (payment is self-serve) Joshua 5 min
Research pass + draft Agent 0 min (≈1-2 h wall clock)
Review + verdict Joshua 60-75 min
Polish + render Agent 0 min
Delivery + log Joshua 10 min
Call (if booked) Joshua 15 min
Total Joshua ~90-105 min

Effective rate at €299 (gross; see README VAT note for the net column decision): €170-200/hour. Bundle (3 × dossier at €749) improves this — shared district research across finalists.

Capacity & failure modes

Assets to build after the first 3 paid dossiers (not before)