> For the complete documentation index, see [llms.txt](https://boza.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://boza.gitbook.io/docs/resources/metrics-and-data-freshness.md).

# Metrics & Data Freshness

Use this reference to understand where Boza's numbers come from, why two screens may show different totals, and how to check whether data is current enough for a decision.

## Data Sources

Boza combines several kinds of records:

| Data                        | Primary Sources                                                        | Used For                                                       |
| --------------------------- | ---------------------------------------------------------------------- | -------------------------------------------------------------- |
| Users and organization      | Google Workspace or Microsoft Entra ID                                 | User directory, teams, organizational units, identity context  |
| Application usage           | Browser extension, identity-provider sign-in logs, direct integrations | Active and inactive users, application discovery, usage trends |
| Subscriptions and contracts | Approved subscription records, uploaded or synchronized invoices       | Projected costs, assigned licenses, renewal dates              |
| Payments                    | Powens, Pennylane, imported CSV files                                  | Actual transactions and vendor spend                           |
| Vendors                     | Payment and invoice matching, manual records                           | Vendor-level spend and application mappings                    |

No single source covers every metric. For example, a bank transaction proves that money moved but does not show which employee used a license. A browser signal shows application activity but not the contract price.

## Cost Metrics

Cost figures are based on approved subscription and contract records. Applications, subscriptions, vendors, users, and teams all use the same names, and every amount in the interface states the period it covers.

| Metric                  | Meaning                                                                                              |
| ----------------------- | ---------------------------------------------------------------------------------------------------- |
| **Full year cost**      | Active recurring monthly cost × 12 months. An annual run rate at today's price                       |
| **Monthly cost**        | Full year cost ÷ 12. An average month, not the amount billed in any particular month                 |
| **Cost YTD**            | Current recurring monthly cost × the completed months of the current year                            |
| **Last month cost**     | Cost for the most recent completed month                                                             |
| **Wasted costs**        | Cost attributed to subscribed seats with no observed activity during completed months                |
| **Total over the term** | What a whole signed contract costs, labelled with its own length, for example *Total over 36 months* |
| **Term**                | The length of a contract                                                                             |
| **One-time**            | A charge billed once. Never multiplied into a yearly total                                           |

**Full year cost** deliberately excludes:

* one-time subscriptions, which do not recur and have no annual run rate;
* outdated (expired) subscriptions;
* contracts whose term has not started;
* standalone discount rows.

An application whose subscriptions are all one-time therefore shows a dash rather than an amount, with the one-time amount noted separately. Where a total leaves something out, the card names what was excluded.

{% hint style="info" %}
**Full year cost** replaced the earlier **Full Contract Cost**, which multiplied a subscription's monthly price by its contract length. A three-year contract now reports twelve months of spend rather than thirty-six, so it can be compared with **Cost YTD** and with other applications. Subscription and invoice records were not changed.
{% endhint %}

The current month can change before it closes, and pending detected subscriptions are excluded until an administrator approves them. Missing or incorrect billing cycles, quantities, start dates, or renewal dates therefore change both totals and run rates.

## Payments Are Not Subscription Cost

The Payments tab combines approved invoices with transactions imported from a bank, accounting platform, or CSV file. Cost figures are an estimate built from the prices saved on your subscription records. An approved invoice is not proof that the money has left your account.

The totals can differ because:

* An annual invoice appears as one payment but its subscription cost is spread across a billing period.
* A payment has not yet been matched to the correct vendor or application.
* A subscription is pending review and excluded from Cost Analysis.
* A contract contains tax, credits, one-off services, or usage charges.
* A bank or accounting synchronization has not completed.
* A manual CSV import covers a payment source that subscription data does not.

Reconcile the two views monthly rather than expecting them to be identical.

## Usage Metrics

Boza records usage signals from:

1. The browser extension.
2. Google Workspace or Microsoft Entra ID sign-in logs.
3. Direct application integrations.

A user is **active** when Boza has observed at least one supported usage signal during the period defined by that metric. A user is **inactive** when they hold access or a license but Boza has not observed a signal in that metric's period.

Inactive does not prove that a person never used an application. It means no enabled Boza source observed the activity. Coverage gaps can occur when:

* The extension is not installed or has not been active on the user's device.
* The user accesses the application from an unmanaged device.
* The application bypasses the connected identity provider.
* No direct integration provides usage information.
* The metric's reporting period is too short to capture an infrequently used application.

Confirm coverage before reclaiming a license based only on inactivity.

## Renewal Metrics

The Dashboard alerts and Renewals page read renewal dates from subscription records. If a renewal is missing or incorrect:

1. Open the application.
2. Open its **Costs** tab.
3. Review the subscription's billing cycle, dates, and notice period.
4. Save the correction.

The Renewals page is a view of subscription data; it is not a separate renewal calendar.

## Cost Allocation

Per-user and per-team costs depend on the quality of the underlying assignments:

* Users must be associated with the correct team.
* Licenses should be assigned to the people who hold them.
* Applications need approved subscriptions with accurate quantity and cost.
* Shared, usage-based, or organization-wide contracts may not divide cleanly per person.

Use allocated cost as an operational view and keep the source subscription as the contract authority.

## Freshness by Source

Boza does not use one universal refresh interval. The available source and workflow determine when data changes.

| Source or Action              | Freshness Behavior                                                                      | How to Check                                                                                              |
| ----------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
| Identity-provider integration | Synchronizes automatically on a regular schedule after authorization                    | Confirm the integration is connected; review recent users and organization data                           |
| Browser extension             | Produces signals after installation, identification, and supported application activity | Open **Settings → Browser Extension → Activity Monitoring** and check installed and recently active users |
| Direct integration            | Synchronizes according to that connector's supported schedule                           | Check connection state and the latest visible data in the relevant integration or application             |
| Pennylane                     | Supports synchronized invoice processing and an on-demand sync from Subscriptions       | Review the sync summary and the pending invoice or subscription queue                                     |
| Powens                        | Supplies supported bank transactions                                                    | Check the Payments synchronization badge and last sync time                                               |
| Invoice upload                | Updates after upload, OCR, identification, and review                                   | Check processing status, then clear Pending or Needs Review items                                         |
| Manual record change          | Feeds dependent views after the change is saved and processed                           | Reopen the relevant application, subscription, or report                                                  |

Avoid promising a fixed refresh time unless the product displays one. Third-party processing, device check-in, and review queues can add delay.

## Why Counts Differ Between Pages

| Comparison                                  | Common Explanation                                                                        |
| ------------------------------------------- | ----------------------------------------------------------------------------------------- |
| Licensed users vs. active users             | A license assignment is entitlement; active users require an observed usage signal        |
| Application users vs. subscription quantity | Access records and purchased seat quantity come from different sources                    |
| Dashboard vs. Analysis                      | The pages can use different periods, completed-month rules, or projections                |
| Applications vs. Subscriptions              | One application can have several subscriptions; some subscriptions may still be pending   |
| Cost Analysis vs. Payments                  | Estimated subscription cost and recorded payments recognize money differently             |
| Full year cost vs. Total over the term      | A twelve-month run rate against the total price of a whole contract, however long it runs |
| Team total vs. organization total           | Missing team membership or unassigned licenses prevent complete allocation                |

Before escalating a mismatch, compare the period named by each card or chart and align the available Organization, Team, Group, and Custom Field filters, approval state, and currency. **Full year cost** is a run rate with no calendar window; the other cost cards use fixed completed-month periods. The year control belongs to the monthly cost trend chart rather than the whole page.

## Data Quality Checklist

When a metric looks stale or incomplete:

1. Confirm the relevant integration is connected.
2. Check whether an upload or synchronization is still processing.
3. Clear Pending and Needs Review subscription items.
4. Verify browser-extension installation and recent activity for affected users.
5. Confirm user-team membership and license assignments.
6. Review the active Organization, Team, Group, and Custom Field filters, plus the period stated by the affected card or chart.
7. Check the source subscription or payment rather than only the aggregate chart.

If the source data is current but the metric still does not reconcile, record the affected page, filters, user or application, source timestamp, and expected value before contacting **<support@getboza.io>**.

## Related Guides

* [Cost Analysis](/docs/platform/analysis/cost.md)
* [Payments](/docs/platform/analysis/payments.md)
* [Usage Analysis](/docs/platform/analysis/usage.md)
* [Subscriptions](/docs/inventory/subscriptions-and-vendors.md)
* [Renewals](/docs/inventory/renewals.md)
* [Reports and Exports](/docs/resources/reports-and-exports.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://boza.gitbook.io/docs/resources/metrics-and-data-freshness.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
