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.
Enter names with spaces and capitals. You do not need to type lowercase keys or underscores. API and CSV identifiers are available in collapsed details when needed.
Change the name of a saved attribute or value whenever needed. Its stored identifier stays fixed, preserving persona assignments and uploaded values.
Save attributes stays visible while you scroll through values and rules, including on a phone. Preview rules to check the split before saving.
The settings sidebar shows saved setup: whether context has been customized, how many attributes and competitors are configured, active members and pending invitations, and saved assets. Assets includes uploaded images, saved text imports, saved environment contexts, and creative copy. Its count updates after saving or deleting an item; unsaved import drafts do not count. Empty optional sections do not prevent a Pulse.
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.
The base distribution sets the panel-wide starting split for the attribute.
Demographic tilt rules shape that split for cohorts such as an age, gender, income, region, education, household, or race/ethnicity group.
CSV values pin named personas to exact values and take precedence over the base distribution and every tilt rule.
Each categorical value can carry an optional persona seed — a sentence or two on who someone holding it is, such as “Technical co-founder; owns the security stack.” When the attribute is enabled for a Pulse, the model reads the seed beside its value. The seed never changes which personas hold which value.
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.
Add or edit an attribute, then name its values (categorical) or numeric bands. Values that form a scale go lowest to highest, because “or better” follows that order. Values with no order, like job roles, can go in any order — use “exactly this” in their rules.
Set the base shares for the entire panel. These shares remain a constraint when cohort rules are added.
Choose Add rule, select one or more demographic values under Among, enter the rate, and choose whether it means exactly that level or that level or better.
Choose Preview rules. Check the realized split, Asked versus Achieved for every rule, and the intersection groups the rules create — including groups you never stated directly.
Save only after the preview matches your intent. If the closest possible fit is approximate, Mirror names the misses and asks you to accept the best-effort fit explicitly. If a save fails, the reason appears under Save attributes. Leaving the page or switching brands with unsaved edits asks you to confirm first.
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.
Choose Download template. Keep each persona_id unchanged. Columns beginning with an underscore are read-only context and are ignored on upload; a _field_current column shows the value the persona resolves to now.
Enter an allowed level or number in the writable attribute column. In Merge mode, leave a cell blank to leave its existing pin alone. Enter a dash or default to remove a pin so that persona falls back to the rules.
Choose Merge for a partial update. Choose Replace only when the file is the complete pinned set for every attribute column it contains. Replace discards every existing pin not supplied as a nonblank value in that column, so a blank or omitted persona is a removal even without a dash.
Select the file. Mirror validates the whole upload first and lists errors using the spreadsheet's physical line numbers. Nothing is written until every row is valid and you choose Apply to the panel.
The CSV workflow is separate from Save attributes: download, edit, validate, then apply the complete clean upload.
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.
Choose Add attribute, enable Override a built-in profile field (this brand only), and select Income bucket. Mirror uses the matching built-in identifier automatically.
Label it Customer income tier. Define three ordered levels: constrained (Constrained), comfortable (Comfortable), and affluent (Affluent). A starting base split might be 35%, 45%, and 20%.
Add a tilt using the original income conditions Under $30k and $30k-$60k, and say 70% are exactly Constrained. Add another saying that, among the original $150k+ cohort, 70% are exactly Affluent.
Preview the fit and inspect the overlaps. Save the schema, then use CSV pins for first-party exceptions — for example, a known customer whose disposable-income tier should be Affluent regardless of the rules.
Run a new study. With Income enabled in persona context, this brand's model prompt uses Customer income tier; result segments use the replacement values even if you turn Income off for that Pulse. Other brands continue to see Mirror's original income buckets.
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.
Custom controls include categorical and numeric attributes, even when they are not targetable. Turning one off removes its value and categorical persona seed from evaluations and follow-up interviews. Analysis-only attributes already stay out of model context and do not need a toggle.
Audience targeting and result breakdowns still use the full demographic and custom values. For example, you can select a familiar audience while withholding its familiarity value from the model.
Turning off a built-in field also hides a custom override of that field. Turning off the custom override hides the field rather than restoring its shared census value.
While any attribute is off, biographical prose and prior-response memory are omitted because they can reintroduce it. Enabled demographics, custom values, and structured personality and behavior remain available. Your study context still applies.
Follow-up interviews reuse the custom values, persona seeds, and profile overrides saved during that Pulse’s evaluation. Later edits to the brand schema do not change its interview context.
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.
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.