01Data feed
one CSV export from your ads manager is all it needs
Where do you run ads? — pick yours to see export walkthroughs (detection handles every format automatically)
DROP CSV HERE — or click to browse
Parsed locally in your browser — nothing is uploaded. Any level works: campaign, ad set, ad, keyword, or search term. A date column unlocks trend detection.
Column mapping — auto-detected, correct anything that's wrong
02Targets & rules
set one number and you're done — every change re-runs the audit instantly · saved on this device
CPA if you buy leads/installs, ROAS if you sell online (needs a revenue column in the export).
The most you can pay per conversion and still make money.
Revenue ÷ spend you need to break even + margin.
▸ Advanced: rule thresholds (sensible defaults — you don't have to touch these)
Below this spend, no verdict — flagged LOW DATA instead.
Zero conversions after this × target CPA of spend → KILL.
Ceiling = target × this. Above ceiling → PAUSE; between target and ceiling → WATCH.
CPA ≤ this × target (with volume) → SCALE.
Don't scale on luck — require this many conversions first.
Above this average frequency → creative-fatigue flag (Meta/TikTok exports).
CTR below this × your account's median → weak-creative flag.
Needed before CTR judgments count.
Suggested budget increase per scaling round (20% keeps learning stable).
Recent-half CPA up (or CTR down) by this % → deterioration flag. Needs a date column.
03Diagnosis
— awaiting data feed — load a sample above to see what this looks like —
04Action queue
worst first · click a column to sort · every verdict shows its math
— awaiting data feed —
PULSE//AUDIT runs entirely in this page — no uploads, no accounts, no AI. Verdicts are deterministic
functions of your numbers and the thresholds above. Open source (MIT):
github.com/riz1k9/pulse-audit