How ScaleXP reads dates

How ScaleXP reads start and end dates from invoice and bill line descriptions, with wording tips and fixes for date errors.

ScaleXP automatically reads the service period of every invoice and bill line from the words in its description, using advanced AI, and spreads the line's revenue or cost over that period. There is nothing to set up, tag or format: as soon as your accounting system is connected, ScaleXP reads each line as it syncs and works out the start and end dates for you. This article explains how the AI reads a line so you can understand the results, offers optional tips for invoice wording, and describes what to do in the rare cases where a description is ambiguous.

For further detail on how these dates are used in revenue or cost allocation, see How ScaleXP allocates the spread of revenue and cost.


What ScaleXP does automatically

You do not need to take any action for dates to be read. For every invoice and bill line, ScaleXP's AI:

  • reads the line description as it is written, in plain language, and identifies the service period from any dates, terms or periods it mentions;
  • works out both a start and an end date, even when the description only gives one of them, or gives a term such as "12 months" or "quarterly";
  • falls back to the invoice or bill month when the description contains nothing about dates, so every line is always allocated somewhere;
  • spreads the line's revenue or cost across the resulting period, ready for the Revenue Recognition and As Spent views and the month-end journals.

Here are some examples of how the AI works:

Invoice description ScaleXP start and end dates
A start and end date: "Subscription 1 April 2026 to 31 March 2027" 1 April 2026 to 31 March 2027
One date plus a term: "12 month license from 15 May 2026" 15 May 2026 to 14 May 2027
One date only: "Workshop on 9 September 2026" That day: 9 September 2026
A term only: "Quarterly support fee", invoice dated 9 June 2026 1 June 2026 to 31 August 2026
No date and no term: "Initial setup", invoice dated July 2026 The invoice month: July 2026

In most cases this is all you need to know. The rest of this article is for understanding the results in more detail and for the occasional line where the wording is unclear.


How the AI reads a line

A few details help explain the dates you see:

  • Only the line description is read, not the invoice reference, notes or due date.
  • If the line item description has nothing in it referring to a date, the line item will default to recognizing the entire amount at the invoice date.
  • Numeric dates such as 03/04/2026 follow the date format set on your accounting connection: day-month-year unless you chose the American order.

To avoid confusion if billing is sometimes mixing US and non-US entities, you might want to use the month name rather than number.


Optional: Wording tips that help the AI get it right first time

The AI copes well with most real-world descriptions, so none of the following is required. If you are designing invoice templates or find that a particular type of line is often ambiguous, these tips make the intended period unmistakable:

  • State the period the invoice covers as a start and end date, on every line.
  • On recurring invoices, ensure the line item specifies the dates related to the invoice rather than the full contract term.
  • Write the month as a name and the year in four digits – for example "3 April 2026", not "03/04/26".
  • Include only one service per invoice line. For example, split a setup fee from the subscription it comes with.
  • Keep other dates off the line. Order, delivery and price-change dates might be mistakenly read as service dates by the AI.

Optional: Using curly brackets to set exact dates

If you want to be certain which dates ScaleXP will use on a particular line, put the start and end date inside one pair of curly brackets {} anywhere in the line description. ScaleXP then uses exactly those dates, every time. Nothing else on the line is read and no interpretation is applied, so when written correctly this is 100% accurate. This is an override for specific cases, not something you need on every invoice.

The dates must be formatted as follows for this to work as expected:

  • One pair of brackets holding both dates, joined by a hyphen or the word "to". If a line has two pairs of brackets, the first is used.
  • A single date, such as {15/06/2026}, means that day only.
  • Each date is day, month and year. Day and month follow your connection's date format: British (day first, the default) or American (month first).
  • Day, month and year are separated by slashes, dots, hyphens or spaces, with the same separator used throughout. Leading zeros are optional.
  • The month is a number or a three-letter name (Jun, Sep, in any capitalization). The year has four digits.

Example recognized formats (British setting)

All of the examples below are read as 8 June 2026 to 9 September 2026.

Example Format
{08/06/2026 - 09/09/2026} Slashes
{8/6/2026 - 9/9/2026} No leading zeros
{08.06.2026 - 09.09.2026} Dots
{08-06-2026 - 09-09-2026} Hyphens
{08 06 2026 - 09 09 2026} Spaces
{08/06/2026 to 09/09/2026} "to" instead of "-"
{08/06/2026-09/09/2026} No spaces around the dash
{08-06-2026-09-09-2026} Hyphens everywhere
{8-Jun-2026 - 9-Sep-2026} Three-letter month
{08 Jun 2026 - 09 Sep 2026} Three-letter month with spaces
{08/Jun/2026 - 09/Sep/2026} Three-letter month with slashes
{08-JUN-2026 - 09-sep-2026} Any capitalization

Example recognized formats (American setting)

All of the examples below are read as June 8 2026 to September 9 2026.

Example Read as
{06/08/2026 - 09/09/2026} June 8 2026 to September 9 2026
{Jun-8-2026 - Sep-9-2026} June 8 2026 to September 9 2026
{06/08/2026 to 09/09/2026} June 8 2026 to September 9 2026

Note that this will not be recognized under American setting: {8-Jun-2026 - 9-Sep-2026} – the month must come first.


Troubleshooting: Possible sources of confusion

If a line has been allocated to a period you did not expect, one of the patterns below is usually the reason.

Issues in curly brackets

The following might not be picked up as they do not follow the precise rules for the curly brackets.

Example Reason for issue
{08/06/26 - 09/09/26} Two-digit year
{8-June-2026 - 9-September-2026} Full month name
{2026-06-08 - 2026-09-09} Year first
{08/06/2026 09/09/2026} No "-" or "to" between the dates
{08/06/2026} - {09/09/2026} Each date in its own brackets
{08/06/2026 - 9-09-2026} Different separators in the two dates
{08/06/2026 – 09/09/2026} A long dash, as typed by Word or Google Docs
{ 08/06/2026 - 09/09/2026 } Spaces just inside the brackets
{08/06/2026 - 09/09/2026 renewal} Other text inside the brackets
(08/06/2026 - 09/09/2026) or [08/06/2026 - 09/09/2026] Round or square brackets
{31/06/2026 - 19/09/2026} A date that does not exist
{08/09/2026 - 09/06/2026} End date before the start date

Issues in dates and suggested alternatives

Issue Line description Suggested alternative
Ambiguous dates "03/04/2026" "3 April 2026"
Ambiguous dates "Feb-23 to Jan-24" "Feb 2023 to Jan 2024"
Ambiguous dates "Membership 2027" "Membership 1 January 2027 to 31 December 2027"
Recurring invoices "Contract start date 1 Jan 2025, billed quarterly" "Quarterly fee 1 July 2026 to 30 September 2026"
Recurring invoices "Annual subscription, billed quarterly" "Subscription 1 April 2026 to 30 June 2026"
Other dates on the line "Consultancy, PO 8812 dated 12/03/2026" Move the PO date to the invoice notes
Other dates on the line "Accounts for the year ended 30 June 2026" "Accounts preparation 1 July 2025 to 30 June 2026"
Two services on one line "Setup fee plus 12 months hosting" Two lines: the setup fee, then the hosting

Checking and correcting dates

If ScaleXP has read the dates on a line differently from what you intended, you can review and change them in ScaleXP without editing the invoice in your accounting system. See How to fix revenue recognition dates on an invoice.