Describing an audience
An audience in Hiasynth is a list of conditions on attributes: this age, that income, this kind of home. You say it in words and your assistant writes the conditions. This page explains what it writes, so you can check it, and lists the few details that change an answer without telling you.
From words to filters
Take "affluent people under 40 in the Netherlands". Your assistant turns that into three conditions and a place:
ageincome_qEvery condition is an attribute, an operator and a value. The operators are equals, not equals, less than, at most, greater than, at least, in for a list of values, and top_pct and bottom_pct for "the most" and "the least" of something. Conditions are combined with and: a person has to meet all of them.
Sent to a tool, the same audience looks like this:
{
"place": "Netherlands",
"filters": [
{ "column": "age", "op": "<", "value": 40 },
{ "column": "income_q", "op": "=", "value": "Q4" }
]
}
The same filters shape works on every tool that takes an audience: analyze_market, compare_places, rank_places, reach_audience, sample_persona and query_population.
Ask your assistant to show the filters it used. It is the quickest way to see whether "affluent" became the top income quartile or the top wealth decile, which are different audiences.
Two tables: people and households
The population has two tables, and every attribute lives in one of them.
Persons holds what belongs to an individual: age, sex, education, employment, civil status, personal income quartile, values, media, subscriptions, brand affinities, commute, schedule, life events.
Households holds what belongs to a home: composition, number of children, household income and wealth deciles, financial stress, housing costs, tenure, heating, solar, cars, what the home spends on, what it eats, what it emits, and everything about the surroundings.
You rarely need to care which is which. On every tool, a household attribute in filters selects the people who live in those homes. "Children in homes with an electric car" is about persons (children) selected by a household fact (the car), and it is one list:
{
"place": "Germany",
"filters": [
{ "column": "age", "op": ">=", "value": 3 },
{ "column": "age", "op": "<=", "value": 10 },
{ "column": "bev_owner", "op": "=", "value": true }
]
}
Because the people are matched through their household, everything a persons question gets still applies, including the square-kilometre breakdown. A question with a household condition needs a place, a country at minimum. Set table to households only when you want to count homes and not people.
An "unknown column" error names the closest matches and where they are.
What is in the catalogue
list_attributes with no arguments returns the groups. These are the ones you will use most.
demographicseconomicsvalues_attitudesmediasubscriptions_propensitybrand_affinitylife_eventsconsumptionemissionslifestyleplace_activityplace_accessgeographyspecial_categorySearch by keyword when you need something specific: list_attributes with search: "electric vehicle" returns the matching columns, their meaning, their table and their valid values. The catalogue is free to read.
The details that change an answer
These are the few places where a reasonable guess gives a wrong number. Your assistant is told about each of them when it connects, and the server catches most mistakes, but they are worth knowing.
income_q is a quartile. The values are Q1 to Q4, Q4 being the top. There is no Q5. Asking for the "top quintile" as Q5 matches nobody, and the answer will say that no rows matched and to check the values, not that the audience is rare.
income_q is empty for anyone under 20. An income filter therefore removes children and teenagers without saying so. To select children, or anyone, by how well off their home is, filter on the household: hh_net_income_decile.
Money is in local currency. Columns ending in _tlc are thousands of the country's own currency: euros in Germany, kronor in Sweden, pounds in the United Kingdom. They are fine within a country and meaningless across a border. Across countries use income_q, hh_net_income_decile (a national ladder where 5.5 is the median) or net_wealth_decile.
"A lot" is a percentage, never an amount. "People who spend a lot on eating out" has no threshold anyone could guess: the column is thousands of kronor in Sweden and thousands of euros in Germany. top_pct and bottom_pct say it relatively. spend_restaurants_cafes_tlc, top_pct, 20 is the fifth of households that spend the most, and the cut is made within each country, so it means the same thing in Södermalm as in Norrland and never mixes currencies. It works on any numeric attribute and needs a place or a country.
Spending comes twice. Every category is there as an amount, spend_, and as a share of the household's whole budget, spend_. They answer different questions. The amount finds the money: high earners in big households top every list. The share finds the taste: who puts eating out ahead of other things. Shares compare across countries, amounts don't.
Cafés are not separate from restaurants. The statistical category is eating and drinking out as a whole: restaurants, cafés, bars, takeaway and canteens together. For a café question, pair it with the place layer, which does count the cafés within 500 metres of a home.
Footprints are per household, and consumption-based. co2_total_t is tonnes of CO2e a year for the whole home: what it burns directly in cars and heating, plus what is embedded in everything it buys. A family of five has a bigger footprint than a student living alone for that reason only. Tonnes compare across countries.
Diet is one of four groups. diet_group is meat_regular, flexitarian, vegetarian or vegan.
Values are z-scores. Every ess_ attribute is centred on the European average: 0 is average, positive is above, negative is below. "Cares about the environment" is a condition such as at least 0.5 on the environment measure, not a yes or a no. The tools that report values translate the scores into words for you.
Affinities and engagement run from 0 to 1. "High sustainability affinity" is a threshold you choose, for instance at least 0.7. Say where you want the line, or ask what share of people clear it.
Education and employment cover everyone aged 15 and over. Employment is one of employed, unemployed and outside_lf. From 75 up, everyone is outside the labour force.
Occupation and industry are not available in this build. Use education, employment and weekly_schedule_profile, which separates full-time workers, retirees, students, pupils and people at home.
Categorical values are exact. commute_mode is one of none, car, transit, bike, walk. media_diet_segment is one of mainstream_mixed, news_traditional, social_streamer, informed_digital, light_offline. A value that doesn't exist matches nobody. When in doubt, list_attributes shows the valid values.
Sensitive attributes
Religion, ethnic and migration origin, health, sexual-orientation attitudes and political leaning are special-category data under European law, and they are treated differently even though the population is synthetic.
- They can be used for aggregate work at region level and above.
- They are never returned at fine geography. A question that crosses one of them with a municipality, a district or a square kilometre is answered for the surrounding region instead, and the answer says so.
- The catalogue lists them in one group,
special_category, without their values. A list of denominations is a menu, and we don't publish one. - The same goes for anything that would reveal them sideways. The population knows which households keep a religious diet, so that detail sits in the restricted group, and the
diet_groupyou can map folds those households into the meat-eating group they belong to nutritionally. Spending on narcotics and on prostitution, both real lines in the national accounts, is restricted too.
Two attributes are never an audience at all: whether a person is able to consent, and whether they live in an institution.
How small an audience can be
The privacy floor is 100 people, and it applies to every cell of a breakdown, not only to the total. Reading an answer explains what you get instead. Personas of an area smaller than a municipality need more people behind each one, because a composite of one square kilometre describes a street and not a segment.
Next
- Places and geography: the other half of every question.
- Reading an answer: what lift, baseline and confidence mean.
- The nine tools: which tool takes which inputs.