Brand schema overrides

A brand can layer its own persona schema over Mirror Panel's shared personas without changing the underlying panel. Demographic tilts assign values in aggregate; CSV imports pin exact people to exact values; and an uploaded value always wins over the rules.

Name attributes and save without losing your place

Open Brand Settings → Persona attributes and choose Add attribute. Enter an Attribute name in ordinary language; Mirror generates the identifier. Name each value and set its share of the panel. Use familiarity example starts with Never heard of it, Recognizes the name, and Knows the brand well, at 50%, 25%, and 25%. These are editable example assumptions, not measured customer familiarity.

Name the attribute normally. The generated identifier stays behind optional API and CSV details.

The Assets setup count

The Assets indicator includes the library even before you open its editor. Uploaded images and saved text imports count alongside saved environment contexts and creative copy. A failed library read shows Unable to check instead of an empty count.

Three library items plus a saved context and a creative-copy item show 5 saved assets.

How the overlay works

Open Brand Settings and use Persona attributes. A regular attribute adds a new brand-only field, such as familiarity or loyalty. A built-in override instead replaces a field already on the persona — such as occupation, region, or income bucket — in the persona data the model reads and in the dimensions used to group results. The shared persona record is never rewritten, so other brands continue to see the original profile.

Think of resolution as CSV pin → demographic rules → base distribution. Removing a CSV pin hands that persona back to the rules; it does not delete the attribute.

Feature 1: demographic tilts

Use a demographic tilt when you know the shape of a group but do not need to identify every individual. Rules are statements such as “among the Midwest, 50% are Familiar or better.” They are not applied top to bottom: Mirror solves all stated rates together while preserving the panel-wide base distribution.

Both stated rates are met, but the intersection table reveals where the solver placed the remaining personas. This is why Preview is part of the authoring workflow.

Overlapping rules can produce a surprising intersection even when every stated rate is exact. Read the groups below the rule table, not only the panel-wide split.

Feature 2: CSV import

Use CSV import when first-party research, CRM data, or another source tells you the value for a particular persona. First save the attribute schema, then use Uploaded values at the bottom of Persona attributes.

The CSV workflow is separate from Save attributes: download, edit, validate, then apply the complete clean upload.

persona_id,_display_id,_income_bucket_current,income_bucket
persona_82a6c7a0942d6f10,ID 942D6F10,comfortable,affluent
persona_1fd908e471c235ab,ID 71C235AB,constrained,
persona_6b53aa01d9418ef2,ID D9418EF2,affluent,default

With Merge selected, the first row creates or updates a pin, the blank second row changes nothing, and default on the third row removes its pin. In Replace, that blank row would also remove an existing pin. The real template supplies the persona IDs; do not invent or edit them.

Advanced example: replace the income schema for one brand

Suppose a financial-services brand reasons about disposable-income tiers rather than Mirror's five census income buckets. It can replace income_bucket for its own studies while leaving the shared census profile intact.

Selecting Income bucket makes the attribute an intentional replacement rather than a separate annotation. Its brand declaration is prompt-visible and targetable; individual Pulses can still omit it from model context.

The original profile still controls census sampling. Selecting $150k+ in Pulse chooses personas from the shared census income bucket; it does not sample by this brand's replacement values. Target the custom Customer income tier attribute when you want the overlaid audience instead.

Choose which attributes a Pulse sees

In Pulse, find Demographics in persona context. Built-in demographics and prompt-visible custom attributes start enabled. Uncheck Region or an attribute under Custom attributes to omit it from the persona narrative for that Pulse. This choice belongs to the Pulse; it does not edit the brand schema or shared personas.

Use the same checkboxes for built-in and custom attributes. Turning either off affects model context while preserving audience targeting and result breakdowns.

Interviews use the custom context saved with the Pulse. Older Pulses without a saved copy are interviewed without custom context.

Keep or change the choice on a rerun

The rerun dialog starts with the source Pulse’s excluded attributes. Review Demographics in persona context and check an attribute again to include it in the next run. Comparisons and automatic iterations preserve these settings. Changing them is recorded as an exploration because it changes the context each persona receives. Reset to original restores the source choices and keeps custom controls available, including numeric and non-targetable attributes.

The inherited checkboxes can be changed before launching the rerun.

{
  "excluded_demographic_attributes": ["region"],
  "excluded_custom_attributes": ["acme_familiarity"]
}

Supply these fields alongside the rest of your Pulse creation request. Use a saved, prompt-visible attribute key for excluded_custom_attributes; analysis-only keys are rejected. On rerun, omit either field to inherit its source value or send [] to enable all attributes in that list. See Plan and run Pulses with chat for supported built-in keys.

Guardrails and permissions

Built-in overrides have prompt-visible, targetable brand declarations. Each Pulse can omit them from model context while keeping the audience and result segments available. The attribute key cannot be renamed after save. Brand members can read the schema; anyone granted Brand settings: Read/write can preview, save, download templates, and apply or clear CSV pins.