The Support ticket reports section gives you seven tabs that look at support work from different angles — what got closed, who did what and how fast, how the team's response and resolution times are distributed across the period, a chronological feed of every change an admin made, and how much support each customer consumes against their recurring revenue.
To open the reports, go to Administration → Other reports → Support ticket reports. Only admins with reporting permissions on the ticket module see the link.

The page opens on the Closed tickets tab by default. Click any of the other six tabs across the top to switch view; each tab has its own filter row and its own output.

The Closed tickets tab lists tickets that are currently in a closed status and lets you grade the agent who handled each one. It's the place to review what was actually resolved in a given period — by creation date, by last update, or (the default) by the moment the ticket was finally closed.
The list is built fresh every time you click Show — there is no cached snapshot. Reopened tickets, trashed tickets, and tickets that have been moved back to a non-closed status will never appear here, even if they were briefly closed during the selected period.

The filter row at the top of the tab controls which tickets are listed and how they are matched against the period. Click Show to apply.
A row is included only when all of these are true for the ticket as it stands right now:
closed set.In Resolve mode, the report then walks the ticket's history to find the most recent close event that falls inside the selected period, and only keeps the ticket if no later close event exists after the period ends. As a result:
In Create and Update modes, each ticket appears at most once because the report compares the Period to a single timestamp stored directly on the ticket.
Custom statuses must be flagged as Closed in Config → Helpdesk → Miscellaneous ticket configuration (Ticket statuses) for the Resolve mode to pick them up. A ticket sitting in a custom status that lacks this flag will never appear in Resolve mode, even though it is technically closed.
Each row represents one ticket. The default sort is by the report's internal order; click any column header to sort by it.

| Column | Description |
|---|---|
| ID | Ticket ID. Click to open the ticket. |
| Created date | The date the ticket was created. |
| Resolved date / Updated date / Created date | The date used to match the ticket against the Period filter. The column header changes with the Date of filter: Resolved date in Resolve mode (the timestamp of the latest closing event inside the period), Updated date in Update mode (the ticket's last-updated timestamp), and Created date in Create mode (the ticket's creation date). |
| Assigned to | The admin the ticket is currently assigned to. Click the name to open the closed-tickets list filtered by that admin. |
| Subject | The ticket's current subject. |
| Comment | A free-form note you can enter directly in this report. Stored only inside the report, not on the ticket itself, so it does not appear on the ticket page. |
| Customer feedback | A 0 / 1 flag set in this report by admins. Available when the Ticket Feedback add-on is installed. |
| Content | A 0 / 1 flag used to rate the quality of what the agent wrote in the ticket. |
| Timing | A 0 / 1 flag used to rate how quickly the agent responded. |
| Feedback | A 0 / 1 flag used to rate the relevance of the agent's responses to the customer's request. |
| Grade | The sum of Customer feedback, Content, Timing, and Feedback for the row. Calculated only when at least one of those flags is set. |
Each grading flag uses 0 (not adequate) or 1 (adequate). Admins click the value in the cell to toggle it. The values are saved against the report row, not the ticket — they are only visible from this tab.
The report reads the ticket's last-updated timestamp directly and shows it in the Updated date column. There is no history lookup — only the most recent edit is considered.
The report reads the ticket's creation date directly and shows it in the Created date column (the third column in the table; the standalone Created date column on the left always carries the same value).
For each row, the report adds together the 0/1 values of Customer feedback, Content, Timing, and Feedback. Rows where all four flags are unset (blank) have no Grade value.
A footer row at the bottom of the table shows the average of Content, Timing, Feedback and Grade across the rows currently displayed by the filter. Rows that have no rating set are excluded from both the count and the sum, so the average reflects only graded tickets.
Reviewing this month's work. Leave Period on the default (current month), set Date of = Resolve, leave Assign to = All, and click Show. The table lists every ticket whose latest closing happened this month, sorted by ID. Use the grading columns to score each agent's handling and refer to the Average footer for the team-wide rating.
Comparing two agents for a quarter. Set Period to the quarter, Date of = Resolve, and use Assign to to filter to one agent. Note the Average row, then repeat for the second agent and compare.
The SLA report tab shows, for each agent and each week of the selected period, how many of the tickets created in that week got their first qualifying reply within different time slots. It answers a single question: how fast did each agent respond, week by week, against a chosen target time?
The report is built live every time you click the refresh button — there is no precomputed snapshot.

