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

# Chart builder

> Costruisci grafici personalizzati da qualsiasi oggetto del workspace.

Il **chart builder** è l'editor dove costruisci un singolo grafico: scegli sorgente, metrica, dimensione, tipo, personalizzazione visiva.

<Frame>
  <img src="https://mintcdn.com/agevole/cM9eEPJE8FVhTNOb/images/report/it/chart-builder.svg?fit=max&auto=format&n=cM9eEPJE8FVhTNOb&q=85&s=7d5595ad180c1ccfdf3ed95b2583576c" alt="Chart builder con selezione sorgente, metrica, raggruppamento e anteprima" width="1200" height="720" data-path="images/report/it/chart-builder.svg" />
</Frame>

## Anatomia di un grafico

<Steps>
  <Step title="Sorgente dati">
    * **Oggetto**: Deal, Company, Contact, Task, Invoice, Project, ecc.
    * **Lista**: parti da una [lista](/it/liste/overview) esistente (con filtri già applicati)
    * **Multipla**: unione o join di più sorgenti (per grafici complessi)
  </Step>

  <Step title="Filtri">
    Restringi i dati:

    * `valore > 10000`
    * `stage in ("Proposal", "Negotiation")`
    * `created_at negli ultimi 90 giorni`
  </Step>

  <Step title="Metrica">
    Cosa misuri:

    * `count` (numero di record)
    * `sum(field)` (es. somma valore deal)
    * `avg(field)` (media)
    * `min` / `max`
    * `count_distinct` (unici)
    * Metriche custom (formula)
  </Step>

  <Step title="Raggruppa per (dimensione)">
    Una o più dimensioni:

    * Campo categorico: `stage`, `owner`, `industry`
    * Data: `per giorno`, `per settimana`, `per mese`, `per trimestre`
    * Numerico: bucket (es. `valore deal: 0-10k, 10-50k, 50-100k, 100k+`)
  </Step>

  <Step title="Tipo grafico">
    Arya suggerisce il tipo ottimale in base alla metrica e dimensione. Puoi sovrascrivere.
  </Step>

  <Step title="Personalizzazione visiva">
    Colori, label, legenda, sfondo, formattazione valori (€, %, K/M).
  </Step>
</Steps>

## Esempi pratici

<AccordionGroup>
  <Accordion title="Fatturato mensile ultimi 12 mesi">
    Sorgente: `Invoice` (filtro: status = Pagata, date in ultimi 12 mesi).
    Metrica: `sum(amount)`.
    Raggruppa: per mese.
    Tipo: line chart.
  </Accordion>

  <Accordion title="Top 10 clienti per revenue">
    Sorgente: `Invoice`.
    Metrica: `sum(amount)`.
    Raggruppa: per `company.name`.
    Ordina: desc, top 10.
    Tipo: bar chart orizzontale.
  </Accordion>

  <Accordion title="Funnel conversione pipeline">
    Sorgente: `Deal`.
    Metrica: `count`.
    Raggruppa: per `stage` (ordinato).
    Tipo: funnel.
  </Accordion>

  <Accordion title="Task scaduti per owner">
    Sorgente: `Task` (filtro: overdue=true).
    Metrica: `count`.
    Raggruppa: per `assignee.name`.
    Tipo: bar chart, colore = priority.
  </Accordion>

  <Accordion title="Win rate per commerciale">
    Sorgente: `Deal` (closed only).
    Metrica custom: `count(won) / count(total) * 100`.
    Raggruppa: per `owner`.
    Tipo: bar con target.
  </Accordion>
</AccordionGroup>

## Metriche custom (formule)

Per metriche non coperte dai aggregatori base, usa formule:

```
weighted_pipeline = sum(value * probability / 100)
conversion_rate = count_distinct(won_deals) / count_distinct(all_deals) * 100
avg_cycle_time = avg(closed_at - created_at)
```

Supporto per operatori aritmetici, funzioni date, condizioni IF.

## Confronto periodi

Ogni grafico può mostrare **confronto** con periodo precedente:

* Vs periodo precedente (MoM, YoY)
* Vs target fissato
* Vs media storica

Appare come overlay o seconda serie.

## Salva e riutilizza

Un grafico salvato può essere:

* Usato in più dashboard
* Condiviso come "grafico unico" via link
* Esportato (immagine, SVG, dati)

## Domande frequenti

<AccordionGroup>
  <Accordion title="I grafici si aggiornano in tempo reale?">Sì. Puoi comunque impostare cache se performance è un problema.</Accordion>
  <Accordion title="Posso combinare dati di più oggetti?">Sì, con **join** (es. deal + company per filtrare per settore). Attenzione alle performance su dataset enormi.</Accordion>
  <Accordion title="Come gestisco timezone?">Arya usa timezone workspace per aggregazioni temporali. Configurabile a livello di grafico se serve diverso.</Accordion>
</AccordionGroup>
