Event KPI dashboard template: what every number needs beside it
An event KPI dashboard is one screen that holds the numbers you report on an event. Every row on it needs 4 things beside the figure: the definition you agreed on, the system the figure came from, how often that system updates, and the time this particular number was pulled.
Leave any of the four out and the row is not worth reporting, because the first person to question it will be right to. The template below is free, needs no email, and comes as a CSV that opens in Excel and Google Sheets.
Download the event KPI dashboard template
Download event-kpi-dashboard.csv (plain CSV, no sign-up). In Excel, open the file directly. In Google Sheets, use File, then Import, then Upload. The rows match the table below and the columns are blank, because the definitions, sources, and targets are yours to write and to keep.
| Metric | Definition | Where it comes from | How often it updates | Target | What to do when it comes in worse |
|---|---|---|---|---|---|
| Before the event | |||||
| Registrations | Registration records that passed your test, duplicate, and cancellation rules. One row per registration, not per person | Registration platform | Every 15 to 30 minutes on a supported platform | Your own pacing curve at this many weeks out | Read the channel rows before you add budget. Late registration is normal, a channel flat for 2 weeks is not |
| Registration pace against plan | Registrations to date divided by the share of final registrations your past events held at the same week out | The row above, against your own history | With registrations. The denominator moves only when you add an event to history | 100% of plan at each weekly checkpoint | Resize the decisions it feeds while their deadlines are open: print run, meal guarantee, room block |
| Marketing spend by channel | Spend recorded against this event by channel, with the person who entered it | Ad platforms and your budget file | On each platform's own reporting schedule, and recent days can still be restated | Plan to date, by channel | Ask whether the channel is underspending or under-reporting before you move money out of it |
| Cost per registration | Channel spend divided by the registrations credited to that channel, same date range on both sides | A division you run on the two rows above | No fresher than the slower of its 2 inputs | Your own figure from the last comparable event | Compare channels at the same point in the cycle, not one at the end and one in the middle |
| Unmatched registrations | Registrations with no matching contact record, counted separately from those that carried no email at all | The matching result stored on each record | With registrations | A count you can say out loud, falling event over event | Report it beside every percentage. Dropping those rows moves every rate on the page |
| Sponsorship and exhibit revenue signed | Contract value signed for this event, with proposals out for signature on a separate line | Your sponsorship agreements and finance | By hand, on the day a contract is signed | Signed plan at this week out | Name which deals moved and which stalled. A single total hides a renewal that is not coming back |
| During the event | |||||
| Check-ins | People recorded present under one definition you pick and keep: badge collected, check-in scanned, or session joined | Registration or onsite platform | Every 15 to 30 minutes on a supported platform | Your attendance forecast for the day | Staff the desk against arrivals by hour, not against the day total |
| Attendance rate | Check-ins divided by registrations, times 100, with both inputs pulled at the same time | A division you run | As old as the older of its 2 inputs | Your own rate from comparable events | Separate the two halves before you explain it. A rate can fall because attendance dropped or because registration grew |
| Virtual attendance and time in session | Participants who joined, and the seconds each one stayed | Webinar platform | Every 2 hours on a supported platform | Your own figures from comparable sessions | Look at the minute people left before you rewrite the agenda |
| Session views, booth visits, questions asked | One record per participant per action, held apart from one another rather than added into a single score | Event app | Every 15 minutes on a supported platform | Named per format, not one number for all three | Ask which sessions and which booths, then tell the sponsor that, not the total |
| Survey responses | Completed responses, counted against the people who had the chance to answer | Event app or survey tool | With the app's schedule. Most answers arrive after the closing session | A response count that supports the claims you plan to make | Report the response count beside every survey figure you quote |
| After the event | |||||
| Pipeline created and linked to the event | Open opportunity value on deals tied to the event through a campaign relationship a person confirmed, with stage and snapshot date beside it | CRM | Every 4 hours on a supported platform, and in practice as sellers update stages | The pipeline your plan promised, read the same number of days after the event | Check stage coverage first. Pipeline that nobody has touched in 3 weeks is a data problem before it is a demand problem |
| Closed revenue linked to the event | Closed-won revenue on the same confirmed relationship, inside a crediting window you fixed before the event | CRM | Every 4 hours on a supported platform, and it keeps moving for a full sales cycle | Your plan, read at the end of that window | Check the window before the conclusion. A 90-day window over a 200-day sales cycle reports a loss every time |
| Event cost on the finance definition | Cost on the definition finance signed, including the allocations your CFO will ask about | Your budget file and the finance ledger | Monthly, and not final until the period closes | Approved plan | Mark the rows preliminary yourself when you report before the close |
| As of: the date and time each number above was pulled, written per source rather than once for the page | |||||
What belongs on an event KPI dashboard?
A row belongs on the dashboard when a different value in it would change something you do this week. The test is stricter than it sounds, and it clears most of what usually ends up on these screens: social impressions and app downloads pass the interesting test and fail this one.
The fourteen rows above are grouped by when they can move, which is also what decides who reads them. Demand and spend rows carry the decisions you make before the doors open. Attendance and engagement rows are read on the day, usually by someone who is standing up. Pipeline, revenue, and cost wait for the conversation with finance.
Two habits keep the list honest. Keep registrations and attendance as 2 rows and never fold them into one audience number, because the gap between them is the only part you can act on. Keep an input beside every ratio: spend beside cost per registration, registrations and check-ins beside the attendance rate. A ratio on its own tells you something changed without telling you which half.
The screen usually gets built because somebody upstairs asked for proof. In a survey of 162 planners published by Global DMC Partners in May 2026, 68% reported stakeholder pressure to prove the business impact of their meetings, and one in five described that pressure as significant or extreme (Global DMC Partners). That is a self-selected industry sample rather than a measured average, and it still describes the room you present in.
A dashboard is not a board page. Directors get 5 numbers and a recommendation on one sheet, and the layout for that is on the board report template. This screen is the working version the team reads weekly. The definitions behind each metric, with their formulas, are on event marketing analytics.
Which numbers update during the event and which only after?
Different sources arrive on different schedules, so nothing on this screen represents a single moment. On the platforms EventIQ supports today the schedules are known: an event app every 15 minutes, a registration platform every 30, a webinar platform every 2 hours, and a CRM every 4. Put those four next to each other and the freshest number on the page is a quarter of an hour old while the one below it is half a day behind.
That matters most for the rows you read during the event. Check-ins and session activity do move while the event runs, within minutes of their sync. Pipeline and closed revenue move for reasons that have nothing to do with the room: they move when sellers update records, days later. Cost does not settle until finance closes the period.
A derived row is only as recent as its oldest input. An attendance rate built from a check-in count pulled at 14:05 and a registration count pulled at 13:40 describes neither time. Pull both, then stamp the result, and prefer both from the same source when you have the choice.
So write the schedule into the fourth column of your own copy, and stamp each figure with the time it was pulled rather than the time you looked at it. Two numbers on one screen with two different ages are fine as long as both ages are visible. Hide the ages and the first argument about one figure turns into an argument about the whole page.
How do you set targets when you have 2 events of history?
Two events give you 2 points. Say that in the target column instead of leaving it blank: write the target as a range, name the event it came from, and mark it provisional until a third event confirms it.
Set targets from your own records rather than from a published benchmark. A figure measured on a different sample, in a different year, for a different kind of event will not describe yours, and a target nobody can source is a target nobody defends. Where you have no history at all, derive the number from arithmetic instead: break-even attendance from your event budget template is a target you can show your work for, and so is the registration pace implied by your event marketing plan.
While the history is thin, set the target against your own last event instead of against an absolute number. "Cost per registration below the last event at the same week out" survives a change in event size. "Cost per registration under $140" does not survive a change of venue. Compare at the same point in the cycle every time, and keep the offset in the source column so next year's comparison uses the same one.
Fix the crediting window for pipeline and revenue before the event, not when the first report comes due. Shortening it later to make one report land moves every historical comparison you have, silently. Write the window in the definition column, put the date you set it beside it, and change it in both years or in neither.
Set each target before the event and freeze it, and record who set it and on what basis in the same file, so the reasoning outlives the person who had it. When you change a definition, restate the earlier event on the new basis and keep the original figure in a note. Otherwise target setting turns into negotiation in the week the number comes due.
What does each number need beside it to be usable?
Four of the template's columns exist for that: a definition, so that 2 people reading the row mean the same thing; a source, so the figure can be traced back to a system; an update schedule, which with the as-of stamp at the foot of the page gives the number an age; and an action, which ties the row to a decision somebody has to make.
Write the definition once and keep it. Most arguments about an event number are arguments about its definition arriving late: attended means badge collected to one person and session joined to another, and both are defensible until they appear in the same table.
Name the system of record, especially where 2 systems both hold an answer. Revenue from finance is net of refunds and sits inside a fiscal period; revenue from the registration platform is what was charged at checkout. Both are correct, they will not match, and the dashboard should say which one it is showing.
Keep the unmatched count visible. Registrations that could not be tied to a contact record are a count, not a rounding error, and every percentage on the page moves when those rows are quietly dropped. The same applies to a person who reached you through 2 sources with two email addresses: they arrive as 2 records and will be counted twice everywhere downstream unless you handle it yourself.
Put numbers of different ages and different definitions side by side and the screen starts producing confident wrong answers, which cost more than a blank cell does. The ways this happens with event data, and what to ask a vendor about each, are on the event tech stack. Once the event is over, the same rows carry into the post-event report template, and the cost and crediting rules behind the last three of them are in the event ROI guide and its calculator.
Where EventIQ fits
EventIQ replaces nothing. It connects on top of the platforms you already run: registration and ticketing (Cvent, Zoom, Swapcard, StubHub), CRM (Salesforce, HubSpot, GoHighLevel), and marketing (Google Ads, Meta Ads, LinkedIn Ads, Mailchimp, Google Analytics). Platforms with an API outside that list are connected on request.
Registrations and attendance stay separate records. Contacts are matched by exact email, and every record keeps its result: matched, unmatched, or no email. Salesforce deals, stages, and close dates link to an event through a campaign relationship you confirm. Marketing spend sits by event and channel, with the author of every change. Records sync on a schedule: Swapcard every 15 minutes, Cvent every 30, Zoom every 2 hours, Salesforce every 4. The Event Dashboard and the Portfolio Dashboard show them in one view, and a forecast is visible before the event.
Ask any vendor, including us, which of these it holds in the product rather than on a slide: the full cost of the event, the ROI figure itself, one person counted once across sources, and a total in a single currency. The method in this article is the one you run on top of those records.
See which rows a source record can fill
Book a demo and bring your filled template. On sample data we will show which rows reach a source record and how old that record is, so you can mark the same rows in yours.
The demo runs on sample data and takes 20 minutes.