# Analytics

## Overview

Joule offers a low-code streaming analytics capability tailored to **deliver real-time insights**.

It enables your developers to harness existing analytical resources, define expressions, integrate reference data, and develop custom analytic plugins for complex calculations.

{% hint style="success" %}
Drive contextual insights by combining schedule event metrics and reference data to calculate real-time analytics
{% endhint %}

## Key features of Joule's streaming analytic capability include

1. <mark style="color:green;">**Streamlined integration of analytical assets**</mark>\
   Seamlessly incorporate and leverage existing analytical tools and resources within the Joule platform **minimising setup time and maximising productivity**.
2. <mark style="color:green;">**Expression definition**</mark>\
   Define complex analytical expressions easily using Javascript or Python, enabling quick implementation of calculations and transformations on streaming data.
3. <mark style="color:green;">**Scripting definition**</mark>\
   Define complex analytical expressions easily using Javascript or Python, enabling quick implementation of calculations and transformations on streaming data.
4. <mark style="color:green;">**Reference data binding**</mark>\
   Integrate reference data sources directly into analytics workflows, enriching streaming data with contextual information for more comprehensive analysis.
5. <mark style="color:green;">**Custom analytic plugins**</mark>\
   Develop and deploy custom plugins tailored to specific analytical requirements, allowing users to perform sophisticated calculations and manipulations on streaming data streams.
6. <mark style="color:green;">**Real-time insights**</mark>\
   Gain actionable insights in real-time, enabling prompt decision-making and responsiveness to evolving data patterns and trends.
7. <mark style="color:green;">**Scalable architecture**</mark>\
   Joule's architecture is designed for scalability, ensuring performance efficiency even with large volumes of streaming data and complex analytical workflows.

## Types of analytics

Joule provides various methods to define and leverage analytics within a streaming context.

Joule offers many out-of-the-box analytic implementations that support the implementation of use cases.&#x20;

Analytics are categorised by function.

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><mark style="color:orange;"><strong>Analytic tools</strong></mark></td><td>Define math expressions or provide as a file using Joule supported languages and APIs </td><td></td><td><a href="/pages/y5uZ4PFaYPXNzCR7iNXs">/pages/y5uZ4PFaYPXNzCR7iNXs</a></td></tr><tr><td><mark style="color:orange;"><strong>ML inferencing</strong></mark></td><td>Leverage streaming online predictions to drive insights to action</td><td></td><td><a href="/pages/UJDE3Ic6aqM7CA5EcDjG">/pages/UJDE3Ic6aqM7CA5EcDjG</a></td></tr><tr><td><mark style="color:orange;"><strong>Metrics engine</strong></mark></td><td>In-memory SQL compliant metrics engine for advance analytics calculations, features or alert based triggers</td><td></td><td><a href="/pages/1cZu0AexAVY10BO3JTia">/pages/1cZu0AexAVY10BO3JTia</a></td></tr></tbody></table>

## Extending capabilities

Joule provides an Analytics SDK to enable business developers to extend the analytical capabilities.&#x20;

{% hint style="info" %}
See Analytics API [documentation](/joule/developer-guides/builder-sdk/analytics-api.md) for further information.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.fractalworks.io/joule/components/analytics.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
