Files
datatools-dev/marketing/emails/bookkeeper/01-day1.md
Michael e1f364f010 feat: Tier B operator scaffolding — bundle, copy SoT, posts, emails
Pick up and finish yesterday's cut-off Tier B pass.

- build/: PyInstaller scaffold (datatools.spec + launcher.py +
  hook-streamlit.py + README) — folder-mode bundle, locked
  127.0.0.1, per-OS recipe
- marketing/COPY.md: single source of truth for every customer-facing
  string — landing H1/sub/CTAs, demo CTAs, email subjects, Gumroad
  listing, banned phrases
- marketing/community-posts/: 9 drafts (3 posts × 3 niches:
  bookkeeper, revops, shopify-pet) — story / tip / soft-offer
- marketing/emails/: 18 drafts (Gumroad delivery + 5-touch
  onboarding × 3 niches), per-niche segmentation guidance
- docs/NEXT-STEPS.md: flip 2.2 / 2.4 / 3.1 / 3.4 to done with
  pointers to the new assets; add Phase 0 inventory rows
- .gitignore: narrow `build/` ignore so PyInstaller spec + launcher
  + hooks get tracked, only generated artifacts (build/build/,
  build/__pycache__/, build/dist/) stay ignored

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 14:04:37 +00:00

1.6 KiB

Bookkeeper · Day 1 — Try it on this messy bank export first

Subject: Try it on this messy bank export first Send: Day 1, ~9am buyer-local-time Goal: convert "I bought it" → "I ran it on something"


Hi {{first_name}},

Yesterday's email had your download. Today's email has a file — a sample bank export I built specifically to break things.

{{sample_file_url}} (260 KB CSV, 1,400 rows of synthetic data — no real account info)

It's modeled after real exports I've seen from US, UK, and Canadian banks. Hidden in there:

  • Mixed date formats (some MM/DD/YYYY, some DD-MM-YY, one row in YYYY-MM-DD)
  • Six different spellings of "Amazon" across the merchant column
  • Trailing whitespace + non-breaking spaces in the description column
  • Three obvious duplicate transactions and two non-obvious ones (different timestamps, same amount + merchant)
  • A totals row at the bottom that's not a transaction
  • One row with currency in instead of $

Drop it into DataTools, click "Run all" in the analyzer, and look at the gate report. It'll catch all of the above and tell you exactly what changed and why.

The audit trail (a sidecar CSV called <filename>.audit.csv) is the part most bookkeepers are surprised by. Open it in Excel — every change has a row: original value, new value, rule that fired, timestamp. That's the file you hand to your client when they ask "wait, why did you re-classify that?".

Try it once on the sample, then once on a real client export. Reply and tell me what it caught (or missed) — I'm building the v1.1 detector list from real-world feedback.

— Michael {{support_email}}