Skip to content

Call Management

Call records are at the heart of usage billing. Every phone call, SMS, or data session handled by your carriers produces a call detail record (CDR). The platform imports these CDRs, rates them against your tariffs, and turns them into charges on your customers’ invoices.

Each call has two cost perspectives:

  • Retail cost: what your customer pays, based on the tariff assigned to their number
  • Wholesale cost: what your carrier charges you, as reported in the CDR file

The difference between these is your margin.

Calls are shown on several pages throughout the platform. Each page shows calls filtered to the relevant context, and offers different tabs depending on what’s useful.

PageTabs available
NumberCharts, Unbilled Calls, Calls (combined), Call Details, Deleted Calls
CustomerCharts, Calls (combined), Call Details, Deleted Calls
InvoiceCharts, Calls (combined), Call Details
TransactionCalls (combined), Call Details

Every tab shows a filterable, sortable list with CSV download options.

These two views show the same underlying call data, but present it differently. The distinction matters when your numbers handle inbound calls that are forwarded on to another destination.

When a call arrives at a billed number and is forwarded to another destination, the platform records two separate legs:

  • A-leg (inbound): the external caller rings your billed number
  • B-leg (outbound): your billed number forwards the call to the final destination

Each leg has its own cost. The A-leg has an inbound cost from the carrier, and the B-leg has an outbound cost for the forwarded portion.

The Calls tab merges both legs into a single row. It shows the third-party caller, the final destination, and the total cost across both legs. This prevents double-counting and gives you the clearest picture of what each call actually cost.

The combined view uses the B-leg call type where available, since the outbound portion typically determines the billing classification.

The Call Details tab shows every leg as its own row. Use this when you need to:

  • See costs broken down by leg
  • Check which carrier handled each leg
  • Investigate rating or routing queries
  • View the raw CDR data for a specific leg

A customer calls 020 7946 0000 (your billed number). The call forwards to 0121 496 0000 (the destination).

The platform creates two CDR records:

  1. A-leg: external caller → 020 7946 0000 (inbound, 2.5p)
  2. B-leg: 020 7946 0000 → 0121 496 0000 (outbound, 1.2p)

In the Call Details tab, you see two rows with separate costs.

In the Calls tab (combined), you see one row showing the external caller, the destination 0121 496 0000, and a total retail cost of 3.7p.

Without the combined view, you’d see double the call count and could misread the true cost of each call.

Call lists have two viewing modes:

The standard view for platform users. It shows all cost fields, including:

  • Wholesale costs (what the carrier charges you)
  • Calculated wholesale costs (from your internal rate tables)
  • Profit margins
  • Full termination numbers
  • Carrier information and CDR file references

A simplified view suitable for sharing with end customers. It:

  • Hides all wholesale cost fields
  • Excludes free-to-caller numbers from the display
  • Shows simplified termination numbers
  • Removes carrier-specific information

Customer view CSVs are available from the download menu on each calls page. Use these when providing call data to your customers.

The Unbilled Calls tab appears only on Number pages. It shows calls that have been imported and rated but haven’t yet appeared on an invoice.

These calls are waiting for the next billing run. Once a billing run produces an invoice for the customer, the calls move from “unbilled” to the standard Calls and Call Details tabs.

Unbilled calls are useful for:

  • Checking that CDR imports are arriving correctly
  • Previewing what will appear on the next invoice
  • Spotting rating issues before invoices go out

The Deleted Calls tab provides an audit trail of call records that have been removed. It appears on Number and Customer pages for users with the appropriate permissions.

Each deleted call record retains the original CDR data (dates, duration, numbers, wholesale costs) along with a reference to the user activity log entry that recorded the deletion.

Users with the right permissions can restore deleted calls if they were removed in error.

Deleted call records are not kept permanently. After a retention period, they are fully removed from the platform and made available through disaster recovery files.

Here are the most important fields you’ll encounter on call records:

FieldWhat it shows
Billed Number (CDR)The number as it appeared in the carrier’s CDR file
Third Party NumberThe external caller (inbound) or destination (outbound)
Termination NumberWhere the call ultimately terminated
Call LegWhether this is an A-leg (inbound) or B-leg (outbound)
Call TypeThe billing classification (e.g. UK Geographic, UK Mobile, International)
Rating PeriodThe time band applied (daytime, evening, weekend)
Duration (s)Call length in seconds
Retail Cost (p)What the customer pays, in pence, before discounts
Retail Cost (Discounted) (p)What the customer pays after discount plans are applied
Wholesale Cost (p)What the carrier charged, in pence
CarrierThe carrier that provided the service
CDR FileWhich import file contained this call

