> For the complete documentation index, see [llms.txt](https://docs.coupler.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.coupler.io/sources/category/finance-and-accounting/bunny-inc/best-practices.md).

# Best Practices

## Recommended setup

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Start with your core billing entities</strong></td><td>Set up Invoices, Payments, and Subscriptions first. These three entities cover the most common finance reporting needs and give you a solid foundation before adding supporting entities like Quote charges or Tenants.</td></tr><tr><td><strong>Join Invoices with Invoice items</strong></td><td>The Invoice entity gives you header-level totals, but the real insight is in Invoice items — product-level revenue breakdown. Use Coupler.io's Join transformation to connect them on Invoice ID for line-level reporting.</td></tr><tr><td><strong>Set an appropriate start date</strong></td><td>On your first run, use the date picker to set a start date that matches your reporting needs. Going back too far on Transactions or Payments can result in very large initial loads. Start with the current fiscal year and expand back if needed.</td></tr><tr><td><strong>Use Append for multi-account setups</strong></td><td>If you manage multiple Bunny, Inc. accounts, create a separate source for each account and use Coupler.io's Append transformation to combine them into one unified dataset in your destination.</td></tr></tbody></table>

## Data refresh and scheduling

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Refresh Transactions and Payments frequently</strong></td><td>These entities change constantly. Schedule them to refresh at least daily — or more often if you're running real-time revenue dashboards. Static entities like Products and Plans only need weekly refreshes.</td></tr><tr><td><strong>Refresh Account balances often</strong></td><td>Account balances are a snapshot, not a ledger. If you're tracking balance trends over time, refresh this entity frequently and store snapshots in BigQuery or a Google Sheet with appended history.</td></tr></tbody></table>

## Performance optimization

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Split high-volume entities into separate data flows</strong></td><td>If Transactions or Subscription charges contain years of history, pulling them in a single data flow can be slow. Split them into a separate data flow with a narrower date range and run the historical backfill once, then set a rolling schedule going forward.</td></tr><tr><td><strong>Send financial summaries to AI destinations</strong></td><td>Instead of manually reviewing exported data, send Payments or Subscription charges to Claude, ChatGPT, or Gemini. Ask the AI to summarize revenue trends, flag late payments, or identify churn risk from cancellation patterns.</td></tr></tbody></table>

## Common pitfalls

{% hint style="danger" %}
**Don't confuse Invoices with Payments or Transactions.** Invoices represent what was billed. Payments represent what was collected. Transactions are raw processing records. Mixing these up in revenue reports will lead to incorrect totals — make sure you're using the right entity for the metric you're calculating.
{% endhint %}

{% columns %}
{% column %}
**Do**

* Join Invoice items to Invoices for product-level revenue reporting
* Use a meaningful start date to limit initial data volume
* Keep Transactions and Payments in separate data flows from static catalog data (Products, Plans)
* Verify totals match Bunny, Inc. before sharing reports
  {% endcolumn %}

{% column %}
**Don't**

* Use Account balances as a substitute for a full transaction ledger
* Pull all 15 entities into a single data flow — it makes troubleshooting harder
* Skip the manual run before setting up a schedule
* Ignore the Tenants entity if you're on a multi-tenant setup — it's key for segmentation
  {% endcolumn %}
  {% endcolumns %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.coupler.io/sources/category/finance-and-accounting/bunny-inc/best-practices.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
