---
title: oee.computeAPQ() function
description: 'oee.computeAPQ() computes availability, performance, and quality (APQ) and overall equipment effectiveness (OEE) using two separate input streams: production events and part events.'
url: https://docs.influxdata.com/flux/v0/stdlib/experimental/oee/computeapq/
estimated_tokens: 1532
product: Flux
version: v0
---

# oee.computeAPQ() function

-   Flux 0.112.0+
-   View InfluxDB support

`oee.computeAPQ()` is experimental and [subject to change at any time](/flux/v0/stdlib/experimental/#experimental-packages-are-subject-to-change).

`oee.computeAPQ()` computes availability, performance, and quality (APQ) and overall equipment effectiveness (OEE) using two separate input streams: **production events** and **part events**.

## Output schema

For each input table, `oee.computeAPQ` outputs a table with a single row and the following columns:

-   **\_time**: Timestamp associated with the APQ calculation.
-   **availability**: Ratio of time production was in a running state.
-   **oee**: Overall equipment effectiveness.
-   **performance**: Ratio of production efficiency.
-   **quality**: Ratio of production quality.
-   **runTime**: Total nanoseconds spent in the running state.

##### Function type signature

```js
(
    idealCycleTime: A,
    partEvents: stream[B],
    plannedTime: C,
    productionEvents: stream[D],
    runningState: E,
) => stream[{
    F with
    runTime: H,
    quality: float,
    performance: float,
    oee: float,
    availability: float,
    _time: G,
    _stop: G,
}] where B: Record, D: Record, E: Equatable
```

For more information, see [Function type signatures](/flux/v0/function-type-signatures/).

## Parameters

### productionEvents

(Required) Production events stream that contains the production state or start and stop events.

Each row must contain the following columns:

-   **\_stop**: Right time boundary timestamp (typically assigned by `range()` or `window()`).
-   **\_time**: Timestamp of the production event.
-   **state**: String that represents start or stop events or the production state. Use [`runningState`](#runningstate) to specify which value in the `state` column represents a running state.

### partEvents

(Required) Part events that contains the running totals of parts produced and parts that do not meet quality standards.

Each row must contain the following columns:

-   **\_stop**: Right time boundary timestamp (typically assigned by `range()` or `window()`).
-   **\_time**: Timestamp of the parts event.
-   **partCount:** Cumulative total of parts produced.
-   **badCount** Cumulative total of parts that do not meet quality standards.

### runningState

(Required) State value that represents a running state.

### plannedTime

(Required) Total time that equipment is expected to produce parts.

### idealCycleTime

(Required) Ideal minimum time to produce one part.