The filter row sits above the table. The order on screen is Customer/Lead, Period, Time frame, followed by the refresh and export buttons.
Click the refresh button to apply the filters. Click the export button next to it to download the same numbers as a CSV file with the columns agent_id, agent_name, period, time_interval, and amount.
A ticket is counted in the SLA report only when all of these are true:
If the ticket's current assignee has been deleted from Splynx, the ticket is also skipped. Tickets that never received a qualifying admin reply are dropped silently — they do not show up in any bucket, not even in over 3T hours.
The Period is sliced into ISO calendar weeks (Monday-based):
Each column is labelled with its start and end dates in the format dd.mm - dd.mm. A ticket goes into the column whose date range contains its creation timestamp.
The leftmost two columns of the table are Agent and Time intervals. Every agent that has at least one matching ticket gets a four-row block, and the All block at the top aggregates every agent below.
The four rows in each block correspond to the four response-time buckets. Their labels use the Time frame value — at the default (3 hours) the rows read:
If you change Time frame to 6 hours, the rows become 1-6 hours, 6-12 hours, 12-18 hours, and over 18 hours; the same pattern applies to the other values.
The agent's name is shown once and spans the four bucket rows. A Total column appears at the end of each week and also spans the four rows — it carries one number per agent per week. The values in the All block equal the column-wise sum of every agent block beneath it.
For each eligible ticket, the report looks for the first reply in the ticket's history that meets all of these conditions:
The first reply that matches is the one the report uses. The first response time (FRT) is the difference between that reply's timestamp and the ticket's creation timestamp.
Important consequences:
The four buckets are filled by simple comparisons against the Time frame value T:
| Bucket label at T = 3 h | Bucket label at T = 6 h | Condition on the response time |
|---|---|---|
| 1-3 hours | 1-6 hours | less than T hours |
| 3-6 hours | 6-12 hours | from T up to 2T hours |
| 6-9 hours | 12-18 hours | from 2T up to 3T hours |
| over 9 hours | over 18 hours | 3T hours or more |
Each ticket lands in exactly one bucket, counted once in the week column of its creation date. The "1-" prefix in the first row is cosmetic — a reply made in seconds also falls into that bucket.
For each ticket the report adds 1 to the agent's bucket cell and to the matching All bucket cell in the same week. The per-agent Total column is the sum of the agent's four buckets for the week; the All Total column is the sum across every agent for that week. The All row block and the sum of every agent block below it are equal by construction.
Weekly target of 3 hours. Leave Time frame on 3, select last month as the Period, leave Customer/Lead empty, and click refresh. Each agent shows four rows per week: how many tickets they answered in under 3 hours, in 3-6 hours, in 6-9 hours, and over 9 hours. The All block at the top of the table is the same picture for the whole team.
One customer's tickets. Set Customer/Lead to that customer and run the report — the buckets now only count tickets opened by that customer.
The Agent performance tab summarises, for every admin who has ever worked on a ticket, how much work they did inside the selected period — how many tickets they were given, how many they resolved or reopened, how many replies they wrote, and how quickly they responded on average.
Each cell is built from the ticket audit history (every change to a ticket and who made it) and from the ticket replies themselves. Press Show to run the report. While it builds, a progress bar streams updates; once the result is ready it is cached for one hour, so re-running with the same Period, Type, and Group returns instantly. Changing any filter forces a fresh calculation.

