# The flow of data

Distributional uses data generated by your AI-powered app to study its behavior and alert you to valuable insights or worrisome trends.  The diagram below gives a quick summary of this process:

* Each app usage involves input(s), the resulting output(s), and context about that usage
  * Example: Input is a question about the city of Toronto; Output is your app’s answer to that question; Context is the time/day that the question was asked.
* As the app is used, you record and store the usage in a data warehouse for later review
  * Example: At 2am every morning, an airflow job parses all of the previous day’s app usages and sends that info to a data warehouse.
* When data is moved to your data warehouse, it is also submitted to dbnl for testing.
  * Example: The 2am airflow job is amended to include data augmentation by dbnl Eval and uploading of the resulting dbnl Run to trigger automatic app testing.

<figure><img src="/files/KTKNx9Dib19ujn84nlyU" alt=""><figcaption><p>Runs in dbnl are created from data produced during the normal operation of your app, such as prompts (inputs) and responses (outputs).</p></figcaption></figure>

You can read more about the dbnl specific terms [earlier in the documentation](/v0.21.x/learning-about-distributional/the-distributional-framework.md).  Simply stated, a dbnl Run contains all of the data which dbnl will use to test the behavior of your app – insights about your app’s behavior will be derived from this data.

A dbnl Run usually contains many (e.g., dozens or hundreds) rows of inputs + outputs + context, where each row was generated by an app usage.  Our insights are statistically derived from the distributions estimated by these rows.

[dbnl Eval](/v0.21.x/using-distributional/python-sdk/eval-module.md) is our library that provides access to common, well-tested GenAI evaluation strategies.  You can use dbnl Eval to augment data in your app, such as the inputs and outputs.  Doing so produces a broader range of tests that can be run, and it allows dbnl to produce more powerful insights.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.dbnl.com/v0.21.x/learning-about-distributional/data-in-distributional/the-flow-of-data.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
