Project Folder Convention v2

performance.md

Agent-maintained performance ledger. Latest benchmarks, historical context, trends. The numbers behind whatever health.md is flagging. BQ-driven where possible.

What it is

The performance ledger for the project. Numerical context for whatever decisions the team is making.

Owner

Media (agent). Like health.md — overwritten, not appended.

Structure

Real example — SHAPE TCOL Sales

Elmwood doesn't have a populated performance.md yet. SHAPE TCOL Sales has the cleanest v2 example.

Latest benchmarks (Apr 1 – May 1, 2026):

Platform Spend Conv CPA Clicks Impr CTR CVR
Meta $5,877 140 $42.00 4,354 243,310 1.88% 3.49%
Google $2,352 10 $239.00 1,008 16,084 6.71% 2.94%
Total $8,229 ~150 ~$55

Benchmarks vs PD targets:

Metric TCOL Sales PD Benchmark (pre-sale) Status
Meta CPA $42 ~$42 On target
Google Search CPA $239 $38.58 Critical
Google PMax CPA (90d) $237 $27.41 Critical
Search CVR 2.94% 5.89% Watch

Historical context (90-day Google Ads audit, Jan 8 – Apr 8 2026):

Metric Value
Overall CPA $273.90
Search CPA $250.22
Search CVR 0.91%
PMax CPA $237.18
Avg Quality Score 3.5 / 10
Zero-conv keyword spend $8,700+

The pattern: numerical context for whatever decisions the team is making. If campaign.md says "we paused phrase match in March" — performance.md tells you whether that decision was right.

How this file gets updated

Managed exclusively by agents. /update-context rejects human writes to performance.md; manual edits get overwritten on the next agent run.

If you try to update it, the skill redirects you with a message like:

performance.md is agent-managed. Human edits get overwritten on the next agent run.

Your update sounds like a <classification>. Try:
  - <suggested alternative file + section>

Common redirects

What you tried to writeWhere it actually belongs
"Hue CPL spiked to $58 over the weekend"campaign.md § Status Log — dated entry the agent reconciles on next pull
"Google Search CPA is 6× benchmark — needs attention"campaign.md § Status Log + Open Flags. The agent updates performance.md + health.md on the next run
Weekly perf snapshot / monthly numbersDon't manually paste into performance.md. Either run the media-agent or write the narrative-only takeaway in campaign.md § Status Log

No --force flag. No override. The agent owns this file. If the team needs to see something now, write it to campaign.md § Status Log and the agent picks it up.