The list of rows is every admin who shows up in the ticket audit history as either the assignee or the actor, and who still has ticket access in Splynx. An admin who never touched a ticket does not appear at all. The list is not filtered by the Period — an admin who was active in earlier months still shows in the table with zeros across every column.
If an admin record has been deleted from Splynx, their row is shown as Deleted agent id#X, but only when they have at least one non-zero value in the chosen Period. If every cell would be zero, the deleted admin's row is hidden.
| Column | What it counts |
|---|---|
| Agent | The admin's name (or Deleted agent id#X for removed accounts that still have activity in the period). |
| Tickets assigned | Unique tickets that became this admin's during the period, either by being created with them as the assignee or by being reassigned from nobody (unassigned) to them. Agent-to-agent reassignments are not counted here — see Tickets reassigned. |
| Tickets resolved | The number of close events on tickets where this admin was the assignee at the moment of closing. The same ticket counted twice if it was closed, reopened, and closed again during the period with this admin as the assignee both times. |
| Tickets reopened | Unique tickets that moved from a Closed status back to an Open or Unresolved status while this admin was the assignee. Counted once per ticket. |
| Tickets reassigned | Tickets the admin personally gave away to another admin during the period. Tickets taken from this admin by someone else do not count here — only the admin who performed the reassignment is credited. |
| FCR % | First Contact Resolution percentage — the share of this admin's tickets that were closed after exactly one customer message. See How values are calculated. When no tickets match, the cell shows 0.00%. |
| Private notes | The number of internal notes the admin wrote during the period. Counted per message, not per ticket. |
| Responses | The number of public replies the admin wrote to customers during the period. Counted per message, not per ticket — five replies on the same ticket add 5 to this column. |
| Avg first response time | The average time between ticket creation and this admin's first qualifying reply, across every ticket the admin replied to. Format: HH:MM:SS. |
| Avg response time | The average time the admin took to answer a customer message during the period, across every customer / admin reply pair on every ticket the admin touched. Format: HH:MM:SS. |
| Avg resolution time | The average time from ticket creation (or the last reopen) to closing, across every ticket the admin resolved during the period. Format: Dd Hh Mm. |