For the full list of fields, including cost breakdowns and surcharge components, see the Calls API endpoint.

Some CDR records include an event count alongside (or instead of) a call duration. Events represent discrete countable actions such as SMS messages or other non-voice activity that your carrier reports as a quantity rather than a duration.

When the events billing module is enabled, the platform can rate these records using a per-event tariff rather than a per-minute rate. The charge is calculated as:

charge = event count × rate per event

You can set a minimum event count and a rounding increment on the tariff, just as you can set minimum durations and rounding on call tariffs.

Events appear on Call Detail pages in the Date/Time Details section, and on invoices as a separate “Events” line group alongside voice calls. Discount plan allowances can include an event allowance alongside minutes and data.

Events billing is an optional module. If your platform does not have it enabled, the events field on call records will be empty and no per-event rating will occur.

When a customer queries a specific charge, use the invoice’s Call Details tab to find the individual calls behind it.

  1. Open the customer’s invoice for the relevant billing period.

  2. Click the Call Details tab. This shows every individual call billed on that invoice. Each row is a single call leg, with the Billed Number (CDR) column showing which extension or number made the call.

  3. Filter by Call Type to narrow down to the charge in question.

  4. Download a Customer View CSV using the download menu. This removes wholesale costs and carrier details, leaving a clean call list you can send directly to the customer.

  5. Check the rating evidence where the query is about the rate rather than the calls themselves. The Rating Evidence tab on the invoice shows which tariff and rate row priced each call, and which discount allowances applied or were passed over and why. The invoice’s Call Details tab carries an Evidence link column to the same detail for a single call. See Rating evidence below.

Use Call Details rather than the combined Calls view here. It shows each number separately, so you can see exactly which extensions contributed to the charge. When sending the results to a customer, ensure you always use the Customer View download.

Call records are imported from carrier CDR files. The platform processes these files, matches calls to your numbers, and rates them against the appropriate tariffs. See Supply Files for details on CDR file imports.

Each call is rated through this process:

  1. Match the call to a number on the platform
  2. Identify the call type from number analysis
  3. Look up the rate from the number’s tariff
  4. Apply any discount plans
  5. Calculate surcharges (access charges, mobile origination, etc.)
  6. Add the call to the customer’s unbilled usage

The platform records how it arrived at each call’s price, so a charge query can be answered from what actually happened rather than from a reconstruction.

For each rated call it keeps:

  • the retail tariff used, and its revision number at the time of rating
  • the exact rate row that priced the call, including where a call type has no rate of its own and borrows another’s
  • how that tariff was reached: the feature, number or customer tariff, a customer class markup, the platform default, an invoice-time fallback markup, or a price an operator applied from the billing error pages
  • the price date, where a price lock moved pricing off the call date
  • the buy-side carrier tariff

Alongside this, each call carries a decision log for discount plans, listing every candidate allowance in the order it was considered, with the quantity and amount applied, or the reason it did not apply. The reasons are specific rather than a general failure: Allowance exhausted, Outside allowance dates, Nothing left to discount, Below minimum duration, Above maximum duration, Carrier not applicable, Cost type not applicable, Covered by earlier allowances, Bundle-rated to another allowance, Unrated call not fully covered, Handled with B leg, Part-call could not be re-rated, and the three surcharge policy exclusions for access charges, origination and call recording.

This answers the two questions a customer actually asks: why the call cost what it did, and why their bundle did not cover it.

Part-call could not be re-rated is the one worth acting on: it means no built rate was found for the call’s tariff, so the chargeable part of a part-free call was written off rather than charged.

The evidence appears in three places, all needing data-protection access:

  • the Rating Evidence tab on the invoice, which also shows each call’s cost before and after discounting, so it can be sorted to find the least discounted calls
  • an Evidence link column on the invoice’s Call Details tab
  • a compact Rating Evidence grid on the call page itself
  • the Why this cost? column on the CRM invoice’s Calls tab, which opens the same evidence written out in plain language: the tariff that won, the stage it was resolved at, and each discount plan applied or rejected with its reason

An AI assistant with call detail access reads the same stored evidence when asked to explain a call charge.

Two Elevated settings under CDR Processing Settings control it:

SettingDefaultPurpose
Record call rating evidenceOnWhether evidence is recorded as calls are rated
Call rating evidence retention (months)6How long the evidence is kept

Evidence exists only for calls rated while recording was switched on. Older traffic can be back-filled on request, and back-filled rows are marked as inferred to distinguish them from evidence recorded at the time.

If tariffs change or a call was rated incorrectly, calls can be rerated. This recalculates the retail cost using updated tariff rates while keeping the original CDR data intact.