These customer journey analytics examples follow a US supplier's requests through consultation, quote and payment. Rebuild stage conversion and elapsed time from individual rows, then see what changes when one pending request completes.
Customer journey analytics examples show where a consistent group of customers progresses, stops or waits between milestones. The strongest examples retain individual request IDs and dates, so stage conversion and elapsed time can be rebuilt from the same rows. They also show unfinished journeys instead of treating missing dates as fast service.
Mesa Fixture Supply is a hypothetical US supplier reviewing incoming small-business purchase requests. It wants to know whether the next improvement belongs in appointment scheduling, quoting or payment follow-up. This is a business process review; no marketing channel receives credit for the sale.
The example contains requests received on August 3, 2026, observed through September 2, 2026. Each row is one request, even if the same customer could place another request later. All quoted packages have a value of $1,200, excluding sales tax. The company collects the full amount at payment, with no refunds in the observation window.
The milestone columns below show elapsed calendar days after request receipt. A dash means the milestone had not occurred by the cutoff. It is missing, not zero.
| Request ID | Consultation day | Quote day | Payment day | Package value (USD) |
|---|---|---|---|---|
| J01 | 2 | 4 | 10 | 1,200 |
| J02 | 3 | 6 | 15 | 1,200 |
| J03 | 5 | 9 | — | 1,200 |
| J04 | 6 | — | — | 1,200 |
| J05 | 4 | 7 | 12 | 1,200 |
| J06 | 8 | 12 | 20 | 1,200 |
| J07 | 10 | — | — | 1,200 |
| J08 | — | — | — | 1,200 |
In the working export, retain actual timestamps as well as the request date, stage definitions and observation cutoff. Align time zones before taking day differences. For this example the milestone days are already prepared and checked as nonnegative numbers.
Do not join every contact at the customer to every request. Use the supplied request mapping, and report unmatched events for correction. The customer journey tools discussion addresses the separate choice of approach; this example works from a prepared export.
Place the table in A1:E9 in Excel, leaving missing milestone cells truly blank. The starting population is the count of request IDs. The other stage counts use numeric milestones:
=COUNTA(A2:A9)
=COUNT(B2:B9)
=COUNT(C2:C9)
=COUNT(D2:D9)
Microsoft distinguishes COUNT, which counts numeric entries, from COUNTA, which counts nonempty cells. That distinction matters: a text dash in a milestone column is not a date, while a text request ID is valid in the starting population.
| Stage | Requests reaching stage | Conversion from preceding stage | Conversion from start |
|---|---|---|---|
| Request received | 8 | — | 100.0% |
| Consultation | 7 | 7 / 8 = 87.5% | 87.5% |
| Quote | 5 | 5 / 7 = 71.4% | 62.5% |
| Payment | 4 | 4 / 5 = 80.0% | 50.0% |
Percentages are rounded to one decimal place. Calculate the quote conversion with =COUNT(C2:C9)/COUNT(B2:B9) and end-to-end conversion with =COUNT(D2:D9)/COUNTA(A2:A9). Protect zero denominators with an explicit unavailable result rather than displaying a perfect or zero conversion rate.
The stage counts must be nested: every paid request has a quote, and every quoted request has a consultation. Then the requests still at each stage reconcile to the starting cohort:
| Latest stage at cutoff | Requests | IDs |
|---|---|---|
| Received, no consultation | 1 | J08 |
| Consultation, no quote | 2 | J04, J07 |
| Quote, no payment | 1 | J03 |
| Paid | 4 | J01, J02, J05, J06 |
| Total | 8 | Every request once |
This bridge proves that no request vanished between summaries. It does not label pending requests permanently lost. Status and elapsed observation time are needed before making that judgment.
Add F for quote-to-payment days and G for realized receipts. Enter these formulas in F2 and G2 respectively, then fill down:
=IF(AND(ISNUMBER(C2),ISNUMBER(D2)),D2-C2,"")
=IF(ISNUMBER(D2),E2,0)
The completed records give this checkable duration table:
| Request ID | Payment day | Quote day | Quote-to-payment days | Receipts (USD) |
|---|---|---|---|---|
| J01 | 10 | 4 | 6 | 1,200 |
| J02 | 15 | 6 | 9 | 1,200 |
| J05 | 12 | 7 | 5 | 1,200 |
| J06 | 20 | 12 | 8 | 1,200 |
| Total | 57 | 29 | 28 | 4,800 |
Mean request-to-payment time is 57 / 4 = 14.25 days. The sorted payment days are 10, 12, 15 and 20, so the median is (12 + 15) / 2 = 13.5 days. Quote-to-payment time averages 28 / 4 = 7 days, and its median is also (6 + 8) / 2 = 7 days.
=AVERAGE(D2:D9)
=MEDIAN(D2:D9)
=AVERAGE(F2:F9)
=MEDIAN(F2:F9)
=SUM(G2:G9)
Microsoft's MEDIAN documentation confirms that an even-sized set uses the two middle values and that zeros in referenced cells count while empty cells do not. Covirage is not affiliated with Microsoft.
Keep pending age beside completed duration. At elapsed day 30, J03 has waited 30 - 9 = 21 days since its quote; J04 and J07 have waited 30 - 6 = 24 and 30 - 10 = 20 days since consultation. J08 has waited 30 days since receipt. Those records cannot enter completed duration, but they belong in the operational follow-up.
Keep every input above unchanged except J03's payment day. In this variation the previously missing event is recorded as day 18. The package value and earlier milestones stay the same; this is an alternative scenario, not another cohort to add to the first.
| Measure | Original | J03 paid on day 18 | Calculation after change |
|---|---|---|---|
| Paid requests | 4 | 5 | Original 4 + J03 |
| Quote-to-payment conversion | 80.0% | 100.0% | 5 / 5 |
| Request-to-payment conversion | 50.0% | 62.5% | 5 / 8 |
| Receipts (USD) | 4,800 | 6,000 | 5 × 1,200 |
| Mean request-to-payment days | 14.25 | 15.00 | (57 + 18) / 5 |
| Median request-to-payment days | 13.5 | 15.0 | Middle of 10, 12, 15, 18, 20 |
Conversion improves while completed time becomes longer. That is consistent: the additional completion was slower than the original completed average. A team judging performance only by speed could punish the recovery of a delayed request.
The receipts increase by $1,200, but receipts are not contribution or profit. No cost assumptions have been supplied. Likewise, recording the payment does not prove that a particular follow-up caused it.
Sales operations owns the request register and checks milestone completeness. The consultation team reviews J08, the quoting team reviews J04 and J07, and billing reviews J03 in the original scenario. Ask each owner whether the next event is pending, canceled or missing from the export before assigning an intervention.
Use customer journey segmentation when comparing groups with different routes or eligibility rules. For purchases across repeat visits, retail customer analytics asks a different question. When the delay includes repeated support contacts, the customer care analytics workflow helps inspect that service demand.
Bring a request or customer journey export with stable IDs, dated milestones and outcome amounts; Covirage maps the columns, and its tools compute and check the comparisons. The external AI model explains the results with every figure traced to its rows. Create a free Covirage account and bring a sample of your own data.
See self-service analytics for the supporting workflow.
A company can follow purchase requests from initial inquiry to consultation, quote and payment. The same request IDs connect the stages, allowing the team to calculate conversion and elapsed time. A useful example retains pending requests so the funnel does not show only successful buyers.
Journey analysis measures progress and time between business milestones. Marketing attribution allocates credit for outcomes to recorded interactions. A slow quote-to-payment stage can exist under any attribution rule; examining that delay does not require assigning the sale to a campaign.
Do not treat an unfinished journey as completing in zero days. Calculate completed duration only where both milestone dates exist, disclose that completed subset, and report the age of pending journeys separately. Otherwise a fast completion average can hide a large unresolved backlog.
Assign the overall measure to the business process owner and individual delays to the team responsible for the next milestone. Sales operations might maintain the request register, while sales, billing and customer care validate their respective events and agree what counts as completion.