ForHosting KIT · Finance & money

CTR calculator

Divide clicks by impressions to see how often people actually click: 50 clicks on 1000 impressions is a CTR of 5%, with 950 impressions that drew no click. Works for ads, search listings and emails alike. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Clicks
50
Impressions
1,000
You get
Ctr
5
Missed impressions
950

Click-through rate, or CTR, is the share of ad or link impressions that produce a click. Paid-search, display, email, and organic-listing teams treat it as the first proof that creative, query, and audience actually connect: traffic that never clicks is wasted spend or wasted rank. This CTR calculator takes two counts — clicks and impressions — and returns the rate as a percentage using the identity every ad network publishes: CTR equals clicks divided by impressions, times one hundred. The same happens when clicks exceed impressions, because a click cannot outnumber the times the creative was shown.

What click-through rate measures and how the percentage is formed

Click-through rate is the percentage of impressions that produce a click. An impression is one serving of an advertisement, a search result, an email, or a social snippet; a click is a subsequent selection of that serving. The identity every ad network and search console publishes is CTR equals clicks divided by impressions, then scaled to a percent.

Fifty clicks on one thousand impressions is five percent. One click on three impressions is thirty-three point three repeating percent, returned here rounded half-up to six decimal places so goldens stay byte-stable across runtimes. A zero click count is a legitimate outcome — the creative was shown and nobody selected it — and returns ctr of zero rather than an error.

A click count equal to impressions is also legitimate: every serving was selected and the rate is one hundred percent. What is not legitimate is a zero or negative impression total, because dividing by zero does not produce a rate, and a click count larger than impressions, because you cannot click more times than the creative was shown. This task does not ingest a raw ad-server log, does not apply viewability or invalid-traffic filters, and does not sample.

It prices and returns the textbook ratio on two counts you already have from the network, the console, or a weekly export.

Where a CTR calculator earns its keep

Agencies re-run the two counts per ad group and per device so a weekly deck can compare ctr across variants with one shared rounding rule. CTR divides clicks by impressions and says nothing about cost or on-site engagement. Email teams use the same identity on delivered-or-opened impressions depending on how their ESP defines the denominator; this task does not choose that definition for you — it computes the ratio on the two counts you supply.

Failed validation does not consume balance. Keep impressions strictly positive, keep the click count inside the impression total, pin the rounded percentage in tests, and you get a reproducible click-through rate for dashboards, LMS plugins, and edge workers without standing up an ads engine of your own.

Campaign and creative health checks

Turn a week's clicks and impressions into the CTR you can put next to each ad group in a paid-media review.

Query and listing comparison

Recompute ctr per query, locale, or device from two warehouse counts so every variant shares the same percentage and rounding.

What happens if impressions are zero?

Click-through rate is undefined when there are no impressions to divide by, and the failure is not billed.

Can the click count be larger than impressions?

No. clicks must be between zero and impressions inclusive.

Is this the same CTR as an ad network or search console?

Yes for the textbook identity: CTR is clicks over impressions as a percent. It does not apply viewability, invalid-traffic, or unique-query filters those products may add later.

How do I calculate click-through rate?

Divide the number of clicks by the number of impressions and multiply by one hundred. Fifty clicks on 1000 impressions gives a click-through rate of 5%.

What are the missed impressions in the result?

They are the impressions that did not turn into a click: impressions minus clicks. With 50 clicks on 1000 impressions, 950 servings went unclicked, so a weekly review sees both sides without a second formula.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/fin/ctr

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/fin/ctr \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"clicks":50,"impressions":1000}'
{
  "clicks": 50,
  "impressions": 1000
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "fin.ctr",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

When impressions are zero the ratio is undefined, so the task fails with invalid_input and is not billed.

What click-through rate measures and how the percentage is formed

The complement count missed_impressions is impressions minus clicks, so a weekly review can see how many servings did not convert into a click without a second formula.

Input contract, response shape, and error behaviour

Rates are rounded half-up to six decimal places; counts are returned as the finite numbers you sent. POST a JSON body with two required finite numbers. clicks is the click count in the reporting window; aliases click_count and click map to the same field so a warehouse column can keep its name. impressions is every serving in that same window; aliases imps, impression_count, and impression are accepted. Each field may arrive as a JSON number or as a numeric string. Missing fields, empty strings, and non-finite values fail with invalid_input naming the field. If clicks is negative the request fails. If clicks is greater than impressions the request fails because a click cannot outnumber the servings it is taken from. Those failures are not billed. On success the body echoes clicks and impressions, then reports ctr as a percentage, missed_impressions as the complement count, and a formula string restating the identity. Example: fifty clicks and one thousand impressions yield ctr five and missed_impressions nine hundred fifty. Pair the JSON with your own date grain if you need a weekly series; this task computes one window at a time and does not emit charts.

Where a CTR calculator earns its keep

Growth, paid-media, and search teams use a CTR calculator when a campaign, a query, a creative, or a locale is accused of failing to earn the click: they already have impression and click totals in a sheet and need the same percentage their ad network would print, without waiting on a UI export. Finance partners who allocate spend against creative quality drop clicks and impressions from the warehouse and pin ctr in a model that must not call a proprietary ads API. This is a different search and a different job from computing cost per click, cost per mille, or bounce rate: CPC and CPM divide spend by clicks or by a thousand impressions, while bounce rate divides single-page sessions by total sessions.

Spend-quality models

Pin click-through rate in a spend-allocation sheet without calling a proprietary ads API for a ratio you already have the inputs for.

How is click-through rate calculated?

Send finite numbers clicks and impressions. The API returns ctr = (clicks / impressions) × 100, plus missed_impressions as the complement count.

What does the CTR calculator cost?

The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.

Read the full KIT documentation →