> ## Documentation Index
> Fetch the complete documentation index at: https://help.lobyco.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Why does my segment show a missing data warning?

> What the data warnings under a segment rule, on a block and at run time mean, and what to do about each one.

Lobyco checks that the purchase data behind your segment rules has arrived before a campaign uses it. When some of it hasn't, a warning shows under the rule, on the block, and when you run the campaign. This page helps you read the warning and decide whether to wait, change the dates or run anyway.

## Start here: read the message under the rule

1. Open the campaign on its **Orchestration** view and double-click the block that shows the warning. It's a **Member segment**, **Split** or **Enrich** block.
2. In a **Member segment** block, open **Segment attributes** and look under each rule. In a **Split** block, the message sits beside each group. In an **Enrich** block, it sits beside each attribute in the list.

Each message ends with **Last update** and a date and time. That's when Lobyco last received complete data for that attribute. Everything up to that moment is complete, and anything after it may not have arrived yet.

The messages under the rules also show when you build a segment under **Segmentation** → **Segment templates**.

Lobyco checks purchase data, such as **Amount spent**, **Receipt count** and **Purchase date**. Membership, consent and other data aren't checked, so their rules never show *Missing data* or *Unavailable data*.

## Reading the message

| What you see | Where | What it means | Can the campaign run? |
| - | - | - | - |
| *Data from today may be incomplete.* | Under a rule, in grey | The rule's dates include today, and today's purchases are still coming in. | Yes. |
| *Missing data. Last update: …* | Under a rule, beside a group or beside an attribute, in orange | Some of the days in the rule's dates have no data yet. | Yes, if you start the run yourself and confirm it. A scheduled run fails. |
| *Unavailable data. Last update: …* | Under a rule, beside a group or beside an attribute, in orange | None of the days in the rule's dates have data yet. | No. |
| *Missing data for some attributes* | On the block, on the canvas | At least one rule in the block shows *Missing data*. | As for *Missing data*. |
| *Unavailable data for some attributes* | On the block, on the canvas | At least one rule in the block shows *Unavailable data*. | No. |

### When you run it yourself

When you start a run from **Execute**, **Count** or **Simulate**, Lobyco checks the data again first. If anything is missing, **Missing Data Detected** opens before the run starts. It shows **Total outdated attributes** and **Total blocks affected**.

* If some data is missing, the dialog has **Proceed**. Select it to run on the data that has arrived. Purchases from the missing days aren't counted, so some customers can be left out. The run then ends as **Done with warning**.
* If data is unavailable, the dialog has only **Okay**. The run can't start until you change the dates or the data arrives.

### When a scheduled run starts

A scheduled run has nobody to ask, so it's stricter. If any rule has missing or unavailable data when the run starts, the run fails. The blocks with the missing data show **Failed**, the other blocks are skipped, and nothing is sent to customers. You and Lobyco both get an email about the failed run.

A failed run isn't tried again. The next scheduled run goes ahead as normal.

Runs started by a trigger block, such as **Customer event** or **Inbound API**, never stop for missing data.

## Working through the likely causes

### Your rule's dates include today

You see *Data from today may be incomplete.* There's nothing to fix. To leave today out, end the range yesterday. With **Float**, **to** 0 is today, so set **to** to 1.

### Last night's data hasn't arrived yet

You see *Missing data*, and **Last update** is from yesterday or earlier. Yesterday's purchases are loaded overnight, and they're usually complete by 2:00 AM.

Wait, then open the block again. If you schedule a campaign that looks at yesterday, set it to run after 2:00 AM.

### Your rule has no dates at all

You see *Missing data* on a rule such as **Amount spent** or **Receipt count**, which has no dates of its own. Without a **Purchase date** rule, a purchase attribute looks at the last 90 days, up to today. So any gap at the end of those 90 days shows as missing data.

Add a **Purchase date** rule that ends before the **Last update**, or wait for the data. [Create a segment](/business-documentation/audiences-and-data/create-a-segment#add-your-rules) shows how to set the window.

### All the dates in your rule are after the last update

You see *Unavailable data*. For example, the rule looks at yesterday's purchases, and **Last update** is from the day before. There's no data at all for the days the rule asks about.

Move the rule's dates to before the **Last update**, or wait for the data. Until then, the campaign can't run.

### An Enrich block has a gap

An **Enrich** block adds attribute values to each customer, with no dates to narrow down. So its data has to be complete up to the end of yesterday. If it isn't, the run stops before it starts, even when the block says *Missing data* rather than *Unavailable data*.

Wait for the data, or take the attribute out of the block. [Block reference](/business-documentation/campaigns/orchestration-canvas/block-reference#enrich) explains what **Enrich** does.

### A scheduled run failed overnight

In **History** on the canvas, the run shows **Failed**. Nothing was sent to customers. It isn't tried again, so once the data has arrived, run the campaign yourself.

If the next scheduled run has already gone, it looks at a different day. For example, a daily campaign finds customers who bought crisps yesterday. Saturday's run fails because Friday's purchases haven't arrived. Sunday's run works, but it looks at Saturday, so Friday's customers are never reached. To reach them, run the campaign once with its **Purchase date** rule set to Friday.

## If it still doesn't add up

The check only looks at whether data has arrived, not whether it's right. Lobyco also flags days with unusually few purchases. Whether the data itself is correct is up to the systems that send it, such as your checkout.

If **Last update** is more than a day old and doesn't move the next morning, or the numbers look wrong with no warning at all, send these details to Lobyco support:

* The campaign's name and **ID**
* The block's name, and whether it's a **Member segment**, **Split** or **Enrich** block
* Each attribute with a warning, and the **Last update** date and time it shows
* For a run, its name and **Run** number, when it started, and its status, from **History** on the canvas
* When you saw the warning, with the date and time

## Related

* [Create a segment](/business-documentation/audiences-and-data/create-a-segment) — add rules and set a **Purchase date** window.
* [Segment attributes](/business-documentation/audiences-and-data/segment-attributes) — which attributes are in the **Purchase** category.
* [Block reference](/business-documentation/campaigns/orchestration-canvas/block-reference#member-segment) — what the **Member segment**, **Split** and **Enrich** blocks do.
* [Schedule and run a campaign](/business-documentation/campaigns/schedule-and-run-a-campaign) — start a run, schedule one, and check how it went.
* [Find and manage campaigns](/business-documentation/campaigns/find-and-manage-campaigns) — what run statuses such as **Done with warning** and **Failed** mean.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.