Blog · AI and self-service analytics
Use customer insights AI to explain verified changes in revenue, repeat buying and product breadth. Build the measures from your sales export, reconcile the customer bridge and separate observations from explanations that still need evidence.
Customer insights AI is useful when it explains checked changes in customer revenue, repeat orders and product breadth from your own sales file. Define the question and calculate those measures before asking for an interpretation. A fluent explanation cannot repair a customer total that does not match the sales ledger.
For a sales manager, a useful question is: "Why did customer revenue fall between two comparable quarters, and which account changes deserve review?" The file can establish where the decline occurred and what buying patterns changed. Establishing the business cause takes evidence beyond the arithmetic.
Choose complete periods with the same reporting rules. This example compares the second and third quarters of a US industrial distributor's fiscal year, with all amounts in USD. It uses posted net revenue, including credits, and treats a purchase as an order containing a qualifying purchase line.
Keep stable customer IDs even when display names change. The working sales table, named Sales, needs these fields:
| Column | Required meaning |
|---|---|
| Customer ID | Stable account identifier |
| Period | Prior or Current under the agreed calendar |
| Order ID | Identifier shared by every line on one order |
| Family | Consistent product-family label |
| Net revenue | Posted revenue after discounts and credits, in USD |
| Purchase | 1 for a qualifying purchase line; 0 for a credit-only line |
Exclude blank order IDs and family labels from the qualifying purchase population before counting. A credit still changes revenue even if it is excluded from purchase counts. Record the export date and retain the source rows so an account owner can inspect an unexpected movement.
Apply your organization's data-sharing requirements before bringing customer files to any service. The customer-data upload checklist covers the questions to settle first.
Build a customer summary with the union of customer IDs from both periods. Omitting accounts with no current sales would remove the very losses you want to understand.
In the summary, column A holds Customer ID. Columns B and C hold prior and current revenue. With the ID in A2, current revenue is:
=SUMIFS(Sales[Net revenue],Sales[Customer ID],$A2,Sales[Period],"Current")
Replace "Current" with "Prior" for the earlier column. Microsoft documents SUMIFS as summing values that meet multiple criteria, which here are customer and period.
Do not count sales lines as orders. In Excel 365, count distinct qualifying current orders with:
=IF(COUNTIFS(Sales[Customer ID],$A2,Sales[Period],"Current",Sales[Purchase],1)=0,0,ROWS(UNIQUE(FILTER(Sales[Order ID],(Sales[Customer ID]=$A2)*(Sales[Period]="Current")*(Sales[Purchase]=1)))))
The guard uses COUNTIFS to test matching rows. FILTER selects those rows, and UNIQUE returns their distinct identifiers. For product breadth, use the same formula with Sales[Family] replacing Sales[Order ID]; it counts families purchased, regardless of the number of lines.
Covirage is not affiliated with Microsoft.
Here is the resulting summary. Counts are whole numbers; percentages below are rounded to one decimal place.
| Customer | Prior revenue (USD) | Current revenue (USD) | Prior orders | Current orders | Prior families | Current families |
|---|---|---|---|---|---|---|
| Aster | 10,000 | 12,000 | 4 | 5 | 2 | 3 |
| Birch | 8,000 | 6,000 | 4 | 3 | 3 | 2 |
| Cedar | 6,000 | 0 | 2 | 0 | 2 | 0 |
| Delta | 0 | 4,000 | 0 | 2 | 0 | 1 |
| Total | 24,000 | 22,000 | 10 | 10 |
With this table in A1:G5, customer change in H2 is =C2-B2, filled down. The bridge is:
| Movement | Calculation | Revenue change (USD) |
|---|---|---|
| Aster expansion | 12,000 - 10,000 | 2,000 |
| Birch contraction | 6,000 - 8,000 | -2,000 |
| Cedar absent in current period | 0 - 6,000 | -6,000 |
| Delta new in current period | 4,000 - 0 | 4,000 |
| Net movement | 2,000 - 2,000 - 6,000 + 4,000 | -2,000 |
The proof is starting revenue plus the movements: $24,000 minus $2,000 equals $22,000. In Excel:
=SUM(B2:B5)+SUM(H2:H5)-SUM(C2:C5)
The result must be zero. Separately, tie each period's revenue to the agreed sales-export control total; an internally consistent table can still omit source rows. Total revenue change is =SUM(H2:H5)/SUM(B2:B5), or -8.3%.
All active customers placed multiple orders in each period. Prior repeat-buyer rate is three qualifying repeat buyers divided by three active customers, or 100.0%; current rate is also three divided by three, or 100.0%. In the summary layout, current repeat-buyer rate is:
=COUNTIFS(E2:E5,">=2")/COUNTIFS(E2:E5,">0")
Yet only Aster and Birch bought in both periods. Customer retention is two divided by the three prior buyers, or 66.7%. Retaining frequent ordering among current buyers did not prevent the revenue decline.
The existing-customer cohort generated $18,000 in the current quarter: $12,000 plus $6,000 plus zero. Against its prior $24,000, that is 75.0% revenue retention. For a recurring-contract business, use the separately defined net revenue retention method.
Aster's family count increased, while Birch's decreased. That supports account review, but it does not prove cross-selling caused Aster's growth or that dissatisfaction caused Birch's decline. Ask the account owners to check order timing, product availability and contract scope. If the next step is organizing accounts into explicit groups, use AI customer segmentation.
Bring a sales export with customer IDs, periods, order IDs, product families and net revenue; the AI analytics overview explains the broader approach. Covirage maps the columns, its tools compute and check the customer comparisons, and the external AI model explains the results with every figure traced to its rows. Create a free Covirage account, which takes about a minute, then set up your business and bring a sample of your own data.
See sales insights for the supporting business use case.
Start with customer IDs, transaction dates, order IDs, product families and net revenue. Identify purchases separately from credits so returns affect revenue without creating extra purchase orders. Add only the fields needed for the question, and use comparable periods from the same reporting scope.
A sales export can show that a customer had no purchases during the selected period. It usually cannot establish the reason. Contract changes, service issues, competing suppliers and seasonal ordering require separate evidence. Treat possible explanations as questions for an account owner, with the supporting rows attached.
No. A repeat buyer places multiple qualifying orders within a defined window. A retained customer buys in both the earlier and later windows. A newly acquired customer can place multiple orders immediately and count as a repeat buyer without belonging to the earlier customer cohort.
Exclude new customers when measuring revenue retained from an earlier customer cohort. First identify customers active in the starting period, then compare that same cohort's revenue across periods. Label the result carefully because a sales-export comparison is not automatically a recurring-contract net revenue retention measure.