Splynx classifies ticket statuses as Open, Unresolved, or Closed in Config → Helpdesk → Miscellaneous ticket configuration (Ticket statuses). The same mark drives this report — a status flagged as Closed counts toward Tickets resolved; Open or Unresolved statuses count toward Tickets reopened when a ticket moves back to one of them.
A ticket is counted when either of these happens in the Period:
The same ticket is counted only once per admin, even if both conditions match.
The report counts every audit-history entry where a ticket transitioned from an Open or Unresolved status to a Closed status while this admin was the assignee. The displayed number is the count of those events — so a ticket closed twice in the period contributes 2. The Totals row, however, sums unique tickets, which is why the Totals value can be smaller than the literal sum of the column.
The report counts every audit-history entry where a ticket moved from a Closed status back to an Open or Unresolved status while this admin was the assignee, then deduplicates by ticket. Each ticket is counted only once even if it was reopened repeatedly.
The report counts audit-history entries where the assignee changed from this admin to a different admin and the change was performed by this admin. So the column reads as "how many of my tickets I gave away myself" — not "how many were taken from me". If a colleague reassigned this admin's ticket, the event is credited to the colleague.
For the Period:
FCR is per-admin only — there is no totals value.
Both columns are counted from ticket replies written by the admin during the Period:
Auto-generated system messages are excluded. Each message contributes 1, so multiple replies on the same ticket count multiple times.
For each ticket created during the Period, the report finds the earliest public, non-system reply written by this specific admin. The time between ticket creation and that reply is the admin's first response time for that ticket. The displayed value is the arithmetic mean across every ticket where the admin has at least one such reply.
The metric is anchored to ticket creation, not to when the ticket was assigned to the admin. An admin who joined a long-running ticket late will inherit a long first-response time even if another admin replied earlier.
For every ticket the admin touched, the report walks the public replies in time order and pairs each customer message with the next reply from this admin. The time between the two is the admin's response time for that pair. The displayed value is the arithmetic mean across every measured pair. Both ends of each pair must lie inside the Period.
Subsequent customer messages received before the admin replies do not start a new clock — the clock only resets after the admin answers.
For each ticket the admin resolved during the Period, the report computes the time from the start point to the closing event:
The displayed value is the arithmetic mean across every resolution event the admin handled. There is no business-hours adjustment — nights, weekends, holidays, and "waiting for customer" time all count.
All time averages use wall-clock time and have no business-hours calendar. Tickets that wait overnight for a customer reply still accumulate time toward Avg response time and Avg resolution time.
A Totals row at the bottom of the table summarises the counted columns. The average columns and FCR % are left blank in this row.
| Total | What it sums |
|---|---|
| Tickets assigned | The unique-ticket counts per admin |
| Tickets resolved | The unique-ticket counts per admin (not the event count shown in the column above, which is why the total can be smaller than the literal column sum) |
| Tickets reopened | The unique-ticket counts per admin |
| Tickets reassigned | The reassignment event counts per admin |
| Private notes | The message counts per admin |
| Responses | The message counts per admin |
Month-end agent review. Leave the filters on defaults (current month, Type Any, Group Any) and click Show. The table lists every admin with at least one ticket touch in their history, with this month's tallies on each row. Compare Tickets resolved against Responses to spot agents who answered a lot but closed few, or against Avg first response time to spot slow first contacts.
Group-specific report. Set Group to the team you want to review — only tickets in that group feed every column. Useful for evaluating tier-1 versus tier-2 work separately.
The Performance distribution report tab shows how response and resolution times are spread across the selected period — not just an average, but how many tickets sat in each speed bracket. It is built from three distribution bar charts, a four-line summary, and two daily trend line charts.
Every chart is recomputed from scratch each time you click Show — there is no caching on this tab.

The filter row sits above the charts. The order on screen is Threshold, Groups, Administrators, Period, followed by the Show button.

The Groups filter narrows the agent list, not the ticket list. A ticket of any type and in any group can contribute to the charts as long as one of the selected agents replied to it or resolved it.
The top of the tab is a row of three horizontal bar charts that show the same data shape: a histogram of how many tickets fell into each speed bracket during the period. The number on the right of each row is the absolute count of tickets in that bracket; the blue bar shows that count as a share of the total.
Buckets by the time from ticket creation to the agent's first qualifying public reply:
Each bracket is left-inclusive and right-exclusive — a reply made at exactly 15 minutes lands in 15-30 mins, not in < 15 mins. Only public replies from one of the selected admins count; private notes and system messages are ignored, and the ticket itself has to have been created inside the Period.
Same ten buckets as First response time, but the source is customer-to-agent reply latency instead of first-response time. For every ticket, the report walks the public messages in time order and pairs each customer message with the next reply from one of the selected admins. The time between the two ends up in one bracket. A ticket with multiple customer-agent exchanges contributes multiple measurements.
A different bucket scale that reflects the slower pace of resolution:
Each resolution measurement is the time from the ticket's creation date (or its last reopen before the resolution, whichever is later) to the moment the ticket was closed. Tickets closed by an admin outside the selected agent set are not counted.

To the right of the top section sits a four-line summary that uses only the Avg response time measurements (customer-to-agent reply pairs):
The summary lets you check, at a glance, what fraction of customer messages got an answer within an agreed target. Lower the Threshold to a more demanding target (for example, 4 hour(s)) and the Number of responses on time shrinks; raise it and the share grows.
Below the top section are two daily trend line charts. The x-axis is every calendar day in the Period (one tick per day, even days with no activity).
A combined chart with two series:
The two lines share the same x-axis but use different timestamps to bucket each day:
So peaks on the two lines can fall on different days even when they reflect the same ticket. A reply written today on a ticket that was opened last week shifts the blue line today but the red line on the day the ticket was created.

