Contract value development shows how the values saved from contract billing rows have changed. You can view the value per invoice or per year, with or without discounts. The report does not show actual billing, paid invoices or revenue for the reporting period.
Requirements and opening the report
Use the report in a browser. The contract summaries for a Spot on Android and iOS show basic contract information, not this value development report. The report includes only contracts that your user permissions allow you to view and that have saved value history.
From the browser's main menu, open Dashboard → Report pages and select a page using the selector at the top. An administrator can add the report: select Add new report, find Contract value development and drag it onto the report page. Save the addition using the page's Save the page button. If needed, see creating a report page.
Adding reports and permanently saving settings require administrator permissions. A saved report is a shared configuration on the report page, but its data depends on the viewer's permissions. Without the reporting tool's additional features, one report page is available.
Select the value, period and filters
Open Settings in the report's title bar. In its All filters section, select the Field used to calculate the value:
- Discounted total per invoice: the combined value of the billing rows excluding VAT, after row discounts. This is the default.
- Total per invoice: the same value per invoice without row discounts.
- Discounted total per year: the discounted value per invoice multiplied by the calculated annual number of invoices.
- Total per year: the annual value without row discounts.
In the same section, filter by Customer, Contract group, Contract and Status as needed. Filters in different fields apply together: a contract must meet all the filters you set. An empty field does not filter the data.
Above the report chart, Tme period for the data sets the period to view. Time grouping for data sets the periods for the points or bars: day, week, month or year. The default is monthly grouping, with the current month and the three preceding months. The current-year period option cannot be combined with daily grouping. The guide report periods and filters explains the time selections in more detail.
In the Group by section of the settings, you can break down values by customer, contract group, contract or status. Without grouping, the report adds the values of the included contracts into a single series. Time grouping and contract grouping are separate selections.
To keep changes to a saved report, select Save Settings in the title bar as an administrator. The settings for a new report are saved using the page's Save the page action. Simply changing settings for viewing does not save them permanently.
How are the values per invoice and per year calculated?
The value of a single billing row excluding VAT is Quantity × Interval × Unit price. The row's Interval is a price multiplier; it is neither the report's time period nor the contract's billing interval. For the discounted value, the row's percentage discount is first deducted from the unit price. A missing price or discount is treated as zero. VAT is not included in the report values.
Each row total is rounded to the nearest €0.05 before the rows are added together. In a tie, a positive total is rounded up. The total per invoice is also rounded to €0.05 before the annual value is calculated.
The annual value is calculated from the value per invoice at the time it is saved and the number of invoices in the calendar year at the time of calculation. When Use fixed invoice dates is enabled on the contract's Billing settings tab, the multiplier is the number of specified annual dates. This selection overrides the recurrence interval when calculating the annual value.
Otherwise, the calculation starts on the first day of the year and proceeds according to the contract's billing recurrence period and recurrence interval. The first day is included. Subsequent calculated creation dates are shifted according to the billing lead time; in monthly lead-time mode, the selected specific day of the month also affects the calculation. If that day does not exist in the month, the last day of the month is used. Dates falling on or before the end of the year are included.
The annual value is not prorated according to the contract's start or end date or the creation date of the first invoice. It also does not prove that automatic billing is enabled or that invoices have been sent. Maintaining billing settings is described in contract billing and price changes.
For example, a row has a quantity of 2, an interval of 3, a unit price of €10 and a discount of 10%. The Total per invoice is €60 and the discounted total is €54. If there are four fixed annual invoice dates, the annual values are €240 and €216. In this case, the €216 shown at a monthly point is the annual value, not billing for that month.
How should the history be interpreted?
The value for each time period is each contract's last saved value as of the end of that period. The report adds these values by contract or according to the selected grouping. Values saved during the same period are neither added together nor averaged. The report's final total is rounded to two decimal places.
The last value saved before the reporting period serves as the starting value. The value carries forward into subsequent periods until a new value is saved. If a contract's value is €100 in January and €120 is saved in February, the monthly points are €100 and €120. March still shows €120 if no new value is recorded. Adding the monthly points together does not give actual billing.
Before its first saved value, a contract does not contribute to the period's total. Periods entirely in the future are empty. The current, incomplete period shows the last value saved so far, so its result may still change.
Filtering and grouping use the contract's current customer, contract group and status, including for past periods. For example, changing the group may move the contract's earlier values into the new group. The report does not reconstruct the historical state of these details.
Deleted contracts are excluded entirely from the report, including for earlier periods. Ending, archiving or a future start date alone does not exclude a contract or set its value to zero. Select the Status filter according to the purpose of your review. Changing the status is covered in contract history and archiving.
Value updates and checking the result
Changes to the billing recurrence interval, lead time or specific creation day, as well as changes affecting billing row prices, trigger a background value calculation after saving. A new history entry is created only if a value per invoice, an annual value or the annual number of invoices changes. The history timestamp is the time the new value is saved; a price change does not rewrite earlier values.
Update limitation: changing only the fixed invoice dates or whether they are enabled does not trigger this recalculation. A change of calendar year alone also does not guarantee a new annual value. Check the saved value after changes; if it is outdated, work with an administrator or support to resolve the update.
Deleting all billing rows does not save a zero value. The previous value may therefore continue to appear in the report. Do not treat an empty set of rows as proof that the report value has been reset to zero.
- Use the All filters → Contract field to limit the report to one contract, and check the selected value field and period.
- From the main menu, open Customers → Contracts, find the same contract and compare the corresponding total-per-invoice or total-per-year column in the list. A discounted total must be compared with a discounted value field.
- Open the contract details. On the Billing settings tab, check the row quantities, intervals, prices, discounts and billing schedule. On the History tab, check the Contract value update event and its timestamp.
- After background processing, reload the report page and check that the new value appears in the correct time period. If you changed the report's permanent settings, reopen it to verify that those settings were saved as well.
Changing the report's filters or grouping changes the presentation, not the contract's billing rows or value history. If a result is missing or unexpected, first check permissions, filters, the current status and the time of the last value update. See also troubleshooting an empty report.