Reporting and graphing model output
Even the most sophisticated and complex model is of limited value without a user-friendly means of viewing and analysing the resulting data. A simulation model such as CLEM is capable of generating vast amounts of data which may be of value to the user or simply unnecessary, consuming processing time and disk space. In keeping with the keep it as simple as possible approach used by CLEM (and APSIM Next generation), where only the information needed is provided, simulated and reported, the user has control over the type and style of output data generated. APSIM Next generation stores all the model output in a SQLite database ([APSIMx filename].db) which can viewed in the user interface, analysed by a range of statistical and visualisation software products, or exported to Excel or text files (right click, select export from pop-up menu) to access tools the user is familiar with. The database is available through the DataStore component under the Simulations component of the simulation tree (see General tree structure).
Having lots of reports and graphs can significantly slow down the performance of the CLEM model. This is especially true when working with large herds that can create large data tables based on repeated records of the state of each individual.
We recommend that you disable all the graphs and reports that you don't currently need to use if you find the performance of the model simulation is reduced.
This is especially true for experiments or multiple simulations where results generated that are not needed for the question at hand will reduce performance.
CLEM includes a number of displays and reports that summarise and visualise the simulation set up so the user can confirm settings are correct and troubleshoot when the results aren't quite what is expected.

CLEM is able to utilise the powerful reporting component of APSIM Next generation that allows the user to write a large number of parameters to the database at any interval defined by the model events. While this is a valuable tool, it does require some expertise to use. For this reason, a number of specific reports have been developed that set up the report for the user.

A resource ledger can be thought of as akin to a bank statement or ledger of all transactions. Every time a resource is added or removed by an activity, the details can be recorded. The report contains a gain and loss column to report when the resource is added or lost from the system with losses reported as negative for ease of analysis. The ledger holds all the information about the changes in the resource amount through the simulation and can be further analysed.

While the ledger reports all resource transactions, often you will need a running balance of the state of a resource through the simulation. For this task you can use the Resource balances report which will simplify creating this report for any number of resources.
Resources in shortfall will limit the ability of farm tasks to be performed and provide an indication of where the farming system might be improved to achieve the optimal management. A Resource shortfalls report is available to report all shortfalls in activities requesting resources during the simulation.

The individual-based ruminant model can include large numbers of individuals for some simulations. For this reason a Ruminant herd summary is included to perform some summarising of the ruminant information during the simulation (placed within the Activities holder). A Ruminant herd report is available that includes some ruminant specific details in the report.

CLEM simulates pasture moving through pasture pools that degrade in quantity and quality over time. The Pasture pools report is used to report the amount of pasture in the various pools over time. This mimics some of the pasture output from the IAT and NABSA models.

The APSIM Next generation APSIM reports are used to create a data table in the output database. You can use the intellisense (a style of intelligent filling in of hierarchical properties) style approach in the reporting variables section where you surround your component name inside square brackets and hit the "full stop" key to show a pop-up of available methods, properties and events. to provide the properties to be reported and the event to determine the reporting interval.
Useful custom report examples that can be used or provide templates for your own reports.

APSIM Next generation provides a graphing component that can be used to present graphs from data in the output database.

We have avoided adding code to the model responsible for analysing data as the model is performed, thus improving the performance of the model. We leave much of the summarising of the basic output data till after the simulation is completed whether using the tools in the APSIM environment or other software applications. One such means of summarising the data is to use SQL (a commonly used type of database) scripts, or snippets of code that perform summaries on SQL database tables (see Report query). These summarised data will then appear as tables in the database that can be plotted using APSIM graphs or explored in data tables. Example SQL statements will be available in various toolboxes and examples, or you can learn to create your own statements with various online SQLite tutorials.
A Report pivot is also available to summarise any report output in a style akin to Microsoft Excel pivot tables.

Visual representations of the set up and results of simulations are provided to assist the user.

The APSIM graph component can be used to plot data from any table in the DataStore. There are a range of options that can be used to create your graph.

The combination of nested activities and timers can make the timing of events difficult to understand. The Activities performed report is provided to show what activities were included in the simulation and when they were performed. It also shows when the activity was performed successfully and whether all the resources needed were available.

Labour requirements are allocated to activities as needed with the type of labour that can perform the task specified with nested labour filter groups. The Labour requirements report is provided to show what labour is needed and who can perform an activity.
See next section - Summary information