A separate chart with a green line. Each measurement is the time from ticket creation (or the last reopen before resolution) to the moment the ticket was closed, bucketed by the resolution date.

Despite the chart titles using the word Avg, the daily value plotted on each trend line is the sum of the response or resolution times that fell on that day — not the arithmetic mean. A single very slow case on a quiet day can produce a tall spike that looks like a bad average.
Example: three first-response measurements of 2 h, 3 h, and 1 h on the same day produce a data point of 6 h, not 2 h. A single resolution measurement of 1600 h shows the day at 1600 h even if it represents one ticket that finally closed after sitting open for months.
For each ticket created in the Period, the report finds the earliest public reply written by any of the selected admins. The time between the ticket's creation and that reply is the first-response measurement for the ticket. A ticket whose first qualifying reply came from an admin who is filtered out does not contribute. There is no business-hours adjustment — wall-clock time runs through nights, weekends, and holidays.
The histogram counts how many measurements fall into each bracket.
For each ticket touched by one of the selected admins, the report walks the public messages in chronological order. The first customer message opens a "pending pair"; the first reply from one of the selected admins closes it and emits a customer-agent latency measurement. Other admins' replies are skipped — they do not close a pending pair, and they do not start one. Both timestamps in a pair must lie inside the Period.
The histogram counts every measurement, not unique tickets — a ticket with five customer-agent exchanges contributes five measurements.
For each ticket that was resolved or moved to a Closed status during the Period by one of the selected admins:
The end time is the resolution event itself. The histogram counts each measurement once.
For each day in the Period, the report sums the relevant measurements that fall on that day:
| Series | Source measurements | Day bucket uses |
|---|---|---|
| Avg first response time (red) | First-response times | Ticket creation date |
| Avg response time (blue) | Customer-agent reply pairs | Agent reply date |
| Avg resolution time (green) | Resolution times | Resolution date |
Days with no measurements are plotted as gaps (the line skips over them). Values are shown as Xh Ymin on hover.
SLA-style check. Set Threshold to your service-level target (for example, 4 hour(s)), leave the rest on defaults, and click Show. The summary block tells you what share of customer messages got an answer in time.
One agent's workload shape. Pick a single admin in Administrators, leave the Period on the current month, and click Show. The three top charts show how the admin's first responses, customer-agent latencies, and resolution times are distributed across the buckets. The trend lines show the workload day by day.
The Ticket lifecycle tab answers one question across every ticket that was resolved during the period: how long did each ticket stay alive, and how does that time break down by Type, Source, Priority, or Group?
The chart is built fresh every time you click Show — there is no caching. The report ignores agents entirely; any ticket that was resolved or moved into a Closed status during the Period can show up, no matter who handled it.

