Visibility
Brands and sub-brands
What an alias is, how a sub-brand rolls up into its family, the once-per-answer rule, and what happens to history when you add one.

What this screen shows
Open Settings → Brands (https://app.discoveredby.ai/settings/brands). It lists every brand the platform recognises for this project: your own brand first, then each tracked competitor, in that order. Each brand shows its aliases, the other names mention extraction accepts as it, and below that its sub-brands
(api/routers/brand_aliases.py#list_brand_entities). A paused competitor is labelled so, with a note that its sub-brands stop counting while it is paused. A competitor removed from Competitors is not labelled Paused: it appears read-only in a separate, collapsed Removed competitors section, name and aliases only, with no controls, since it cannot be resumed the way a paused one can. Any current project member can read this screen; adding, removing, archiving or restoring anything needs owner or editor access.
What an alias is
An alias is another name for a brand. What recognises it depends where: for a new answer, every alias you save is handed to the extraction model as another name for that brand, and it is the model's own judgment, not a fixed rule, that decides whether a name in the answer refers to it
(api/services/brand_mentions.py#roster_entry). Re-attributing a project's past untracked mentions (see What happens to history, below) and cited-page matching both work differently: they search for an exact, case-insensitive name instead, the cited-page search matching the family's names as whole words in the saved text
(api/services/source_mentions.py#alias_pattern). Every alias is typed as one of five kinds, for your own reference: Brand name, Product name, Abbreviation, Common misspelling or Domain (api/schemas/brand_alias.py#BrandAliasCreate); every type is treated the same way everywhere. There is no regex or pattern alias, anywhere an exact match is used.
Sub-brands
A sub-brand is a second brand nested one level under a top-level brand, your own or a tracked competitor's. You can add a sub-brand under your own brand and under any active tracked competitor; a sub-brand cannot itself have sub-brands, so nesting stops at one level
(api/services/brand_families.py#create_sub_brand). Sub-brands are available on Starter, Growth and Pro; on Free and Trial the existing sub-brands, if any, are still shown, but the controls to add or restore one are replaced by an upgrade note. A brand can hold up to 10 active sub-brands, and a project up to 50 active sub-brands in total across every brand and competitor combined
(api/services/brand_families.py#MAX_SUB_BRANDS_PER_BRAND, #MAX_SUB_BRANDS_PER_PROJECT).
The once-per-answer rule
A brand family, a top-level brand plus its sub-brands, counts once per answer in share of voice, your own visibility and position, no matter how many of the family's names appear together in that answer. An answer naming both Acme and its sub-brand Acme Pay is one answer for the Acme family, never two
(api/services/brand_metrics.py#brand_share_of_voice). Position rolls up the same way: when an answer names more than one family member, the family's position for that answer is whichever of them was named earliest. This changes only how a family is counted as a whole; an answer that names no sub-brand is counted exactly as it was before sub-brands existed, and a project with no sub-brands at all sees identical figures to before.
What a sub-brand reports on its own
Each active sub-brand also reports its own figures on Competitors and Sentiment trends: how many answers named it, what share those are of its own family's answers, and its own sentiment counts
(api/services/brand_metrics.py#share_of_voice_by_entity). These figures overlap each other and the parent's own figures rather than adding up to them, because one answer can name the parent and a sub-brand, or two different sub-brands, at once. Both screens say this next to any sub-brand row.
Where a sub-brand counts as its parent
Cited-page matching never breaks a sub-brand out on its own. Brand evidence inside cited pages, that evidence's saved detail, what an engine retrieved before answering, and whether a prompt is classified as naming a tracked brand all build their brand list from each family's full set of names, so a sub-brand's names count there as its parent being present
(api/services/brand_families.py#family_roots). A sub-brand appears as its own row on Competitors' share of voice, on Sentiment trends, and, named in a parent_brand column, in the Brand mentions export.
What happens to history
Adding a name, a new alias or a new sub-brand, checks the project's past untracked mentions (names the platform saw in an answer but had not matched to any tracked brand) for an exact, case-insensitive match, and moves the matching rows onto the new name; the app reports how many moved
(api/services/brand_families.py#reattribute_untracked). Creating a sub-brand whose name already exists as one of its own parent's aliases moves that alias, and the past mention rows that used it, onto the new sub-brand instead of creating a duplicate name; the family's own totals are unchanged by this move, since those rows simply shift from counting as the parent to counting as the sub-brand within the same family. None of this re-runs extraction or calls a model against old answers: it only reattaches rows that were already stored.
Re-attribution moves at most one row per answer onto the new name, never two: an answer can already hold a row for the brand under a different name, so a separate untracked row spelled exactly like the new alias is deliberately left where it is rather than merged in. That leftover row stops appearing on Competitors' "Brands appearing in your answers" list all the same, the moment its name matches a display name or alias held by your own brand or a current, active or paused, competitor, or either one's sub-brand, in the project, whether or not that particular row actually moved. A name held only by a removed competitor, or one of its sub-brands, is the one exception: mention extraction never matches a removed brand, so a fresh untracked row spelled like one keeps showing here, or there would be no way back to track it again
(api/routers/untracked_brands.py#_query_untracked).
Archiving a sub-brand stops it being recognised in new answers, but its past mention rows stay counted in the family: the family's own visibility, share of voice and sentiment total are unaffected, because the family total always included it. An archived sub-brand is listed under Archived rather than as an active row, and can be restored later, subject to the same caps and name checks as creating one
(api/services/brand_families.py#archive_sub_brand, #restore_sub_brand). Its display name and every one of its aliases stay reserved for as long as it is archived: within the family, nothing else, not even a brand-new sub-brand, can take one of those names, so restore the archived sub-brand instead of trying to recreate it.
Managing brands and sub-brands
From Settings → Brands, an owner or editor can add or remove an alias on any brand or sub-brand, add a sub-brand under a top-level brand, and archive or restore one. From Competitors, a name listed under "Brands appearing in your answers" that is not yet tracked offers Add as alias of… and, where sub-brands are available, Add as sub-brand of…, alongside the existing Add as competitor. A sub-brand's own name alias cannot be removed, since it is what mention extraction still needs in order to recognise it
(api/routers/brand_aliases.py#remove_alias). Neither picker offers a removed competitor as a destination: it has nothing left to attach a new name to, so trying to add one directly is refused
(api/services/brand_families.py#add_alias).
What is not included
There is no regex or pattern alias, only an exact, case-insensitive name, anywhere an exact match is used (see What an alias is, above). Sub-brands nest one level only: a sub-brand cannot itself have sub-brands. A sub-brand cannot be reparented to a different brand or renamed; archive it and create a replacement instead. The Brand position metric is a whole family's: in each answer, the earliest family member named. There is no separate Brand position for a sub-brand. Overview's brand ranking shows it for you and for each active tracked competitor (api/services/overview.py#_ranking), and the Explorer reports it by brand family; Competitors reports no Brand position for anyone. The Brand mentions export is a different thing: its mention_order column records where each mention fell within its own answer, one value per row, for every brand and sub-brand, not only your own.
Access
Any current project member can read this screen. Adding or removing an alias on a top-level brand needs owner or editor access on every plan, with no plan gate. Adding a sub-brand, restoring an archived one, and adding an alias to an active sub-brand all additionally need the project owner's plan to include sub-brands: standard Starter, Growth and Pro
(api/services/brand_families.py#hierarchy_available). An archived sub-brand's own alias list is frozen until it is restored: add a name to an active sub-brand, or restore an archived one first
(api/services/brand_families.py#add_alias). Archiving a sub-brand stays open on every plan, and so does removing an alias, other than a sub-brand's own name, which can never be removed at all
(api/services/brand_families.py#archive_sub_brand). So a project that has moved off a qualifying plan can still tidy up even though it cannot add, restore, or add a name to a sub-brand. The app only surfaces this for an active sub-brand: Settings → Brands collapses an archived sub-brand to just its name, with a Restore button for owners and editors on a plan that includes sub-brands, and no alias list and no remove control either way, so its aliases are effectively frozen there until you restore it.
Related
- Competitors: where an untracked name becomes an alias, a sub-brand or a competitor, and where sub-brand share of voice is shown
- Sentiment trends: where sub-brand rows appear in the brand comparison, trend and evidence pickers
- Metrics defined: the share-of-voice formula a brand family rolls up into
- Plans and limits: the project owner's plan is what controls a plan-gated feature like this one
Last verified 2026-09-23