per-section-tracking

v2026.09.24

Breaks down weekly and trailing-4-week substacker performance per Substack section, keyed on section tags in corpus/published/ and section-map.md. Reports opens, clicks, subs-attributable-to-section per section with ≥3 posts. Skips if section-map has <2 sections. Feeds Curator with pruning candidates (sections with 4-week median z ≤ -1.0). Use when section-map has ≥2 live sections. Trigger keywords — per-section, section performance, section metrics, section pruning, differential engagement.

GitHub
Install command
npx skhub add lyndonkl/per-section-tracking
Markdown
SKILL.md

Per Section Tracking

Workflow

Per week (if ≥2 sections with ≥3 posts each):
- [ ] Step 1: Load section-map.md
- [ ] Step 2: Join CSV posts with corpus/published/{section}/ to map each post to section
- [ ] Step 3: Compute per-section aggregates (mean open rate, click rate, views/send, subs delta)
- [ ] Step 4: Compute trailing 4-week per-section z-score
- [ ] Step 5: Flag sections with median z ≤ -1.0 over 4 weeks → candidate for Curator prune proposal
- [ ] Step 6: Emit per-section table for the weekly report

Skip rule

  • If section-map has <2 sections → skip, note "sections not yet established."
  • If a section has <3 posts → exclude from per-section table; show in note: "{section} has <3 posts, not enough for section-level stats."

Output format (weekly-report subsection)

## Per section

| Section | Posts (week / total) | Open rate (week / 4w baseline) | Click rate (week / 4w baseline) | Sub delta | 4w z |
|---|---|---|---|---|---|
| kalshi-log | 2 / 6 | 0.54 / 0.51 | 0.06 / 0.05 | +8 | +0.7 |
| agent-workshop | 0 / 7 | — | — | +2 | +0.2 |

Narrative: 1-2 sentences per section summarizing what the numbers say (not interpretation — that's attribute-performance's job).

Guardrails

  1. Skip entirely if section-map empty or only one section.
  2. Skip any section with <3 posts.
  3. Never compare across sections' absolute numbers ("agent-workshop has higher open rate than kalshi-log"). Audiences differ; compare each to its own baseline.
  4. Section pruning flag is advisory — surfaces to Curator, Curator decides.
  5. Per-section z-scores use same IQR-based method as global baseline.
  6. Don't attribute causes in this skill (that's attribute-performance). Only describe the numbers.
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

Not specified

Source path

skills/per-section-tracking

Default branch

main

Latest commit

4acc337

Tree SHA

4f0a83e