Growth Engine

Plan marketing campaigns, track what they cost and record what each one actually returned. CTR, CPC, CPM, conversion rate, CPA and ROAS, all computed from dated cost and result rows you enter yourself.

New here? Load a worked example — a real spring-intake plan with four campaigns, a cost ledger, recorded results and deliverables — and every view fills in so you can see what the app does before you type anything.
EXAMPLE This is a demonstration plan, not yours. Nothing here is saved, and your own plan is untouched underneath it.
Overview
The state of the plan you have open: what is running now, what the budget says, and what the recorded results add up to. Every figure here is arithmetic over rows you entered — where a number cannot be computed the card says which input is missing rather than showing a zero.
Needs a decision
Each line is a fact about this plan, not advice: a campaign with no end date, one whose logged spend has passed its budget, one that finished with no results recorded. Nothing here is scored or ranked for you.
Next 14 days
Campaigns starting or ending and deliverables falling due inside the next fortnight, counted from today.
What is in this plan
Campaigns
One row per campaign: channel, objective, owner, the dates it runs between and the budget you set for it. Creating, editing and deleting campaigns is free and unlimited on both plans.
Filter the board
Nothing selected.
Calendar
Every campaign drawn against the days it runs, with deliverables on the day they are due. Reading the calendar is free; the timeline, the clash check, the workload split and the calendar file are Student Boost.
Deliverables
Timeline
Clashes
Workload by owner
Calendar file

An .ics file holding every campaign as an all-day event over its flight, and every deliverable as an all-day event on its due date. It imports into Google Calendar, Outlook and Apple Calendar without anything being retyped.

Budget
What each campaign was given and what has actually been spent against it. The planned figures are part of the campaign record and free to set; the dated cost ledger, the pacing arithmetic, the channel split and the review queue are Student Boost.
Cost ledgerDated entries, so pacing can be worked out from real dates rather than a single total.
Budget against spend
Ledger spend and the spend recorded on results rows are shown in separate columns and never added together — they are two different records of cost and merging them silently would double-count any campaign where you keep both.
Pacing
By channel
Review queue
Results
Record what a campaign actually did, one dated row at a time, and read the arithmetic back: click-through rate, cost per click, cost per thousand, conversion rate, cost per action and return on ad spend. Recording rows and reading the derived rates are free. Leave a box empty and it stays empty — a blank is never read as a zero.
Record a row
An empty box means "not recorded" and is stored as nothing at all. A recorded zero means zero. The two are shown differently everywhere in this app, because a rate computed from a missing number is not a rate.
Recorded rows
Over time
Campaign against campaign
By channel
Funnel
Week by week
What is missing
A/B comparison

Two variants, the number of people who saw each and the number who converted. The app reports both rates, the difference between them and a two-proportion z-test — the standard textbook formula, computed from the four numbers you type and nothing else. It is a statistic, not a verdict: a small sample gives a large p-value and the app says so plainly.

Reports
The plan, written out. Every report here is assembled from the rows in this plan and nothing else — no sentence is generated, no figure is estimated, and a value you never recorded is printed as "not recorded" rather than as zero.
Where to move the money

Every campaign ranked by what one conversion actually cost, and what moving budget between them would buy. This is the only thing on this page that makes a recommendation rather than restating a row — the arithmetic behind it is printed in full so you can disagree with it.

Campaign brief

One campaign as a Markdown brief: objective, audience, channel, dates, budget, deliverables with owners, and the tracking links registered against it.

Status report

Every campaign overlapping a date range, with its status, budget, spend to date and recorded results over that window.

End-of-campaign recap

Plan against actual for one campaign: budget against spend, the totals recorded, every derived rate, and an explicit list of the inputs that were never recorded.

Take it all away

The whole plan as one file. The JSON is the exact record this app reads back, so it round-trips through the importer without losing a field. The ZIP adds five flattened CSVs — campaigns, results, the cost ledger, tracking links and deliverables — plus a README explaining that an empty cell means unrecorded and not zero.

Preview
Saved plans
The plan you are working on is written to this browser after every change, so a refresh never costs you anything. Saving it under a name puts it in the library below, where it can be reopened, renamed, duplicated, exported and deleted — and every item says whether it lives only on this device or in your account as well.
Save the working plan
Your library
Snapshots
A snapshot is a dated copy of the working plan kept beside it. Restoring one never overwrites the plan you have open — it is loaded as the working plan, and the saved plan on disk is untouched until you press Update.
About this app
What Growth Engine does, what it deliberately does not do, and where your work is kept.
What this is

A campaign planner and tracker that runs entirely in your browser. You describe the campaigns you are running, when they run, what they cost and what they returned; the app keeps that record, does the arithmetic on it, draws it and writes it out as files. There is no server doing the work and no account required to use any of it.

What it does not do
  • It does not fetch your numbers for you. It has no connection to an ad platform, an analytics property, an email tool or a social network. Every figure on every screen is one you typed or imported from a file you chose.
  • It does not predict, score or estimate. No forecast, no "likely performance", no invented benchmark. Where an input is missing the output says so rather than filling the gap.
  • It does not scrape anything. An earlier version of this page showed a simulated lead scraper, a simulated sentiment listener and a placeholder analytics chart, none of which were connected to anything. They have been removed rather than restyled.
  • It does not decide for you. The review queue and the clash check state facts about dates and totals. The judgement is yours.
Where your work is kept
Free and Student Boost
The checks in this page are advisory. Everything here runs in your own browser on data your browser already holds, so anyone with developer tools can defeat them; what they buy is that the two plans are legible, not that the bytes are unreachable. The gates that carry real weight are on the server and they are not these.
Keyboard shortcuts
1 … 9Jump to a view — Overview, Campaigns, Calendar, Budget, Results, Tracking links, Reports, Saved plans, About.
nNew campaign.
sGo to Saved plans.
tCycle the colour theme.
EscClose the drawer, this box, or the nav on a narrow screen.
?Open this list.

Shortcuts are ignored while you are typing in a field.