# Calculator: kickoff prompt (Beat 3 / Part A warm-up)

Paste this into Claude Code in a fresh, empty folder AFTER you drop the Facebook Ads export into the folder (demo file: `Coastal-Glow_Meta-Ads_Last-30-Days.xlsx`, but any Meta export works). It is written read-the-file-first and plan-first so Claude designs against the real data shape.

---

I just put a Facebook Ads export in this folder (an .xlsx from Meta Ads Manager). I want to build a small web app that turns this kind of export into a creative-strategist dashboard: it reads the spend and results and tells me my blended numbers, which creatives are winning, and which are wasting money.

First, open the file and look at the columns and a few rows so you understand the real shape of the data. Then, before you write code, show me (1) the plan, (2) which columns you will use, and (3) the stack. Do not build until I approve.

Stack (keep it simple and fully static so it deploys anywhere):
- Vite + React + TypeScript + Tailwind
- Parse the spreadsheet in the browser with the SheetJS (xlsx) library. No backend, no database, no server.
- It should accept ANY Meta Ads export the user drags in, not just this one file.

The data is a Meta Ads export, one row per ad. The columns you will find include:
- Campaign name, Ad set name, Ad name
- Amount spent (USD), Impressions, Reach, Link clicks, CTR (link click-through rate)
- Purchases, Cost per purchase (USD), Purchases conversion value (USD), Purchase ROAS (return on ad spend)
Map columns by their header text, and be resilient to small naming differences and blank cells.

What to compute and show (v1, MVP first, get the upload-to-numbers flow working before any polish):
1. A drag-and-drop upload area. Drop the .xlsx, parse it, render the dashboard.
2. Account summary (blended): total spend, total revenue (conversion value), blended ROAS, total purchases, blended CAC (spend divided by purchases), blended CTR, and average order value (revenue divided by purchases).
3. A target input: let me set a target ROAS (default 2.0) and use it to label every ad.
4. Creative leaderboard: a table of ads sorted by ROAS, showing spend, purchases, CAC, and ROAS. Color winners (at or above target) green and losers (below 1.0) red, so I can see at a glance what to scale and what to kill.
5. Campaign breakdown: the same blended metrics grouped by campaign.
6. LTV panel: let me enter gross margin percent, repeat purchases per year, and average customer lifespan in years. Use the average order value from the data to compute LTV, then show the LTV to CAC ratio and a simple read on whether it clears 3 to 1. Facebook does not export margin or repeat rate, so these are my inputs.

Guardrails:
- All client side. No data leaves the browser. No backend, no API keys, no .env.
- Handle missing or zero values without crashing (an ad with zero purchases has no CAC, show a dash).
- Keep it MVP. The upload-to-numbers core flow working end to end matters more than charts.

When it works, prove it to me with the file in this folder: upload it and show me the blended ROAS, the single top creative by ROAS, and that the zero-result ads are flagged as losers. Show me the live behavior, not a description.

---

