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

# Aggrega aziende

> Ottieni statistiche finanziarie aggregate — conteggio, media, mediana, min, max — per aziende che corrispondono a filtri per settore, regione, dimensione e metriche.

`syrto_aggregate_companies` restituisce riepiloghi statistici (conteggio, media, mediana, min, max) per le aziende che corrispondono ai tuoi filtri. Usalo per comprendere i segmenti di mercato — es. "ricavi medi delle medie aziende manifatturiere in Veneto" o "quante grandi aziende ci sono nel settore C".

<Tip>
  Questo strumento restituisce **statistiche aggregate**, non dati sulle singole aziende. Per trovare aziende specifiche con gli stessi filtri, usa [`syrto_search_companies`](/it/mcp/tools/search-companies).
</Tip>

## Quando usare questo strumento

* Contare le aziende che corrispondono a un insieme di criteri
* Ottenere statistiche di media, mediana o intervallo per una metrica in un segmento
* Confrontare un'azienda con il suo segmento di mercato (benchmarking)

## Argomenti

<ParamField query="year" type="integer" required>
  Anno fiscale da aggregare.
</ParamField>

<ParamField query="aggregate_metric_slugs" type="string (JSON array)" required>
  Array JSON di 1–10 slug di metriche per cui calcolare le statistiche. Usa [`syrto_search_metric_definitions`](/it/mcp/tools/metric-definitions) o [`syrto_list_available_metrics`](/it/mcp/tools/list-available-metrics) per trovare gli slug validi.

  **Esempio:** `'["revenues_from_sales_and_services", "ebitda"]'`
</ParamField>

<ParamField query="anagraphic_filters" type="string (JSON object)">
  Filtri del profilo aziendale come oggetto JSON. Tutti i campi sono opzionali:

  | Campo                                      | Tipo   | Descrizione                                                                                                                                                     |
  | ------------------------------------------ | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  | `nace`                                     | string | Codice settoriale EU NACE. Rileva automaticamente il livello: lettera di sezione (`A`–`U`), divisione (2 cifre), gruppo (es. `"10.1"`), classe (es. `"10.11"`). |
  | `nuts`                                     | string | Codice regionale EU NUTS. Rileva automaticamente il livello: livello 1 (3 caratteri), livello 2 (4 caratteri), livello 3 (5 caratteri).                         |
  | `semantic_search`                          | string | Descrizione in linguaggio naturale per cercare nei profili aziendali (max 500 caratteri).                                                                       |
  | `age`                                      | object | Filtro per eta dell'azienda con `min` e/o `max` in anni.                                                                                                        |
  | `shareholder_age`                          | object | Eta media dei soci con `min` e/o `max` in anni.                                                                                                                 |
  | `beneficial_owner_age`                     | object | Eta media dei titolari effettivi con `min` e/o `max` in anni.                                                                                                   |
  | `executive_officer_age`                    | object | Eta media dei dirigenti esecutivi (amministratori delegati, direttori generali) con `min` e/o `max` in anni.                                                    |
  | `representation_and_authority_officer_age` | object | Eta media dei membri con poteri di rappresentanza e firma, con `min` e/o `max` in anni.                                                                         |
  | `target_market`                            | string | Uno tra: `B2B`, `B2C`, `B2G`, `B2B2C`, `B2B2G`, `C2C`, `C2B`, `G2C`, `G2B`.                                                                                     |
  | `match_cutoff`                             | float  | Punteggio minimo di similarita semantica (0.0–1.0) quando si usa `semantic_search`.                                                                             |
  | `country_code`                             | string | Codice paese ISO 3166-1 alpha-2 (es. `"IT"`).                                                                                                                   |

  **Esempio:** `'{"nace": "C", "nuts": "ITH5"}'`
</ParamField>

<ParamField query="size" type="string[]">
  Una o più classificazioni dimensionali: `"XS"`, `"S"`, `"M"`, `"L"` (es. `["S", "M"]`).
</ParamField>

<ParamField query="metric_filters" type="string (JSON array)">
  Fino a 10 filtri per valore di metrica per restringere la popolazione. Ogni oggetto ha `slug` (obbligatorio), `min` (opzionale), `max` (opzionale).

  **Esempio:** `'[{"slug": "revenues_from_sales_and_services", "min": 1000000}]'`
</ParamField>

