Property Investment Dossier — Stream C
Offer: AI-assisted, human-verified investment dossier for a specific property listing. Price: €299 per property (bundle: 3 for €749; on-site inspection add-on: €499 Berlin / €899 + travel Paris). Turnaround: 48 hours. Market: Expat/international buyers in Berlin & Paris who can’t independently read the local market.
Why €299 (from the €249-349 band)
- Anchors against the alternative: a Paris buyer’s agent costs 1.5-3% of purchase (€10k+ on a €700k flat); a notary consult runs €200-400/hour. €299 is “obviously cheap” next to both while still signaling professional work — €249 reads closer to “PDF template.”
- Unit economics: ~90-105 min of Joshua time per dossier (see DELIVERY-PIPELINE.md) → €170-200/hr effective gross, with agent leverage improving it over time.
- Psychology: under the €300 threshold where solo buyers stop needing to “think about it,” and cleanly divisible into the 3-for-€749 bundle (real savings, higher AOV).
- Room to raise to €349+ once there are 3 testimonials; never launch at the ceiling.
Files
| File | What it is |
|---|---|
sample-dossier.html |
The real Paris dossier (April 2026 private client), fully anonymized and rebranded — now 9 pages including a new Comparables & True Price/m² page (page 6). On-site inspection pages carry “optional add-on” chips. SAMPLE watermark, CTA bar, OG/Twitter meta, favicon. |
index.html |
Landing page on the Unicorn.Land design system. Includes source-forwarding script (?source= survives into the Tally link and the sample detour), OG/Twitter meta, favicon, capacity line, VAT note placeholder, Impressum/privacy/terms footer links, testimonial slot. Full Tally intake spec (incl. conditional Stripe thank-you pages and the withdrawal checkbox Q13b) is in the HTML comment at the bottom. |
impressum.html |
Combined Impressum + Datenschutzerklärung + short Terms (scope, delivery, guarantee, EU withdrawal handling). Contains [BRACKETED] placeholders — fill in Morning Action 0 before deploy. |
og-image.png |
1200×630 link-preview image (dark card, holographic dot, “€299 · delivered in 48 hours”). Deploy alongside the HTML; meta tags point at unicorn.land/property-dossier/og-image.png. |
favicon.svg |
Copied from design-system/brand/. |
fonts/ |
Self-hosted Outfit + JetBrains Mono variable woff2 (latin + latin-ext). All three HTML pages @font-face these — zero external font requests, so the Datenschutz “no Google” claim is true. Deploy this directory alongside the HTML. |
DELIVERY-PIPELINE.md |
Intake → self-serve payment (Berlin/Paris) → agent research pass → Joshua review/verdict → render → delivery. Joshua time ~90-105 min/dossier. |
OUTREACH.md |
Named communities, partnership pitch (now Day 1-2), LinkedIn + X drafts added, 5+ copy-paste drafts (EN/DE/FR), payment/delivery email templates with withdrawal wording, 2-week sequencing. |
Nothing has been deployed, posted, sent, or purchased. No accounts were created.
Expert-council feedback: what was applied
All must-fix items were applied. The only judgment call: the trust-quote block now holds a placeholder for the real client testimonial (Morning Action 1) rather than shipping Joshua quoting himself — Joshua’s quote moved into the trust bullet list. If the client says yes to publication but doesn’t send a quote, see the fallback in Action 1.
MORNING ACTIONS (Joshua only — in order)
0. Entity & VAT decision (15 min — BEFORE Stripe, blocks Actions 3 and 6)
Recommendation: bill through MIA UG if it can claim Kleinunternehmer status — check MIA’s
prior-year turnover (likely near zero). If yes: invoice “€299 — no VAT charged per §19 UStG”,
and in impressum.html + the index.html price card use the Kleinunternehmer sentence (both have
inline comments marking the exact spot). If no (or you’d rather bill personally with VAT):
price stays €299 incl. 19% USt (net ≈ €251 — add a net column to the DELIVERY-PIPELINE rate
table so the €/hr math stays honest).
Paris caveat — read before the first Paris sale (10 min): dossiers on a specific French property are plausibly “services connected with immovable property” (Art. 47 VAT Directive / §3a Abs. 3 Nr. 1 UStG; Art. 31a of the Implementing Regulation explicitly lists valuation and expert services on a specific property). If that classification stuck, place of supply = France and French VAT would be due regardless of German Kleinunternehmer status. Two cheap mitigations, both already prepared: 1. The terms page and invoices frame the deliverable as “independent market research and general investment analysis” — never “valuation/expertise of the property,” and no formal valuation opinion is given (substance matters, but the wording supports the market-research classification; keep invoice line items matching it). 2. Register for the EU OSS scheme via BZSt online portal (free, ~20 min) so B2C services taxable in another member state can be reported there if it ever comes to that. Decide eyes-open; this is a note from your researchers, not tax advice.
Then: fill the four [BRACKETED] placeholders in impressum.html (entity name, address, VAT
line) and pick the VAT sentence in the index.html price card (marked VAT LINE).
1. Message the Paris client — HARD GATE before any deploy/posting (5 min)
The sample is a €935k, 7th-arr., top-floor, Eiffel-view purchase — a small identifiable set. Explicit consent is a blocking gate, not a courtesy. Ask for both things at once:
“Hey — I’m turning the dossier I did for your Paris place into a service. I’ve anonymized yours as the public sample: no name, no street, no photos, figures rounded (draft attached / link). Two asks: (1) are you comfortable with this version being public? (2) would you give me 1-2 sentences on what it was worth to you, attributed only as ‘Private client, Paris’?”
- Yes + quote → paste it into the
trust-quoteblock inindex.html(markeddata-testimonial-pending, replaces the REPLACE_WITH_CLIENT_TESTIMONIAL text). - Yes, no quote → put Joshua’s quote back in the block (it’s preserved in trust bullet 5 — copy it back and drop the bullet).
- No / uncomfortable with the view detail → fallback, pre-decided: replace “Eiffel Tower” /
“Eiffel” with “iconic landmark” in the sample (
grep -n "Eiffel" sample-dossier.html— 9 hits; index.html has none) and re-ask with the softened version. - No reply by deploy time → do not deploy the sample; the landing page can go live alone.
Exact no-sample edit list (the sample is referenced in 4 places on index.html plus every
outreach draft):
1. Hero secondary CTA (
btn-secondary, “Read a real sample”) → delete the anchor, or repoint tomailto:ops@unicorn.land?subject=Sample%20dossier%20requestwith text “Request the sample”. 2. Sample band (the<!-- SAMPLE -->section with.sample-band) → comment out the whole section. 3. Trust bullet 5 (“The sample is real.”) → replace with this pre-written variant:<li><strong>The work is real.</strong> "This spring I inspected a €935k Paris apartment for a private client, modeled the deal, and told him exactly what to offer and what to ask the agent. That dossier is available on request — and it's the standard every dossier is held to." — Joshua</li>4. Do NOT deploysample-dossier.html(and skip it in the copy step of Action 5). 5. OUTREACH.md drafts → replace every[SAMPLE-LINK]?source=...with[SITE-LINK]?source=...plus this pre-written line: “The anonymized sample dossier is available on request — reply/DM and I’ll send it over.” (Keeps consent scoped to person-to-person sharing while public consent is pending.)
2. Create the intake form (20 min)
- tally.so → sign in with ops@unicorn.land → “Create form.”
- Copy the questions verbatim from the HTML comment at the bottom of
index.html— including Q4 as LONG TEXT (not URL-type) so bundle buyers can paste 2-3 listing links, Q12’s optional-with-purpose help text and the required Q13b withdrawal checkbox (it’s the legal basis for delivering inside the 14-day withdrawal window). - Set up the conditional thank-you pages (spec in the same comment): Berlin/Paris → embedded Stripe link + bundle-buyer reply line, “Other” → 2-hour-SLA message. (Do Action 3 first if Tally wants the links now.) Note the CAPACITY TOGGLE copy in the same comment — that’s the 2-minute edit you make when 2 dossiers are in flight.
- Add hidden field
source; enable email notifications to ops@unicorn.land. - Copy the share URL → find-replace
REPLACE_WITH_TALLY_URLinindex.html. One step: the placeholder sits directly in thehrefof the singledata-intake-linkanchor (price-card CTA), so one find-replace fixes the link and the source-forwarding hook together. The nav/hero CTAs intentionally point at#order. - Test source tracking: open
index.html?source=testlocally — the price-card CTA and the sample links must carry?source=test. Submit a test intake and confirm Q14 filled.
3. Create the Stripe payment links (10 min)
- Stripe → Product catalog: Property Investment Dossier €299 one-time; Dossier Bundle (3 properties) €749. Use the entity from Action 0; set the tax/VAT treatment accordingly.
- Create a Payment Link for each; enable address collection; confirmation message: “Payment received — your 48-hour dossier clock has started. Check your inbox.”
- Paste the links into the Tally thank-you pages (Action 2.3) and into the “Payment email”
template in
OUTREACH.md(replace[STRIPE-LINK]) — that email is now only for city = “Other” intakes.
4. Set up the call scheduler (5 min, optional today)
Cal.com free tier → 15-minute event “Dossier walkthrough” → paste into the delivery-email
template in OUTREACH.md ([CAL-LINK]).
5. Deploy the pages (10 min — only after Actions 0-2 are done)
Pre-deploy check from overnight/property-dossier/:
grep -n 'REPLACE_WITH_TALLY_URL\|REPLACE_WITH_CLIENT_TESTIMONIAL\|\[ENTITY\|\[STREET\|\[NUMBER\|HRB \[\|\[IF \|href="#" data-intake-link\|fonts.googleapis' index.html impressum.html sample-dossier.html
must return nothing (the only remaining href="#" targets are the intentional #order
anchors; the [IF ...] brackets in impressum.html must be resolved per the Action 0 entity
decision — UG keeps the Registergericht/HRB/Geschäftsführer lines with the real HRB number,
personal billing deletes them). Then, from a normal (non-overnight) session: copy index.html,
sample-dossier.html, impressum.html, og-image.png, favicon.svg, and the fonts/
directory (self-hosted Outfit + JetBrains Mono — the pages make zero external requests) into
.deploy/property-dossier/ on a branch, PR, merge. Replace [SAMPLE-LINK] / [SITE-LINK] in
OUTREACH.md with live URLs. Verify the OG preview (paste the URL into a LinkedIn draft — don’t
post yet) and that DevTools Network shows no fonts.googleapis.com request.
6. Day-1 outreach (30 min)
Per OUTREACH.md sequencing — note the order changed:
1. LinkedIn post — Draft 1b is written, first-person, ?source=linkedin baked in.
2. X opener — Draft 1c, ?source=x.
3. 3-5 partnership emails — same day: Guthmann (Draft 5a) and Adrian Leeds Group (Draft 5b)
are pre-written and send-ready in OUTREACH.md — just research the right inbox and paste.
Draft 5 is the template for the other targets. This is the channel with buyers transacting
this month — it no longer waits for week 2.
4. Request membership in the FB groups + start the Message Paris join (approvals take days).
5. Toytown post (Draft 1).
Open questions for Joshua
- Does the “find-something guarantee” wording feel right? (Pricing card,
index.html; also restated inimpressum.html#agb.) - The comparables page in the sample uses plausible, DVF-flavored anonymized rows consistent with the original dossier’s €14-16k/m² statement — skim page 6 and adjust any row that contradicts your memory of the real comp set before deploy.
- OSS registration (Action 0): do it now or only if a French buyer actually converts?