--- title: "CPM Calculator" subtitle: "Plan campaign impressions, fees, and payouts" description: "Calculate campaign impressions, fees, payouts, and margins from monthly spend, with multi-partner support and currency switching." author: "Studio" section: "Tools" subsection: "" order: 6 status: "published" actionUrl: "./cpm-calculator.html" actionLabel: "Open Tool" --- Calculate campaign impressions, fees, payouts, and margins from monthly spend. Built for media planners and sales teams, with multi-partner support, creative and hosting fee toggles, and currency switching. --- ## How It Works The calculator has three main sections: ### 1. Global Settings Toggle buttons control which optional features are visible. All toggles are off by default. | Toggle | Shows | |--------|-------| | **Creative Fee** | Creative Fee (CPM, £) input + Creative Fee column | | **Ad Hosting Fee** | Ad Hosting Fee (CPM, £) input + Ad Hosting column | | **Add Partner** | Partner Name, Partner Share (%), and Net (%) inputs + Partner column | When **Add Partner** is enabled: - **Partner Name**, free-text input that updates the "Partner" column header in the table (e.g. entering "Dianomi" changes the header to "Dianomi") - **Partner Share (%)** and **Net (%)** are linked. They always sum to 100%. Changing one auto-updates the other ### 2. Campaign Overview - **Campaign CPM (£)**, cost per thousand impressions (default: £15) - **Total campaign spend (£)**, total budget for the campaign (default: £300,000) - **Calculated impressions**, total impressions based on spend and CPM (read-only) ### 3. Monthly Breakdown Table The primary output: - One row per month (January through December) - **Campaign (£)**, editable monthly spend - **Impressions**, calculated impressions for that month - **Net**, always visible, shows the net amount after all deductions and partner share Optional columns (shown/hidden via toggle buttons): - **Creative Fee**, creative earnings for the month - **Ad Hosting**, Ad hosting costs for the month - **Partner**, partner share amount for the month The **Totals** row sums all monthly values. --- ## Calculations All calculations update instantly when inputs change. Impressions are always calculated, never manually entered. ### Core Calculations **Impressions** ``` (Campaign spend ÷ Campaign CPM) × 1,000 ``` **Creative Earnings** (when enabled) ``` (Impressions ÷ 1,000) × Creative Fee CPM ``` **Ad Hosting Cost** (when enabled) ``` (Impressions ÷ 1,000) × Ad Hosting Fee CPM ``` **Net Spend** (calculated internally) ``` Campaign spend − Creative earnings − Ad hosting cost ``` ### Partner Split (when Add Partner is enabled) Partner Share and Net are complementary percentages of net spend: **Partner Share** ``` Net spend × (Partner Share % ÷ 100) ``` **Net** ``` Net spend × (Net % ÷ 100) ``` Where `Partner Share % + Net % = 100%` always. When Add Partner is **not** enabled, the Net column shows 100% of net spend. --- ## Usage Tips 1. **Start with Campaign CPM**. Set your base CPM rate first 2. **Enter monthly spend**. Type spend values directly in the table cells 3. **Toggle optional features**. Click the toggle buttons in Global Settings to show/hide fields 4. **Name the partner**. Use the Partner Name field to label the Partner column for your audience 5. **Instant updates**. All calculations update automatically as you type --- ## Default Values | Input | Default | |-------|---------| | Campaign CPM | £15 | | Creative Fee CPM | £1 (when enabled) | | Ad Hosting Fee CPM | £1 (when enabled) | | Partner Share | 70% (when enabled) | | Net | 30% (when enabled) | | Total campaign spend | £300,000 | --- ## Technical Notes - Plain JavaScript only (no external dependencies) - All calculations are deterministic and visible - Feature toggles use `data-opt` attributes on HTML elements - Hidden features don't affect visible totals - Works in all modern browsers