> ## 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.

# Compare companies

> Compare specific financial metrics side-by-side across multiple companies.

`syrto_compare_companies` fetches the same metrics for multiple companies in a single call, returning results side-by-side. It is significantly faster than calling [`syrto_get_company_metrics`](/mcp/tools/company-metrics) once per company.

<Tip>
  Metric slugs must come from [`syrto_list_available_metrics`](/mcp/tools/list-available-metrics) or [`syrto_search_metric_definitions`](/mcp/tools/metric-definitions). Invalid slugs silently return no data.
</Tip>

## Use this tool to

* Compare specific financial KPIs across 2 or more companies side-by-side
* Check which company performs best on a given metric (e.g. ROE, EBITDA)
* Get year-on-year metric trends for multiple companies at once

Related tools: For single-company metrics, use [Company metrics](/mcp/tools/company-metrics). For sector-level statistics, use [Aggregate companies](/mcp/tools/aggregate-companies). To find company IDs first, use [Find company](/mcp/tools/find-company) or [Look up companies by tax ID](/mcp/tools/lookup-companies-by-tax-id) for batch resolution.

## Arguments

<ParamField query="company_ids" type="string[]" required>
  List of company IDs from [`syrto_find_company`](/mcp/tools/find-company) or [`syrto_lookup_companies_by_tax_id`](/mcp/tools/lookup-companies-by-tax-id). Minimum 2, maximum 20.
</ParamField>

<ParamField query="metric_slugs" type="string[]" required>
  Metric code slugs to compare (min 1, max 10). Examples: `["ebitda", "roe", "net_financial_position"]`. Use [`syrto_search_metric_definitions`](/mcp/tools/metric-definitions) or [`syrto_list_available_metrics`](/mcp/tools/list-available-metrics) to find valid slugs.
</ParamField>

<ParamField query="year" type="integer" required>
  Fiscal year for comparison (e.g. `2023`).
</ParamField>

<ParamField query="language" type="string">
  `"en"` for English (default) or `"it"` for Italian.
</ParamField>

## Returns

A JSON object with per-company results and a list of any unrecognized company IDs.

<ResponseField name="companies" type="object[]">
  One entry per requested company (in the same order as `company_ids`), each with `company_id`, `legal_name`, and a `years` array.
</ResponseField>

<ResponseField name="companies[].years" type="object[]">
  One entry per fiscal year. Each contains:

  * `year` — fiscal year
  * `size` — EU SME classification
  * `employee_count` — headcount (`null` if unavailable)
  * `metrics` — list of metric objects
</ResponseField>

<ResponseField name="companies[].years[].metrics" type="object[]">
  One entry per requested metric slug, each with:

  * `name` — human-readable metric name
  * `slug` — internal identifier
  * `value` — numeric value (or `null` if unavailable)
  * `better_when` — object with `when_type`: `"HIGHER"`, `"LOWER"`, `"NEAR_TARGET"`, or `null`
</ResponseField>

<ResponseField name="missing_company_ids" type="string[]">
  Company IDs from the request that were not found.
</ResponseField>

<ResponseField name="warning" type="string | null">
  Present when metric slugs were not recognized (no data returned for any company).
</ResponseField>

## Example

**Compare EBITDA and ROE for two companies:**

```json theme={null}
{
  "company_ids": ["Zm86SVRfMDE2NTQwMTAzNDVfVTox", "Zm86SVRfMDAxNTk1NjAzNjZfVTox"],
  "metric_slugs": ["ebitda", "roe"],
  "year": 2023
}
```

**Result:**

* Returns each company with the requested metrics for the specified year
* Check `missing_company_ids` to verify all requested companies were found
