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

# Overview

> Task-oriented modeling patterns with step-by-step examples

## Recipes

Each recipe pairs a modeling pattern with a step-by-step
implementation - showing how to combine entities, attributes,
metrics, and parameters to solve real business questions in
Honeydew.

## What a recipe contains

Most recipes include some or all of these sections:

* **When would you use this?** - the business question
  the recipe answers
* **Prerequisites** - setup needed before you start
* **Step-by-step implementation** - the objects to create,
  with full YAML
* **Sample output** - results you can verify against
* **Key design notes** - design decisions and trade-offs

## Dataset: tasty\_bytes

All recipes use the `tasty_bytes` workspace - a food-truck order dataset. The
key entities are:

| Entity             | Type       | Description                                  |
| ------------------ | ---------- | -------------------------------------------- |
| `order_detail`     | Fact       | Line-item orders - revenue per item sold     |
| `order_header`     | Fact       | Order-level - customer, date, city, truck    |
| `menu`             | Dimension  | Menu items - category and subcategory        |
| `date`             | Time Spine | Calendar spine used by time-based metrics    |
| `truck`            | Dimension  | Truck fleet - make, model, region            |
| `shifts`           | Fact       | Shift schedule - start/end times per truck   |
| `customer_loyalty` | Dimension  | Loyalty members - demographics, contact info |

```mermaid theme={null}
erDiagram
    order_detail {
        float  revenue
        string item_subcategory
    }
    order_header {
        string customer_id
        date   order_date
        string city
        string truck_brand_name
    }
    menu {
        string item_subcategory
        string menu_type
    }
    date {
        date date_day
    }
    truck {
        string make
        string model
        string region
    }
    shifts {
        timestamp shift_start_time
        timestamp shift_end_time
    }
    customer_loyalty {
        string first_name
        string e_mail
        string city
    }

    order_header ||--o{ order_detail : "has line items"
    order_header }o--|| menu : "ordered item"
    order_header }o--|| truck : "served by"
    order_header }o--|| shifts : "during shift"
    order_header }o--|| customer_loyalty : "placed by"
```

## Available recipes

### Filtered metrics

<CardGroup cols={2}>
  <Card title="Metric for a specific category" href="/recipes/category-revenue">
    Isolate revenue for a specific product category using
    a filtered metric.
  </Card>

  <Card title="Category share of total" href="/recipes/category-revenue-share">
    Compute a specific category's share of total revenue
    using ratio metrics.
  </Card>
</CardGroup>

### Time-based metrics

<CardGroup cols={2}>
  <Card title="Active customers & stickiness" href="/recipes/active-customers">
    Measure customer engagement with daily, weekly, and
    monthly active user counts.
  </Card>

  <Card title="Period-over-period growth" href="/recipes/yoy-revenue-growth">
    Compare revenue to the same period last year and
    compute the growth rate.
  </Card>
</CardGroup>

### Fixed and dynamic grouping

<CardGroup cols={2}>
  <Card title="Average order value" href="/recipes/avg-order-value">
    Average spend per order, computed correctly regardless
    of how the data is sliced.
  </Card>

  <Card title="Share above a threshold" href="/recipes/high-value-order-share">
    Share of orders above a threshold, using either a fixed
    amount or a data-driven percentile.
  </Card>

  <Card title="Average daily revenue" href="/recipes/avg-daily-revenue">
    Average revenue per day using dynamic grouping that
    adapts to the user's slicing context.
  </Card>
</CardGroup>

### BI parameters

<CardGroup cols={1}>
  <Card title="BI parameters" href="/recipes/dynamic-bi-parameters">
    Route a single metric to different calculations
    based on a BI user's filter selection.
  </Card>
</CardGroup>

### Domains

<CardGroup cols={1}>
  <Card title="Domain hierarchy" href="/recipes/domain-hierarchy">
    Build reusable base domains that compose into team-specific,
    access-controlled views.
  </Card>
</CardGroup>

## Related reading

* [Entities](/modeling/entities),
  [Attributes](/calculations/attributes),
  and [Metrics](/calculations/metrics) - the primitives
  used across recipes
* [Advanced Modeling](/advanced-modeling/order-of-computation)
  * patterns like time metrics, shared dimensions,
    and slowly changing dimensions
* [Conditional filtering](/advanced-modeling/conditional-filtering)
  * `GET_FIELD_SELECTION` reference for the BI parameters recipe