<ParamField query="employees" type="string (JSON object)">
  Filtro per numero di dipendenti con `min` e/o `max`.

  **Esempio:** `'{"min": 50}'`
</ParamField>

<ParamField query="radar" type="string (JSON object)">
  Aggrega sulle aziende la cui posizione sul piano Radar Syrto (0–100 su entrambi gli assi) corrisponde al filtro. Si combina in AND con tutti gli altri filtri. È richiesto almeno uno tra `size`, `efficiency` o `polygon`.

  | Campo        | Tipo   | Descrizione                                                                                                                                                                                                                                                           |
  | ------------ | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  | `size`       | object | Intervallo inclusivo sull'asse size del Radar con `min` e/o `max` (0–100). Distinto dal parametro `size` di primo livello (banda XS/S/M/L).                                                                                                                           |
  | `efficiency` | object | Intervallo inclusivo sull'asse efficiency del Radar con `min` e/o `max` (0–100).                                                                                                                                                                                      |
  | `polygon`    | object | Poligono arbitrario sul piano (size, efficiency). Contiene una lista `vertices` da 3 a 64 punti, ciascuno `{ "size": 0–100, "efficiency": 0–100 }`. Usa gli intervalli sugli assi per rettangoli o fasce; usa il poligono per triangoli, forme a L o regioni concave. |

  **Esempio:** `'{"efficiency": {"min": 70}}'`
</ParamField>

<ParamField query="consolidated" type="boolean">
  Filtra per bilanci consolidati. Default: `false` (non consolidati).
</ParamField>

<ParamField query="language" type="string">
  `"en"` per inglese (default) o `"it"` per italiano.
</ParamField>

## Risposta

<ResponseField name="years" type="object[]">
  Un elemento per ogni anno richiesto, ciascuno contenente:
</ResponseField>

<ResponseField name="years[].company_count" type="integer">
  Numero totale di aziende che corrispondono ai filtri.
</ResponseField>

<ResponseField name="years[].employee_stats" type="object">
  Statistiche sul numero di dipendenti delle aziende corrispondenti:

  * `count` — numero di aziende con dati sui dipendenti
  * `average`, `median`, `minimum`, `maximum` — riepiloghi statistici
</ResponseField>

<ResponseField name="years[].metric_stats" type="object[]">
  Un elemento per ogni slug di metrica richiesto, ciascuno con:

  * `name` — nome leggibile della metrica (usare questo per la visualizzazione, non lo `slug`)
  * `slug` — identificatore interno
  * `stats.count` — numero di aziende con dati per questa metrica
  * `stats.average`, `stats.median`, `stats.minimum`, `stats.maximum` — riepiloghi statistici
</ResponseField>

<ResponseField name="years[].radar" type="object">
  Statistiche del punteggio Radar delle aziende corrispondenti:

  * `efficiency_avg`, `efficiency_median` — riepiloghi del punteggio Efficiency (0–100)
  * `size_avg`, `size_median` — riepiloghi del punteggio Size (0–100)
</ResponseField>

<ResponseField name="note" type="string">
  Nota contestuale sulla disponibilita dei dati e dove trovare ulteriori informazioni su syrto.ai.
</ResponseField>

## Esempio

**Ricavi medi delle grandi aziende manifatturiere in Emilia-Romagna:**

```json theme={null}
{
  "year": 2023,
  "anagraphic_filters": "{\"nace\": \"C\", \"nuts\": \"ITH5\"}",
  "size": "L",
  "aggregate_metric_slugs": "[\"revenues_from_sales_and_services\"]"
}
```

**Risposta (abbreviata):**

```json theme={null}
{
  "result": {
    "years": [
      {
        "year": 2023,
        "company_count": 3690,
        "employee_stats": {
          "count": 3045,
          "average": 333.15,
          "median": 201.0
        },
        "metric_stats": [
          {
            "name": "Revenues From Sales And Services",
            "slug": "revenues_from_sales_and_services",
            "stats": {
              "count": 3690,
              "average": 214504329.44,
              "median": 88501574.0
            }
          }
        ],
        "radar": {
          "efficiency_avg": 61.54,
          "efficiency_median": 68.25,
          "size_avg": 80.45,
          "size_median": 80.42
        }
      }
    ]
  },
  "note": "This is a preview of Syrto data. ..."
}
```