There is no agent filter and no per-ticket Type or Group filter — the lifecycle tab always considers every ticket resolved in the Period.
A ticket is included when, during the Period, either of the following happens:
If the ticket is reopened later, the most recent resolution event in the period is what the chart uses — only one event per ticket survives, so a ticket that bounced between open and closed several times during the period contributes a single lifetime, not several.
Tickets that have been deleted from Splynx are dropped silently.
The chart is a vertical list of blocks. Each block represents one bucket of the chosen Resolved ticket split by dimension:
| Split mode | One block per |
|---|---|
| Type | Ticket Type (from Config → Helpdesk → Miscellaneous ticket configuration (Ticket types)) |
| Source | The source attached to the ticket — for example Email, Portal, API. Tickets without a source are grouped under unknown. |
| Priority | Ticket priority — Low, Medium, High, Urgent. |
| Group | Ticket Group (from Config → Helpdesk → Miscellaneous ticket configuration (Ticket groups)). Tickets that are not assigned to any group appear in a block labelled Any. |
Each block has a headline duration at the top and a stack of horizontal bars beneath it.
The sub-bars are an internal breakdown of the block:
The Show filter changes what the headline number and each bar mean. The underlying per-ticket measurements stay the same.
In Average time mode the headline number is the bucket-wide mean per ticket. The bars below it show the mean for each sub-bucket — they can add up to a different total than the headline shows.
This is by design: the headline is the mean across every ticket in the block, while the bars are the means per sub-bucket. They only match exactly when every sub-bucket has the same number of tickets.
The width of a bar inside a block is proportional — not absolute time. How it is scaled depends on the split mode:
| Split mode | Bars are scaled against |
|---|---|
| Type, Source, Priority | The total time of their own block |
| Group | The global total across every block (so bars are directly comparable between blocks) |
What this means in practice:
For every resolved ticket the report computes a duration in seconds:
The result is wall-clock time. There is no business-hours adjustment, no holiday calendar, and no pause for "waiting for customer" states — nights, weekends, and holidays all count.
If a ticket is missing a valid creation or resolution timestamp (a malformed audit row), it is skipped.
For each block:
For each block:
Run the report for May 2026 with Resolved ticket split by = Type and Show = Total time:
Switch Show to Average time to see the mean ticket lifetime per Type and per Type/Group instead of the sums. Switch Resolved ticket split by to Group and the chart redraws — one block per Group, one bar each, all scaled against the global total so the blocks are directly comparable.
The Activity per admin tab is a chronological feed of individual ticket events — replies, private notes, and metadata changes — written by the chosen admin during the period. Unlike every other tab, this one is not an aggregated report: there are no charts, no totals, no averages. Each card on the feed is one literal entry from a ticket.
Use it to see exactly what an admin did across all tickets in a date range, in the order it happened.

The filters apply on change — pick a value and the feed reloads immediately. You can also use the refresh icon. There is no separate apply button.
Each card represents one event on a ticket. The card has:
Splynx generates Ticket changed events automatically whenever a ticket's status, assignee, group, type, or priority is edited. The author is the admin who performed the change. Customer-side events such as replies from the Customer Portal appear too when Admin is set to All.
The feed loads events in batches as you scroll. Each batch brings in up to 35 cards. When you near the bottom of the page, the next batch is fetched automatically. The feed stops loading when no more events match the filters.
Changing Period or Admin resets the feed and starts loading from the most recent event again.
Cards are listed newest first, by the order Splynx stored each event internally. In practice this matches the time the event happened, but a backdated event would not be re-sorted to its date position — it stays where it was inserted.
To audit one admin's work for the previous month:
Switch Admin back to All to see customer replies on the same tickets interleaved with the admin's events.
The Cost of support tab estimates how much support work each customer consumed during the period and what that work costs per ticket message against the customer's monthly recurring revenue. Use it to spot customers whose support load is large relative to the revenue they bring in.
The report runs as a background task — when you click Show, the request returns immediately and the table fills in once the worker finishes. Closing the tab while it's still running cancels the task.

