# Batch reading schedule rules

Batch reading schedule rules decide, for each filled vessel, which batch reading form to use, how often readings are due and how many are needed each time. Because they are worked out vessel by vessel, a fermenter in active fermentation and a cask that has been conditioning for months can be on completely different schedules.

You'll find them at **Settings** -> **Production settings** -> **Batch reading forms** -> **Batch reading schedule rules**. You'll need the **Settings** permission to open the editor.

![The batch reading schedule rules editor, with a Start block joined to a Reading schedule block called Daily readings](https://storage.googleapis.com/breww-user-uploads/markdown-embedded/81aab98d15b085634762878c58f9baa2c3eb0f2fbd5f729f9ae92e89429a8cd8.png)

## How the rules work

These rules are built in Breww's rules editor, the same flowchart-style canvas used for delivery rules and best before rules. If you haven't used it before, read [Using the rules editor](https://breww.com/docs/rules-editor/) first, which covers adding blocks, joining them together and reading the canvas.

Batch reading schedule rules are made from three kinds of block:

* **Start** - where Breww begins. There is always exactly one.
* **Condition** - a yes or no question about a vessel, with a green check mark output for "yes" and a red cross for "no".
* **Reading schedule** - the outcome at the end of a path. It says which batch reading form to use, how often readings are due and how many are needed each time.

Breww follows the rules separately for every vessel that is filled with a batch in progress, and works the answer out fresh each time rather than storing it. A vessel therefore moves onto a different schedule on its own as its status changes, as the batch ages, or as the week goes on.

## Your starting rules

Every Breww account starts with a single **Reading schedule** block called **Daily readings**, joined straight to **Start**, which asks for readings every day using the **Daily readings** batch reading form. Add conditions above it to split your vessels onto different schedules, and keep that original block at the end of the canvas as your catch-all.

## What you can ask about a vessel

A **Condition** can check any of the following:

* **Vessel type** - fermenter, brite tank, cask and so on.
* **Vessel group**
* **Vessel status** - your own statuses, such as "Dry hopping" or "Cold crashing". See [How to create and set your own vessel status icons](https://breww.com/docs/vessel-status-icons/).
* **Site**
* **Days since vessel was filled**
* **Days since batch started** - for a batch with no start date, this counts from when the vessel was filled.
* The drink, its style and its tags. These are named after your own drink title, so a brewery sees **Beer**, **Beer style** and **Beer tag**.
* **Day of week**

As in every rules editor, a single condition can combine several checks with **AND** or **OR**, and **Add group** lets you bracket them together.

![A batch reading schedule condition named "Cold crashing?", checking that the vessel status is in Chilling](https://storage.googleapis.com/breww-user-uploads/markdown-embedded/901dd2bd40750ce8fb93f15b7b1918cdff90d719caed8d15e282ddbf4d4a2206.png)

## Setting up a reading schedule

Drag a **Reading schedule** block onto the canvas to open its form. The optional **Label** is only there to help you recognise the block on the canvas and has no effect on your rules.

![The batch reading schedule form, set to every day using the Daily readings form with 2 readings needed each time](https://storage.googleapis.com/breww-user-uploads/markdown-embedded/909d0bf6c99eb2caecd0f7363a965cdf2a46274d80ce13168c38cff7592e5b68.png)

### How often readings are due

**Frequency** has four options:

* **Every X days** - **Every how many days** is counted from the day the vessel was filled. Enter `1` for every day, `2` for every other day, and so on.
* **Weekly on chosen days** - select the **Days of the week** readings are due on. Choosing Monday and Thursday gives you twice a week.
* **Monthly on a day of the month** - enter a **Day of the month** from 1 to 31. In a shorter month, a day past the end of the month uses the last day instead, so 31 means 30 April and 28 February.
* **Monthly on a weekday (e.g. first Monday)** - choose a **Week of the month** and a **Day of the week**. **Last** means the final one in the month, whether that is the fourth or the fifth.

> **Warning:**
> Only **Every X days** counts from the day the vessel was filled. The weekly and monthly options follow the calendar, so a vessel that has already been full for a while can show as **Overdue** as soon as you set one of them up.

### What to record

**Batch reading form** is the form that opens when someone records a reading for a vessel that reaches this point. See [Batch reading forms](https://breww.com/docs/fermentation-readings-form/) for how to build these.

**Readings needed each time** is how many readings the vessel needs on each occasion readings are due. Enter `2` if you want a morning and an afternoon reading.

> **Note:**
> Each due reading stays open until the next one is due. On a daily schedule that means until the end of the day; on a weekly schedule, until the next chosen day comes around.

### Turning readings off for some vessels

Enable **No readings required** to switch batch readings off entirely for vessels that reach this point. The rest of the form is hidden, and those vessels show as **Off** on the production dashboard instead of asking for readings.

## What counts as a completed reading

A reading entry only counts towards a vessel's schedule when all of the following are true:

* It was taken in that vessel, or recorded against the whole batch.
* It has a value for every reading the scheduled form marks as **Required**.
* It falls inside the current due window.

The required readings rule matters most with hardware integrations. A temperature-only reading arriving from a fermentation monitor does not complete a schedule whose form requires gravity. If a form has no required readings at all, any reading entry counts.

## Reading statuses

| Status       | What it means                                                             |
| ------------ | ------------------------------------------------------------------------- |
| **Overdue**  | Readings were due on an earlier date and not all of them have been taken. |
| **Due**      | Readings are due today and not all of them have been taken.               |
| **Done**     | Every reading for the current window has been taken.                      |
| **Not due**  | The vessel is on a schedule, but nothing is due at the moment.            |
| **Off**      | The vessel reaches a schedule with **No readings required**.              |
| **No rules** | The vessel's path doesn't reach a **Reading schedule** block at all.      |

If you see **No rules**, follow that vessel's path across the canvas. A condition somewhere is missing a line out of its green check mark or its red cross.

## Where your schedules show up

The **Batch readings** tab on the production dashboard shows a tile per filled vessel at the current site, with its status, its schedule, a mark for each reading done or outstanding, and a **Record reading** button that opens the scheduled form.

![The Batch readings tab on the production dashboard, showing a tile per vessel with a Due badge and a Record reading button](https://storage.googleapis.com/breww-user-uploads/markdown-embedded/8909e2e24bec1604dce47674244caf803f95b534a2807b53f9b1a3b77a737c90.png)

A batch's **Analysis** tab also has a **Reading schedules** card covering just that batch's vessels.

## Related guides

* [Batch reading forms](https://breww.com/docs/fermentation-readings-form/)
* [Using the rules editor](https://breww.com/docs/rules-editor/)
* [Navigating the Production dashboard](https://breww.com/docs/production-dashboard/)
* [Recording batch readings in the Analysis tab](https://breww.com/docs/batch-fermentation-analysis/)
