Sample deliverable · published in full

Sample deliverable — Project Spec & Handover

The two documents that bracket every project: the spec you approve before paying the balance, and the handover you receive at the end. Client fictionalized.

Project: competitor-price monitoring scraper for an e-commerce retailer. These are the actual document formats, condensed.

01

SPEC §1 — Scope, in plain sentences

Build a monitor that checks 6 named competitor product pages daily, extracts price + stock status, stores history, and emails a digest when any price changes more than 2%.

IN — 6 sites listed in Appendix A; daily 06:00 ET run; CSV export; 12 months history; email digest.
OUT (explicitly) — sites beyond the six; captcha-protected pages (flagged: Site #4 uses Cloudflare — see Risks); a web dashboard (quoted separately if wanted later).
02

SPEC §2 — Acceptance tests (what "done" means)

AT-1: Run on 2026-06-20 produces 6 rows with non-null prices, or an explicit per-site failure reason.
AT-2: Manually edit stored price → next run sends digest within 10 min of completion.
AT-3: Site #2 changed its layout in our test copy → scraper reports "layout changed, needs selector update" instead of silently writing wrong data.
AT-4: Fresh-machine setup from README completes in under 15 minutes by a non-developer following it literally.
You sign off against this list. Disagreements happen here, on Day 3 — not at delivery.

Design notes

  • Disagreements surface on Day 3, when they cost nothing: not at delivery, when they cost everything
  • AT-3 is silent-failure insurance: the scraper announces when it breaks instead of writing wrong data
  • Every test is verifiable by a non-developer: 'done' stops being a feeling
03

SPEC §3 — Milestones & price

M1 (Day 5) — Scrapers for sites 1–3 + storage + manual run. $290 of balance due on written acceptance.
M2 (Day 9) — Sites 4–6 incl. Cloudflare workaround or documented fallback, scheduler, digest email. $310 due.
Deposit $490 credits against M1. Total fixed: $1,090. Risk note: if Site #4 hardens beyond the documented fallback post-delivery, that is new work — flagged now in writing so it is never a surprise.
04

HANDOVER §1 — Run & deploy

Stack: Python 3.12, Playwright, SQLite, single VPS cron. Setup: 9 numbered commands in README (tested on a clean machine — AT-4). Deploy: one systemd unit file included; logs to /var/log/pricewatch with rotation. Secrets: .env.example with every variable explained in one line each.
05

HANDOVER §2 — Known limits & 14-day support

KNOWN LIMITS — Site #4 falls back to their sitemap price feed (4h delay) when Cloudflare blocks; Site #6 hides stock status behind login, so stock is "unknown" there (per spec OUT list).
WHAT BREAKS FIRST — Competitor redesigns. AT-3 behavior means you get an alert, not silent bad data. Selector updates on the six sites: flat $60 each, 48h turnaround, standing offer.
SUPPORT — 14 days of written support included; median reply under 4 business hours. After that, the maintenance retainer ($190/mo) covers updates and small changes.

This is the standard. Now make it yours.

Everything above was written, reviewed and formatted exactly the way your deliverable will be. If the first deliverable is not useful, reply "refund" within 14 days of delivery and we return 100% of what you paid. No forms, no calls, no questions.

Plans & pricing