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>
This commit is contained in:
35
marketing/emails/bookkeeper/04-day14.md
Normal file
35
marketing/emails/bookkeeper/04-day14.md
Normal file
@@ -0,0 +1,35 @@
|
||||
# Bookkeeper · Day 14 — Two-minute trick: the gate report
|
||||
|
||||
**Subject:** Two-minute trick: the gate report
|
||||
**Send:** Day 14
|
||||
**Goal:** surface the gate tool — non-obvious, high-value once seen
|
||||
|
||||
---
|
||||
|
||||
Hi {{first_name}},
|
||||
|
||||
The tool inside DataTools that buyers find last is the **gate** — and it's the one that quietly does the most for you.
|
||||
|
||||
What it does: before any row gets written to the cleaned CSV, the gate runs a per-row pass-through check. Rows that fail get *quarantined* into a separate file (`<filename>.quarantine.csv`) instead of silently dropped or silently passed.
|
||||
|
||||
Default rules (you can add your own):
|
||||
|
||||
- Missing required fields (date, amount)
|
||||
- Amount in unexpected currency without a flag
|
||||
- Date outside the export's stated range (catches the "totals row" issue from Day 1)
|
||||
- Duplicate of another row already in the file (per the dedupe pass)
|
||||
- Confidence below your threshold on a field that got auto-corrected
|
||||
|
||||
The 2-minute workflow:
|
||||
|
||||
1. Run the pipeline as usual.
|
||||
2. Open `<filename>.quarantine.csv`. (It'll be tiny — typically 0-5% of rows.)
|
||||
3. Eyeball it. Anything that's a real transaction, fix-and-re-include manually. Anything that's a totals row / blank row / corrupt row — confirm it's correctly quarantined and delete it.
|
||||
4. Re-run the pipeline on the fixed-up version (or just append the manually-fixed rows to the cleaned CSV).
|
||||
|
||||
The reason this matters: silent drops are the worst possible failure mode for a bookkeeper. You'd rather a row come out wrong (you'll catch it on review) than disappear (you won't catch it for months). The gate makes the silent-drop case impossible.
|
||||
|
||||
Set the gate's confidence threshold to `0.85` for client work. Lower (0.75) for personal / exploratory; higher (0.92+) only if you've spent time tuning your client's preset.
|
||||
|
||||
— Michael
|
||||
{{support_email}}
|
||||
Reference in New Issue
Block a user