A customer is included only if, during the Period, at least one of the following happened on their tickets:
Customers whose only ticket events in the period are metadata changes (status updates, reassignments between admins, priority edits, and so on) do not appear — there must be at least one message event or one new-ticket event.
If a row shows Deleted customer, id:<n> in the Name column, it means the ticket history still references a customer whose record has since been removed from Splynx.
The table has thirteen columns in total. Ten are shown by default; three more — Login, Cost per incoming message, and Cost per outgoing message — are hidden and can be turned on with the show/hide columns button above the table.
| Column | Default | What it shows |
|---|---|---|
| Customer ID | shown | The customer's ID. Click to open the customer's profile. |
| Name | shown | The customer's name. Deleted customer, id:<n> if the record no longer exists. |
| Login | hidden | The customer's login. Deleted customer, id:<n> if the record no longer exists. |
| New tickets for period | shown | The number of tickets attributed to this customer for the first time during the period — either by being created with them as the customer, or by being reassigned onto them from another customer. See How values are calculated. |
| Total tickets with activity | shown | The number of distinct tickets on which any message was written during the period (reply, private note, or first message). A ticket whose only event in the period is a metadata change is not counted. |
| Messages (in) | shown | The number of public messages the customer wrote during the period. |
| Messages (out) | shown | The number of public messages sent on the ticket by an admin, an API user, or by Splynx itself during the period. |
| Notes | shown | The number of private notes written on the customer's tickets during the period. The author can be anyone — the field counts every note regardless of who wrote it. |
| Total actions (in + out + notes) | shown | The simple sum of Messages (in), Messages (out), and Notes. |
| Monthly recurring revenue | shown | The customer's average MRR over the days in the period for which Splynx has an MRR snapshot. Formatted in the system currency. An asterisk (*) after the value means the most recent snapshot is older than 2 days — see How values are calculated. |
| MRR Cost (per action) | shown | The customer's MRR divided by Total actions. Shows roughly how much one piece of support work costs relative to the customer's recurring revenue. Shows 0.00 when there are no actions or no MRR. |
| Cost per incoming message | hidden | The customer's MRR divided by Messages (in). Shows 0.00 when the customer wrote no incoming messages in the period or has no MRR. |
| Cost per outgoing message | hidden | The customer's MRR divided by Messages (out). Shows 0.00 when no outgoing messages were sent on the customer's tickets in the period or the customer has no MRR. |
A small
*next to the Monthly recurring revenue value means the figure is historical — Splynx hasn't written a new MRR snapshot for that customer in more than two days. The customer is probably in a status that doesn't qualify for new snapshots (for example, New, Disabled, or Pending); the value shown is the last MRR captured before they left an eligible status. The table also shows a warning banner at the top when any row carries an asterisk.
A ticket is counted when either of these happens during the period:
The same customer can show a positive New tickets for period even when no new ticket was actually opened on their account, simply because tickets were reassigned to them. The customer the ticket was moved away from is not credited with a decrease.
While walking the ticket history for the customer, every ticket that had at least one message-creation event in the period is counted once. Tickets that only changed metadata in the period (status, priority, group, type, or assignee changes) are not counted as "with activity".
For every message-creation event in the period, Splynx checks the underlying message:
Each message contributes 1 to exactly one of the three columns. A customer who sent five replies to the same ticket adds 5 to Messages (in).
Splynx writes a daily MRR snapshot for every customer in an eligible status. The snapshot is the monthly equivalent of the customer's active services on that day — daily price of each service (with discounts and quantity applied), multiplied by the number of days in the current month. Customers in non-eligible statuses (for example, New, Disabled, or Pending) skip the snapshot for that day.
For this report, the daily snapshots inside the Period are averaged:
So the value is the average MRR across the days the customer was eligible. Days without a snapshot don't shrink the result — the denominator counts only the days that did have one.
If the most recent snapshot is older than 2 days, the value is suffixed with * and a warning banner appears at the top of the report.
The Monthly recurring revenue column is a monthly figure, but the message counters are totals over the selected period. Selecting a longer Period does not multiply the MRR — every snapshot already represents the monthly equivalent. To compare cost per action fairly across periods, run the report on a one-month range.
All three cost columns are simple divisions of the customer's Monthly recurring revenue:
Any cell where the denominator is 0 — or where the customer's MRR itself is 0 — shows 0.00. The Cost per incoming message and Cost per outgoing message columns are hidden by default; turn them on via the show/hide columns button to see them.
Find expensive customers for the month. Leave the defaults, click Show, then sort by MRR Cost (per action) descending. Customers at the top consume the most support work per unit of recurring revenue — either because they have a lot of messages, a low MRR, or both.
Audit one customer. Pick the customer in the Customer filter to compute only that row.
*) on the MRR value indicates historical data — the customer's status has stopped qualifying for new snapshots, and the figure is whatever was last captured before that.Show again recomputes the message counters; the MRR side reads the most recent snapshot regardless.