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

# Harvest source

> Connect Harvest to Chartcastr for automated time tracking, billing, and expense charts. Monitor team hours, revenue, and uninvoiced work over time.

<Info>
  **Paid Feature** — Harvest is available on paid plans. [See pricing](https://chartcastr.com/pricing).
</Info>

## Overview

Use Harvest as a data source for Chartcastr. Connect your Harvest account and create charts for time tracking, billing, revenue, and expenses, then deliver them automatically to Slack or email.

Chartcastr connects with **read-only** OAuth access to your Harvest account. No write permissions are requested, and no data is stored between runs.

## Prerequisites

* A Harvest account with **administrator access** (required to authorize the OAuth connection)
* A paid Chartcastr plan ([see pricing](https://chartcastr.com/pricing))

## Setup

<Steps>
  <Step title="Connect your Harvest account">
    In Chartcastr, go to [Settings > Source Integrations](https://chartcastr.com/admin/settings/source/integrations) and find **Harvest**. Click **Connect** and complete the OAuth flow. You will be redirected to Harvest to authorize access.
  </Step>

  <Step title="Select a metric">
    Choose the time tracking or billing metric you want to track. Each metric becomes its own source. A live preview of your data will appear inline.
  </Step>

  <Step title="Create a connection">
    Pick a destination (Slack or email), set the schedule, and optionally enable AI summaries. Chartcastr will automatically generate and deliver AI-analyzed charts on your schedule.
  </Step>
</Steps>

## Available Charts

Chartcastr supports **10 pre-built Harvest metrics** across four categories: time tracking, revenue, expenses, and uninvoiced work.

### Time Tracking

| Metric                       | Chart Type | Description                                    |
| ---------------------------- | ---------- | ---------------------------------------------- |
| **Hours by Client**          | Bar        | Total tracked hours broken down by client      |
| **Hours by Project**         | Bar        | Total tracked hours broken down by project     |
| **Hours by Team Member**     | Bar        | Total tracked hours broken down by team member |
| **Hours by Task**            | Bar        | Total tracked hours broken down by task type   |
| **Billable vs Non-Billable** | Combo      | Billable and non-billable hours over time      |

### Revenue

| Metric                 | Chart Type | Description                            |
| ---------------------- | ---------- | -------------------------------------- |
| **Revenue by Client**  | Bar        | Billable amount broken down by client  |
| **Revenue by Project** | Bar        | Billable amount broken down by project |

### Expenses

| Metric                   | Chart Type | Description                                    |
| ------------------------ | ---------- | ---------------------------------------------- |
| **Expenses by Category** | Bar        | Total expenses broken down by expense category |
| **Expenses by Project**  | Bar        | Total expenses broken down by project          |

### Uninvoiced

| Metric                    | Chart Type | Description                               |
| ------------------------- | ---------- | ----------------------------------------- |
| **Uninvoiced by Project** | Bar        | Uninvoiced amounts broken down by project |

<Card title="View detailed chart descriptions" icon="list" href="/integrations/sources/harvest/available-charts">
  See the full list with descriptions and recommended use cases.
</Card>

## Date Range

Time-series metrics use the **last 12 weeks** of data by default.

## Authentication

Harvest uses OAuth 2.0 for secure authentication. Chartcastr requests read-only access to:

* Time entries and timesheets
* Projects and tasks
* Clients
* Users and team members
* Invoices and expenses

Tokens are automatically refreshed in the background. Access tokens expire after 18 hours and are proactively refreshed. Refresh tokens are valid for 30 days. If a token becomes invalid, you'll be prompted to reconnect.

## FAQ

<AccordionGroup>
  <Accordion title="Does Harvest support multiple accounts?">
    Harvest OAuth grants access to a single account per connection. The account is identified by the Harvest Account ID selected during authorization.
  </Accordion>

  <Accordion title="How often is data refreshed?">
    Data is fetched fresh from Harvest every time a pulse fires. Chartcastr does not cache or store your Harvest data between runs.
  </Accordion>

  <Accordion title="What date range is used?">
    Time-series metrics use the last 12 weeks of data by default.
  </Accordion>

  <Accordion title="Is my Harvest data stored?">
    No. Chartcastr fetches data on-demand when a pulse fires, generates the chart and AI summary, delivers it to your destination, and discards the raw data. Only the rendered chart image and summary text are retained as part of the pulse delivery history.
  </Accordion>
</AccordionGroup>

## Next Steps

<CardGroup cols={2}>
  <Card title="View all available charts" icon="chart-bar" href="/integrations/sources/harvest/available-charts">
    See every time tracking, revenue, expense, and uninvoiced metric available for charting.
  </Card>

  <Card title="Create a connection" icon="plug" href="/quickstart">
    Set up automated chart delivery from Harvest to Slack or email.
  </Card>

  <Card title="View all integrations" icon="grid" href="/integrations/sources">
    Browse all available data source integrations.
  </Card>
</CardGroup>
