A macro or thematic view is a claim about an industry, a country or a size band, and company-level hiring data supports it once the aggregation is built. Market Series is that aggregation: weekly series computed on same-store cohorts, so a change in a series reflects what companies did and not how far the company index has grown. This guide shows how to read one row, which hiring families to start from, how to test a theme across industries, and how to read the series with care.
What one row of the series holds
Market Series holds one row for each metric, dimension, window and as-of date. A row is written once for each as-of Sunday and never rewritten, so the dataset read on any later day shows what was known on that Sunday. The data dictionary defines every column. These are the ones you will read most.
| Column | What it holds |
|---|---|
metric | A metric family, or family:subject where a family has subjects, such as seniority_share:senior |
dimension_kind, dimension | What the row describes: all, industry, sector, country, size or market, and its value |
window_days | 7, 30 or 180 (365 for headcount; traffic has 30 and 180 only) |
count | The numerator: events or postings in the window, or the median itself for a median metric |
cohort | What the rate is over: companies or websites covered since before the window began, or postings for share and pay metrics |
rate | count in the metric's unit, for example per 100 companies or a share of postings from 0 to 1 |
previous | The same count over the window just before, on the same cohort |
growth | count minus previous, divided by previous; empty when there was nothing before |
index | 100 at the series' first as-of date, then the rate relative to it |
The unit column and the live catalogue at GET /api/v1/series/metrics give the unit of each family. Events a company does once, such as adopting a technology or opening a country, are stated per 100 companies or per 100 websites. Anything counted in postings is a share of the postings opened in the window, and pay is a median in yearly US dollars.
Choosing the family and the dimension
For hiring work, start from hiring_new, hiring_closed, hiring_open and hiring_net for demand, pay_median for advertised pay, seniority_share, work_mode_share and function_share for the mix of roles, ai_role_share for AI roles and sales_share for the weight of sales roles. Two more families test what hiring suggests: tech_added, with the technology as its subject, and news_event, as in news_event:funding_round. Every series exists over all companies, and the catalogue lists the other dimensions each family has.
industry: the industry label of the company website, across 21 industries.sector: the company's sector, from public reference data.country: the headquarters country, as an ISO 3166-1 alpha-2 code.size: the band of stated employees, from1-10to5000+.market: an exchange code, which applies to counts of listings.
Two of these carry a definition worth stating. The country dimension is the headquarters country, so a series for one country describes the companies headquartered there wherever their roles are located, which makes it a clean cut for a theme about those companies. The size bands rest on stated employee counts, so a band describes the companies that state a headcount.
Reading rate, growth and the index
A window ends on the as-of Sunday and looks back 7, 30 or 180 days. The 7-day window reacts within a week and is noisy, the 180-day window shows direction, and the 30-day window sits between them. Because previous is the window just before, 30-day growth compares one month with the month before it, not with the same month a year earlier.
Three design choices make a series comparable over time.
- Same-store cohorts. The company index grows daily, so a raw count would partly measure coverage. A rate is taken over the companies covered since before the window began and still covered at its end, and
previousis counted over the same companies. A company first covered inside a window waits for a later one. The blog piece on how same-store cohorts keep the series comparable sets out the construction. - Written once. Rows are never rewritten, so a test run today uses the values anyone saw on each Sunday.
- A floor on size. Every row stands on at least 20 companies, or 20 postings for pay and share metrics. A gap marks a segment too thin to publish, so read it as missing data, not as zero.
growth and index measure different things, and they can disagree. growth compares counts: this window's count against previous on the same companies. index follows the rate, which divides by the cohort, against the series' first as-of date. The illustrative row below is for ai_role_share over 30 days.
| window_days | count | cohort | rate | previous | growth | index |
|---|---|---|---|---|---|---|
| 30 | 540 | 9,000 | 0.060 | 600 | -0.10 | 120 |
Here AI postings fell by a tenth against the previous window, so growth is negative. Postings overall fell by a quarter, from 12,000 to 9,000, so the share rose from 5 to 6 per cent, and with a base rate of 0.05 the index stands at 120. Both readings are right. Growth says that AI hiring activity fell, the index says that the mix moved towards AI roles, and a thesis about AI spending and one about AI intensity use different columns.
A worked example: is AI hiring spreading beyond one industry?
A thematic view says that AI hiring is broadening beyond software. The test is whether the share of AI roles rises across many industries or in a few. The query below reads Market Series and returns, for the latest as-of date on or before your decision date, the 30-day and 180-day readings for each industry, with the cohort that carries them.
select
dimension as industry,
window_days,
cohort,
rate,
growth,
"index"
from market_series
where metric = 'ai_role_share'
and dimension_kind = 'industry'
and window_days in (30, 180)
and as_of = (
select max(as_of)
from market_series
where metric = 'ai_role_share'
and as_of <= :decision_date
)
order by window_days, "index" desc;Read the result in three passes. First drop industries whose cohort is too small to carry a move; set the floor before you look, and treat 100 postings as a starting point. Second, count the industries in which the 30-day growth and the index both point up: a broad theme shows many, a narrow one shows a few that dominate the average. Third, set each industry's 30-day rate beside its 180-day rate. A 30-day rate above the 180-day rate says that the latest month is richer in AI roles than the last six months, because the longer window contains the shorter.
A second test suits a view on credit conditions, which predicts that small companies cut hiring before large ones. Compare the 30-day growth of hiring_new across the size bands over several weeks, note the order in which the bands turn, and keep each band's cohort in view. To move from a theme to companies, measuring AI adoption across listed companies ranks listed companies on the same AI-role measure.
Pitfalls
Thin cohorts. A cohort of 25 companies can move on the strength of three of them. Read cohort beside every rate, and set a floor before you look.
Different bases. The index is 100 at each series' own first as-of date, and series can begin on different dates. Compare indices only where the first as-of dates match.
Seasonality. The index is the rate relative to the base date and nothing more, so a graduate intake or a year-end freeze appears as movement. Compare with a peer series, such as an industry against all companies, and with the same week of the previous year.
Two ways to name a sector. The industry dimension rests on the label of the company website and the sector dimension on public reference data, so they do not split companies the same way. Choose one for a thesis and keep it.
Reading the series
Postings measure intent to hire, not hires. The series describe the companies in each cohort, which makes them a dated weekly view of how covered employers advertise. Used that way they complement official employment statistics: they move between releases, they compare industries and size bands on one definition, and each as-of row stays exactly as written.
Set the 7, 30 and 180-day windows side by side for one series and one as-of date. The three end on the same Sunday, so a move that shows in all three is a trend and a move in the 7-day window alone is a candidate to watch.
How Fokals delivers it
The market series are one of five datasets. They are written weekly as of each Sunday and reach you through the REST API or as bulk files. The market series dataset page lists the families, and section 9 of the methodology sets out the cohort, unit and window rules. To read one company against its sector, see using hiring data in equity research between earnings, which subtracts a sector series from the company's own.
Frequently asked questions
What does the index in a market series mean?
The index is 100 at the first as-of date of the series and afterwards shows the rate relative to that date, so 120 means the rate is 20 per cent above its starting level. It follows the rate, which divides by the cohort, while growth follows the count against the previous window. Compare indices only between series that share a first as-of date.
Why do hiring series use same-store cohorts?
The company index grows every day, so a raw count of new postings would rise partly because more companies are covered. A same-store cohort holds the companies fixed: those covered since before the window began and still covered at its end, with the previous window counted over the same companies. A change in the series is then a change in what those companies did, not in coverage.
What does a country hiring series measure?
The country dimension is the headquarters country of the company, so a series for one country describes the hiring of the companies headquartered there, wherever their roles are located. It suits a view on those companies, such as a country's listed champions, with the cohort stated beside every rate.
Which window should I use, 7, 30 or 180 days?
Use 180 days for the direction of a trend, 30 days for turning points, and 7 days only to time a move you have already seen in the longer windows, because it is the noisiest, especially in small cohorts. All three windows end on the same Sunday, so you can read them side by side for one series.
How do hiring series complement official employment statistics?
Postings measure what companies advertise, so the series give a weekly, dated reading of labour demand that moves between official releases. They compare industries, countries and size bands on one definition, and every row is written once, so a test on them uses the values anyone saw on each Sunday.
The queries and code on this page are examples to adapt. Test them in your own environment before you rely on them.