# Configure inventory reporting

## Inventory reporting at a glance

Inventory reporting brings together the records you use to examine stock movement, stock value,
inventory age, and catch-weight differences. Inventory aging follows remaining stock over time;
catch-weight variance compares expected and actual catch weight. Use these reports to control
access or explain why a report entry is unavailable.

| If you need to… | Go to |
|---|---|
| Find movement, valuation, aging, or catch-weight reports | [Find an inventory report](#find-an-inventory-report) |
| Check the permissions and modules that affect access | [Before you check access](#before-you-check-access) |
| Compare a report with its listed fields, filters, and views | [Understand the report surfaces](#understand-the-report-surfaces) |
| Review report access for an account | [Review access for a report](#review-access-for-a-report) |
| Use the operational inventory reports | [Inventory reporting](doc:inventory-reporting) |
| Work with movement records that feed reports | [Configure inventory overview and transfers](doc:admin-inventory-overview-and-transfers) |
| Check warehouse and location configuration | [Configure warehouses and replenishment](doc:admin-warehouses-and-replenishment) |
| Investigate a route or access problem | [Getting help](doc:getting-help) |

The inventory reporting area contains five report entries: **Moves History**, **Move Analysis**,
**Valuation**, **Inventory Aging**, and **CW Variance Analysis**. Their list surfaces
contain 69 field entries in total; Valuation and Inventory Aging share field entries.
Valuation provides actions for checking a date, opening a journal entry, and adding a manual
valuation. The access conditions for these actions are listed below.

Start with the access checks, then find the report that answers your question.

## Before you check access

Access to inventory reports depends on the account's role groups, the installed reporting
modules, and the type of stock record being reported. Check these prerequisites before changing
an account's access so that a missing report is not mistaken for a missing record.

| Check | It affects |
|---|---|
| Production-lot access | Lot and serial-number information in Moves History |
| Tracking-lot access | Source and destination package information in Moves History |
| Multi-company access | Company information in the report lists |
| Units-of-measure access | Unit information in movement and valuation views |
| Multi-location access | Location information in Move Analysis |
| Stock-packaging access | Product packaging in Move Analysis |
| Accounting-user access | Account-move information and journal-entry actions in Valuation |
| Stock-account reporting module | Valuation and Inventory Aging menu entries |
| Catch-weight reporting module | CW Variance Analysis menu entry |
| Product records whose type is `product` | Valuation and Inventory Aging records |

When these checks are ready, use [Find an inventory report](#find-an-inventory-report) to open the
destination you need.

## Find an inventory report

An inventory report is a read-oriented destination under Inventory > Reporting. Choose the
destination that matches the question you need to answer.

**Prerequisites**

- You know which inventory question you are investigating.
- The account has the role and module access needed for that report.

**Steps**

1. Open Inventory.
2. Open Reporting.
3. Choose one report from the table.

| If you need to… | Choose |
|---|---|
| Review past product movements | **Moves History** |
| Analyse stock moves | **Move Analysis** |
| Review inventory value | **Valuation** |
| Review remaining stock by age | **Inventory Aging** |
| Review catch-weight differences | **CW Variance Analysis** |

4. Check the report title before using its search, grouping, or view controls.

The direct Moves History route can land on `/web` with `/web#action=apps_menu` instead of opening
the report. If that happens, continue with [Troubleshoot report visibility](#troubleshoot-report-visibility).

**Result:** You have selected the report that matches your inventory question, or you have a
route result to investigate before working with report data.

Next, read the report's available fields and views, then review the access conditions that apply
to the selected destination.

## Understand the report surfaces

Each report is a way to ask a different stock question. The tables below describe the fields,
search choices, groupings, and views listed for each destination; work from the labels and
headers that appear after the report opens.

### Movement reports

| Report | What it provides | Search and grouping choices |
|---|---|---|
| **Moves History** | Date, reference, product, lot, packages, locations, quantity, unit, status, and completion user | Location, product, transfer, reference, category, lot or serial number, source package, destination package, owner; To Do, Done, Incoming, Outgoing, Internal, date ranges, Inventory; group by Product, Status, Date, Transfers, Location, or Category |
| **Move Analysis** | Date, reference, product, source and destination locations, packaging, demand, quantity, unit, company, and status | Location, product, reference, source location, destination location, and partner; Ready, To Do, Done, Incoming, Outgoing, Inventory, and Date; group by Product, Operation Type, Picking, Source Location, Destination Location, Status, Creation Date, or Scheduled Date |

### Valuation and aging reports

**Valuation** lists product valuation layers with date, reference, product, company, moved
quantity, remaining quantity, unit cost, unit, value, description, and remaining value. It
includes Valuation at Date. **Journal Entry** requires accounting-user access, and **Add Manual
Valuation** is available from the product grouping when its source conditions are met.

**Inventory Aging** uses the valuation list together with pivot and graph views. Its listed
setup groups the pivot by month and product category, measures remaining quantity and remaining
value, and uses a bar graph grouped by month.

### Catch-weight variance report

**CW Variance Analysis** lists date, product, picking, picking type, partner, lot, nominal
quantity, expected catch weight, actual catch weight, absolute variance, variance percentage,
and the tolerance-exceeded indicator. Its searches cover product, partner, lot, and
picking. Its filters are **Receipts**, **Deliveries**, **Internal**, Tolerance Exceeded, and
This Month. Its groupings are Product, Partner, Transaction Type, Category, Lot, and Date
(Month); its pivot and graph views analyse variance by product and transaction type.

These report lists are read-oriented. The listed surfaces do not create records. Valuation
also disables import and duplication, and the catch-weight list does not allow editing.

Use these report descriptions before you review access for a specific destination.

## Review access for a report

Reviewing report access means comparing the report you selected with the groups and modules that
govern its fields, actions, and menu entry. Use the report name and the access table together;
the report name tells you what to test, while the access condition tells you what to check.

**Prerequisites**

- You have selected a report from Inventory > Reporting.
- You can inspect the account's inventory, location, company, accounting, units-of-measure, lot,
  package, and catch-weight access.

**Steps**

1. Identify the selected report in the report table.
2. Compare its access conditions in the table.

| Report or surface | Check |
|---|---|
| **Moves History** | Production-lot, tracking-lot, multi-company, and units-of-measure access for the corresponding fields |
| **Move Analysis** | Multi-location, stock-packaging, multi-company, and units-of-measure access |
| **Valuation** | Accounting-user access for account-move information and journal-entry actions; stock-account reporting module |
| **Inventory Aging** | Stock-account reporting module and product records whose type is `product` |
| **CW Variance Analysis** | Catch-weight reporting module |

3. Compare the report entry's availability with the checks in the table.
4. If the report entry is unavailable, continue with [Handle permission and module branches](#handle-permission-and-module-branches).

**Result:** You have a report-specific access checklist to use when reviewing account access.

If a report entry or field differs from this checklist, follow the matching permission, module,
or record-state branch next.

## Handle permission and module branches

Permission and module branches change which report entries and fields a reader can use. State
also changes how Move Analysis fields behave: completed moves make several fields read-only, and
the form changes its date label between scheduled and processing dates.

**Prerequisites**

- You have selected the report whose access differs from the expected path.
- You have the report-specific access checklist.

**Steps**

1. Compare the situation you see with the matching row in the table.
2. Check the access or record condition named in that row.
3. For a completed move, read the affected Move Analysis fields as read-only and use the date
   label that matches its state.

| When you are checking… | Compare… |
|---|---|
| Lots or serial numbers | Production-lot access |
| Packages | Tracking-lot access |
| Companies | Multi-company access |
| Units | Units-of-measure access |
| Locations | Multi-location access |
| Product packaging | Stock-packaging access |
| Journal-entry information | Accounting-user access |
| Valuation or aging entries | Stock-account access and product type |
| Catch-weight variance | Catch-weight module access |
| A completed move | Whether the affected Move Analysis fields are read-only |

**Result:** You have identified the permission, module, product type, or record-state branch that
explains the report result.

If that branch does not explain the result, use [Troubleshoot report visibility](#troubleshoot-report-visibility).

## Troubleshoot report visibility

A report-visibility problem is a route, access, or data problem. Start with what appears after
you choose the report, then use the matching row below.

**Prerequisites**

- You have chosen an Inventory > Reporting destination.
- You can read the route result or message shown after the destination opens.

**Steps**

1. Select the troubleshooting row whose first-column label matches the report title.
2. Follow the action in the third column of that row.

| What you see | What it means | What to do |
|---|---|---|
| The route lands on `/web` with `/web#action=apps_menu` | The requested report did not open | Return to Inventory > Reporting and choose the report entry again. If the result repeats, use the access and module checks in this page. |
| The report entry is absent | A menu, role, or module condition differs from the expected report path | Compare the report with the access table, then check the relevant module and role group. |
| `There's no product move yet` | Moves History has no product move to display | Check the movement records in [Configure inventory overview and transfers](doc:admin-inventory-overview-and-transfers). |
| `No stock move found` | Move Analysis has no stock move to display | Check the movement records and the selected search conditions. |
| `There are no valuation layers. Valuation layers are created when there are product moves that impact the valuation of the stock.` | No valuation layer is available for the valuation or aging view | Check the product movement and valuation configuration before returning to the report. |

The four report walks reached `/web` and failed their report-title checks for **Moves History**,
**Move Analysis**, **Valuation**, and **CW Variance Analysis**.

**Result:** You have a next action for a wrong route, unavailable entry, empty report, or missing
valuation layer.

Use [Continue from inventory reporting](#continue-from-inventory-reporting) after you complete that
action.

## Continue from inventory reporting

After you resolve the access or route question, continue with the page that owns the next job.

The report actions and empty-state messages point back to the movement and valuation records that
feed inventory reporting. Use the report-specific access checklist before changing permissions,
then return to the relevant operational or reporting page.

**Steps**

1. Choose the next job in the table.

| If you need to… | Continue with |
|---|---|
| Use the reports as an inventory operator | [Inventory reporting](doc:inventory-reporting) |
| Review or correct movement records | [Configure inventory overview and transfers](doc:admin-inventory-overview-and-transfers) |
| Check warehouse, route, or location configuration | [Configure warehouses and replenishment](doc:admin-warehouses-and-replenishment) |
| Work with non-inventory reports or audit destinations | [Configure reports and audit work](doc:admin-reports-and-audit-work) |
| Resolve a cross-product issue | [Common issues and solutions](doc:common-issues-and-solutions) |
| Escalate an unresolved route or access problem | [Getting help](doc:getting-help) |

**Result:** You have moved to the page that owns the next inventory, reporting, or support task.
