> ## 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.

# Challenge report

> Download a challenge's report and read what each of its columns holds.

This page helps you [download a challenge's report](#download-the-report) and read what's in it. The report is a CSV file with a row for each change to a customer's progress on the challenge. Use it to see which purchases counted, for which customers, and how far each customer has got.

## At a glance

The columns, in the order the file has them:

| Column | What it holds |
| - | - |
| **MemberId** | The customer's ID. |
| **CardId** | The ID of the customer's [card](/business-documentation/activities/challenges). A renewable challenge gives the customer a new card, with a new ID, each time they complete one. |
| **ActivityId** | The challenge's ID. It's the one shown at the top of **Activity details**. |
| **ActivityName** | The challenge's **Activity name**. |
| **OfferId** / **BonusAmount** | The ID of the offer behind a coupon reward, or the amount of a bonus reward. **OfferId** is only filled in when the challenge has one reward and it's a coupon. **BonusAmount** is only filled in when that one reward is a bonus. Both are empty for a custom reward, for a lottery with several prizes, and for every tiered challenge. |
| **RequiredProgress** | How much progress completes a card. It's the [earn rule](/business-documentation/activities/challenges/accumulation-types)'s **Count** or **Amount**, or a number of visits or purchases. It shows *Multiple rules* for every [tiered challenge](/business-documentation/activities/challenges/create-a-challenge#tiered-challenges), and for a **One purchase** challenge with more than one earn rule. |
| **ActivationLimit** | How many cards one customer can complete. It's 1 for **One-time**, the **Total number of cards issued** for **Auto-renewable**, and *Unlimited* for **Unlimited**. See [One-time or renewable](/business-documentation/activities/challenges/accumulation-types#one-time-or-renewable). |
| **StartTime** / **EndTime** | The challenge's start and end dates. |
| **PickUpEndDate** | The reward's **Redemption expire date**. It's empty when the reward uses **Validity period of redemption** instead of a fixed date. |
| **AccrualValue** | Nothing. It's always empty. |
| **ActivatedAt** | When the customer's card was activated. |
| **ProcessedAt** | When the progress was recorded, not when the purchase was made. |
| **ClosedAt** | When the card was completed. It's empty while the card is still open. |
| **ReceiptId** | The ID of the receipt for the purchase the progress came from. |
| **StoreId** / **ChainId** | The IDs of the store and chain where that purchase was made. |
| **Progress** | How much this one purchase changed the card's progress. It isn't a running total. To see how far a customer has got on a card, add up the **Progress** on every row with that card's **CardId**. |

The columns about the challenge itself, such as its name, dates, limits and rewards, show its settings as they are now. They're the same on every row. If you edit the challenge, the older rows show the new settings too.

## One row per progress change

The report gets a new row each time a purchase changes a customer's progress. That means:

* **A purchase that didn't count has no row.** A customer who activated the challenge but hasn't yet made a purchase that counts isn't in the report either.
* **A refund has a row of its own.** It takes progress off the customer's current card, but never more than that card has. So its **Progress** is negative, or zero when that card has no progress yet. On a **One purchase** challenge, it's always zero. See [A refund took progress back](/business-documentation/activities/challenges/why-isnt-a-customers-challenge-progressing#a-refund-took-progress-back).
* **One purchase can have two rows.** When a purchase completes a card, that row's **Progress** is only what the card still needed. Any progress left over goes onto the customer's next card, in a second row with the same **ReceiptId**.

Rows are sorted by customer. Each customer's rows are then sorted by **ClosedAt**, with the most recently completed card first. Rows for a card that's still open come last. Within one card, the rows aren't in date order, so sort by **ProcessedAt** to see them in order.

For example, here are one customer's rows on a **Multiple purchase** challenge with a **Purchase amount** of 180. The data is made up, and only some of the columns are shown.

| MemberId | CardId | RequiredProgress | ClosedAt | ReceiptId | Progress |
| - | - | - | - | - | - |
| TEST-0001 | card-A | 180 | 2026-10-12 16:41 | R-1001 | 120 |
| TEST-0001 | card-A | 180 | 2026-10-12 16:41 | R-1002 | 60 |
| TEST-0001 | card-B | 180 | | R-1002 | 40 |
| TEST-0001 | card-B | 180 | | R-1003 | 30 |
| TEST-0001 | card-B | 180 | | R-1004 | -25 |

* **card-A is complete.** Its **Progress** adds up to the **RequiredProgress**, 120 + 60 = 180, so every row of the card shows **ClosedAt**.
* **R-1002 has two rows.** It was a purchase of 100. Only 60 of it was needed to complete card-A. The other 40 went onto the next card.
* **card-B is still open.** It has 40 + 30 - 25 = 45 of the 180 it needs, and no **ClosedAt**. R-1004 is a refund, so its **Progress** is negative.
* **The completed card comes first.** The open card is last.

## Download the report

You can only download the report for **Active** and **Expired** challenges.

1. Open the campaign that holds the challenge.
2. In the campaign's activity list, open the **⋯** menu on the challenge's row.
3. Select **Download report**.

The file downloads as `ChallengeReport-<challenge name>.csv`.

While the challenge is running, the file you get can be a copy made up to 30 minutes earlier. Purchases from after that copy aren't in it yet. To see them, download again later. The first download after the challenge's end date makes a final report. Every download from then on gets that same file, even if Lobyco processes more purchases later.

If the report is still being made when you download it, the download fails. Wait about 15 minutes and try again.

## Related

* [Why isn't a customer's challenge progressing?](/business-documentation/activities/challenges/why-isnt-a-customers-challenge-progressing) — how to use this report to find out why a purchase didn't count.
* [Accumulation types](/business-documentation/activities/challenges/accumulation-types) — what counts as progress for each type of challenge.


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