# A verified return, and why open rates lie

> An opened email is not a visit. At Kanz a verified return is a scan at your counter, and the function that records that proof refuses to run without the visit ID.

- Source: https://usekanz.com/en/blog/verified-return
- Language: en
- Other languages: [ar](https://usekanz.com/ar/blog/awda-muakkada), [fr](https://usekanz.com/blog/retour-verifie)
- Format: Markdown, generated from the same source as the page.

- Published: 2026-09-09
- Author: Kanz
- Topics: Measurement, Loyalty, Product
- Reading time: 4 min

A verified return is a visit somebody scanned at your counter. Not an opened email, not a
clicked link, not an estimate. The person was standing in front of you, they showed their
card, they bought something.

It needs a word of its own because almost every marketing metric counts something else and
calls it a win.

## What an open rate actually measures

It measures that a piece of software loaded an image, or that a preview appeared in a list.
It does not measure reading, still less intent, and certainly not a visit. A click-through
rate is one notch better and is still a bet: the customer opened a page, they bought
nothing.

These figures are not useless, they are badly named. They measure how a message performed,
not how a business performed. The trouble starts when a dashboard puts them big in the
middle of the screen, because a number shown large becomes the number you try to raise, and
you can raise an open rate all year without one extra person walking in.

> A scan at the counter is a fact. An email open is a guess. Both can be counted, but only
> one of them pays your rent.

## How the rule is held in the code

A definition that depends on the discipline of whoever writes the code does not survive six
months. This one is structural.

Kanz keeps a two-level record of proof. The upper level means a real scan closed the loop,
and the function that writes proof at that level **requires the visit ID**: there is
deliberately no way to call it without one. Its twin, the function that records a probable
sighting, cannot produce the upper level, because the level is written into its body.

Put another way, the only route to a verified return in the counters is for a visit to
exist. There is no alternative code path, no setting, no emergency call to flatter a
number.

One nuance matters, and it is written in the same place: upper-level proof does not claim
the **amount** spent is exact. That amount is often the middle of a price band. What it
asserts is that the return happened. Conflating the two would be precisely the kind of
vagueness this page is trying to remove.

## The same discipline on what you pay

The number of active customers is what decides your plan. An active customer is someone who
has been scanned at least once in the last 90 days.

That number is counted on the visits table, counting distinct customers, and not on a "last
visit" column copied onto the customer record. The column would be quicker to read and it
can drift; the visits table is the source. The reasoning is simple: this number is a
billing input, so the figure on your invoice and the figure on your dashboard must not be
able to contradict each other.

It is the same principle as the proof, applied to money: the measurement always reads the
real event, never the summary.

## Why the trial is counted in returns

A Kanz trial ends at whichever comes first: **30 days**, or **10 verified returns**.

The second counter exists because a trial that ends because the product worked ten times
tells a true story, while a trial that ends because a month went by tells you nothing at
all. And when the two land together, it is the number of returns that gets announced,
because that is the one that means something to the person reading it.

## What you should look at every month

Three numbers, and none of them is an open rate.

**How many active customers.** That is your real base, not the number of cards handed out.
A card handed out and never scanned is a piece of card in a drawer.

**How many of them have fallen out of their rhythm.** That is the month's workload, and it
is a number that should stay small. If it grows every month, the problem is not loyalty, it
sits further upstream.

**How many came back after being flagged.** That is the only figure that says whether any
of this machinery is worth having, and it is a count of visits, not a percentage of opens.

What puts somebody out of their rhythm is set out
[in this article](/en/blog/customer-who-stopped-coming), and
[what the whole thing costs](/en/blog/digital-loyalty-card-cost) in another.

## Create an account

The trial runs 30 days and asks for no card.

- [Sign up](https://usekanz.com/signup)
- [Merchant panel](https://usekanz.com/panel)
