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

# Owner Analytics

> Retrieve a composed analytics report for an owner

## When to use this

Use this endpoint to size a competitor's trademark portfolio before filing an opposition or planning clearance work. It returns current portfolio totals and distributions in one request.

Reports use a Valkey cache with a 24-hour TTL backstop and are invalidated by the nightly stats-compute `owner.updated` wave. Proceedings ingestion does not emit owner-grain events directly, so a newly ingested proceeding appears within about 24 hours. `Server-Timing` reports `cache;desc="hit"` or `cache;desc="miss"`.

## Path Parameters

<ParamField path="id" type="string" required>Owner ID (`own_*`).</ParamField>

## Code Examples

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.signa.so/v1/owners/own_R3jK9mN2/analytics \
    -H "Authorization: Bearer sig_YOUR_KEY"
  ```

  ```typescript TypeScript theme={null}
  import { Signa } from "@signa-so/sdk";

  const signa = new Signa({ api_key: process.env.SIGNA_API_KEY });
  const report = await signa.owners.analytics("own_R3jK9mN2");
  console.log(report.portfolio.mark_count, report.portfolio.active_count);
  ```
</CodeGroup>

<ResponseExample>
  ```json Response theme={null}
  {
    "object": "analytics_report",
    "subject": {
      "id": "own_R3jK9mN2",
      "object": "owner",
      "name": "APPLE INC"
    },
    "portfolio": {
      "mark_count": 1204,
      "active_count": 980,
      "dead_count": 211,
      "status_distribution": {
        "registered": 980,
        "abandoned": 211,
        "unknown": 13
      },
      "class_distribution": {
        "9": 410
      },
      "jurisdiction_spread": {
        "US": 860
      },
      "filing_trend": {
        "2025": 72
      }
    },
    "litigation": {
      "subject": {
        "owner_id": "own_R3jK9mN2",
        "entity_id": null
      },
      "proceedings_total": 3,
      "as_challenger": {
        "total": 2,
        "by_type": {
          "opposition": 1,
          "cancellation": 1
        },
        "outcomes": {
          "challenger_won": 1,
          "settled": 1
        },
        "decided": 1,
        "win_rate": 1,
        "avg_duration_days": 124.5
      },
      "as_defendant": {
        "total": 1,
        "by_type": {
          "opposition": 1
        },
        "outcomes": {
          "challenger_lost": 1
        },
        "decided": 1,
        "win_rate": 1,
        "avg_duration_days": 87
      }
    },
    "transactions": {
      "transaction_count": 4,
      "by_type": {
        "assignment": 2,
        "security_interest": 1,
        "release": 1
      },
      "unreleased_security_interests": 0,
      "marks_with_liens": 0,
      "acquired_count": 2,
      "divested_count": 1,
      "first_transaction_date": "2019-06-15",
      "last_transaction_date": "2024-03-01"
    },
    "generated_at": "2026-07-11T08:00:00.000Z"
  }
  ```
</ResponseExample>

## Litigation fields

`as_challenger` covers disputes the owner brought as an opponent or petitioner. `as_defendant` covers disputes against marks the owner currently holds. `win_rate` is wins divided by `decided`, and is `null` when `decided` is zero. `decided` excludes settled, withdrawn, and pending proceedings. `avg_duration_days` is the mean number of days from filing to decision when both dates are available.

## Transaction fields

`by_type` groups distinct recordings into conveyance-type buckets. `acquired_count` counts recordings where the owner is an assignee; `divested_count` counts those where it is an assignor. The first and last dates bound the recorded transaction history.

`unreleased_security_interests` counts security-interest recordings without a non-purged release pointing back to the same reel/frame, and `marks_with_liens` deduplicates marks attached to those recordings. Reel/frame linkage is authoritative: a security interest remains unreleased until a release recording points to it.

Acquirers use this block to gauge a brand's transaction history, while lenders check for unreleased liens before extending credit. See [list assignments](/api-reference/records/transactions/list-assignments), [get an assignment](/api-reference/records/transactions/get-assignment), and the [chain-of-title and lien diligence guide](/guides/chain-of-title-lien-diligence) for recording-level detail.
