• Stocks
  • Etfs
  • Chat
  • Docs
  • Dataset Showcase
CoverageBlog

Documentation

Artifacts

Artifacts

  • Overview

Company

  • Beneficial ownership
  • Officers and directors

Financial

  • Debt instruments
  • Income flow
  • Income flow interpretation
  • Share repurchase

Business

  • Acquisitions
  • Customer concentration
  • Physical properties
  • Products, services, and brands

Legal

  • Legal proceedings

Artifacts

  • Overview

Company

  • Beneficial ownership
  • Officers and directors

Financial

  • Debt instruments
  • Income flow
  • Income flow interpretation
  • Share repurchase

Business

  • Acquisitions
  • Customer concentration
  • Physical properties
  • Products, services, and brands

Legal

  • Legal proceedings
Loading docs…

The infrastructure layer for financial AI

PricingUse casesBlogContactPrivacy PolicyTerms of Service

© 2026 Lucy AI. All rights reserved.

Use casesResponse schemaExample datasetPlayground
Developers›Docs›Customer concentration

Customer concentration

Concentration entries, disclosure thresholds, and status for reported customer exposure.

Category
Business
Forms
10-K
Use casesResponse schemaExample datasetPlayground

Use cases#

  • Inspect concentration figures by customer scope and period.
  • Read the threshold and disclosure status used for the captured entries.

Response schema#

Fields 21

Field pathTypeDescription
disclosure_status#
required
object

Customer-concentration disclosure status.

'disclosed' means at least one qualifying customer concentration figure is present — populate concentrations[]. 'explicitly_none' means the filing states that no customer reaches its disclosure threshold. Judge per item, but 'disclosed' wins: if revenue says 'none above 10%' while receivables show a customer concentration, the status is 'disclosed'.

disclosure_status.value#
required
string

Value

disclosure_status.evidence#
required
object

Evidence object. Never null.

disclosure_status.evidence.quote#
required
string| null

Verbatim excerpt from the filing proving this entry. Shortest contiguous source span; no ellipsis, no translation. null when there is no textual basis.

disclosure_status.evidence.reasoning#
required
string

How the source maps to this value. For null decisions, state the basis (not disclosed / not applicable / indeterminable / scope limitation).

disclosure_threshold#
required
object

The percentage threshold the filing itself uses to frame customer significance.

Commonly 10%, but company-defined (e.g. ADP uses 2%). Never hardcode 10 — when the filing states only a ranking ('top 3 customers') or a qualitative absence, there is no stated threshold, so this is a null-decision wrapper.

disclosure_threshold.value#
required
number| null

Threshold percentage as written (10 means 10%). null when no explicit threshold.

disclosure_threshold.unit#
required
string| null

'percent' when a threshold value is present; null when value is null.

disclosure_threshold.evidence#
required
object

Evidence object. Never null.

disclosure_threshold.evidence.quote#
required
string| null

Verbatim excerpt from the filing proving this entry. Shortest contiguous source span; no ellipsis, no translation. null when there is no textual basis.

disclosure_threshold.evidence.reasoning#
required
string

How the source maps to this value. For null decisions, state the basis (not disclosed / not applicable / indeterminable / scope limitation).

concentrations#
required
array| null
items: object

One entry per (customer scope x concentrated item x period) qualifying concentration figure. null when disclosure_status is 'explicitly_none' or 'not_disclosed' (no empty array). Aggregated top-N figures are included with scope='group'.

concentrations[].customer_name#
required
string| null

The customer name as printed, including anonymised labels such as 'Customer A'. When scope='group' and the filing lists the names, join them in source order with ', '. null when the filing refers to a customer anonymously with no label, or gives only a bundle label. Never invent a name.

concentrations[].category#
required
string

Coarse category of the concentrated item. 'revenue' = revenue / net revenue / sales. 'receivables' = accounts receivable / trade receivables. 'other' = any other customer-attributed item (e.g. contract assets); the exact item phrase is preserved in evidence.quote. Backlog and supplier-side items (purchases, payment processing expense) are OUT OF SCOPE and must not appear.

concentrations[].scope#
required
string

'single' = the figure attributes to one customer (incl. an anonymous 'one customer'). 'group' = an aggregated top-N customer figure (e.g. 'top 10 customers') or a segment-level bundle of major customers.

concentrations[].group_size#
required
integer| null

Number of customers aggregated when scope='group' (10 for 'top 10 customers'). null when scope='single', or when the count is left indefinite. Never invent a count absent from the source.

concentrations[].value#
required
unknown| null

The measured concentration degree, a discriminated union by 'type' (mirroring the period shape). 'fixed' for one printed percentage; 'range' for a printed low-high band. null ONLY when the filing gives a qualitative concentration with no figure at all — a printed numeric band is NOT qualitative, it is a 'range'.

concentrations[].period#
required
unknown| null

Reporting period the concentration figure applies to. Model by the nature of the concentrated item: a full-period FLOW is a 'range'; a point-in-time BALANCE is 'as_of'. null when the filing attaches no period, or when only an ordinal label is printed and no year appears anywhere in context.

concentrations[].evidence#
required
object

Evidence object. Never null.

concentrations[].evidence.quote#
required
string| null

Verbatim excerpt from the filing proving this entry. Shortest contiguous source span; no ellipsis, no translation. null when there is no textual basis.

concentrations[].evidence.reasoning#
required
string

How the source maps to this value. For null decisions, state the basis (not disclosed / not applicable / indeterminable / scope limitation).

Example dataset#

An illustrative example for customer_concentration. Use it to see the shape of the data before running a live request.

Top-level fields in the example dataset
FieldSummary
disclosure_statusdisclosed
disclosure_threshold1 field
concentrations1 item

Playground#

← PreviousAcquisitionsNext →Physical properties

Related

  • Acquisitions
  • Physical properties
  • Products, services, and brands

On this page

Use casesResponse schemaExample datasetPlayground