Skip to main content
STRIPED DONKEYWe do the heavy lifting.

Nairobi · People & society

Employment.
Connect contracts, employers and work histories.

Read employment through the resident, employer and contract, with dates and working conditions kept together.

Public sample available

Published domain facts

Active employment contracts
80,146
Active self-employment
917,922
Employers populated
10,002
Historical Coverage
1940–2026

Overview

Domain scope

Read employment through the resident, employer and contract, with dates and working conditions kept together.

Read the published guide →

Known limits

Termination records currently represent employer collapse; other termination pathways remain unpopulated. Some catalogue job titles are unused. Education, household, banking and insurance links are unbuilt; the Transport pairing is registered but ungenerated. Milestones are sourced; intervening splits are calibrated.

Review the source limits →
Full scope reference 2 documented sections
Published domain scope.

Published domain scope.

Connect formal contracts, informal work, self-employment and wages to residents and employers. Dated records support longitudinal work histories.

  • Inspect contract start and end dates
  • Compare job families and employment types
  • Check how employers connect to residents
Active employment contracts
80,146
Active self-employment
917,922
Employers populated
10,002
Historical Coverage
1940–2026
Domain scope.

Domain scope.

Inspect the published scope and deployment boundaries.

Read the published detail

FCTE models formal contracts, self-employment, informal-sector work, wages, benefits, pensions, promotions, terminations and re-employment within the same synthetic city where people are born, live, get sick and eventually die.

Employment records remain connected to the citizens, wards and businesses that shape who works where — and to the same economic-event mechanism that raises and lowers hiring and termination pressure, year by year.

Nairobi City Twin™ · 1940–2026

Samples & fields

Published sample records.

Free employment sample · rows and field definitions

Free employment sample

Resident nameEmployer nameEmployer sector codeJob titleEmployment arrangementEmployment start dateEmployment end dateGross monthly pay (local)
Muia MbathaHEALTHCARE Employer 0000964HEALTHCAREGeneral ManagerPART-TIME1995-02-13Not recorded174778.15
Okore WanyonyiOTHER Employer 0009169OTHERHouse HelpCONTRACT2023-10-27Not recorded37434.19
Wario Kochcha GalgaloHEALTHCARE Employer 0001476HEALTHCAREOffice AdministratorFULL-TIME1988-02-26Not recorded83182.61

Showing 3 of 100 sample rows and 8 of 65 fields. “Not recorded” is a display label; downloads retain original values.

Published field definitions · 8 visible fields

Resident name

The resident name exactly as supplied.

Original field: FullName
Example: Muia Mbatha

Employer name

The name recorded for the employer associated with this record.

Original field: EmployerName
Example: HEALTHCARE Employer 0000964

Employer sector code

The sector code recorded for the employer.

Original field: EmployerSectorCode
Example: HEALTHCARE

Job title

The title of the role recorded for this employment.

Original field: JobTitle
Example: General Manager

Employment arrangement

The type of employment arrangement recorded, such as permanent or temporary.

Original field: EmploymentType
Example: PART-TIME

Employment start date

The recorded employment start date.

Original field: StartDate
Example: 1995-02-13

Employment end date

The recorded employment end date, when present.

Original field: EndDate
Example: 2026-07-02

Gross monthly pay (local)

Gross monthly pay in local currency, as supplied.

Original field: GrossMonthlyLocal
Example: 174778.15

Research sample · rows and field definitions

Research sample

Employer nameJob titleEmployment arrangementContract referenceResident referenceHousehold referenceResident name
TRANSPORT Employer 0004288General StaffFULL-TIME674914979190508101Mbatha Murithi
Tuskys Supermarkets LimitedSales AssistantFULL-TIME964803987287630549Omondi Ouma
OTHER Employer 0000454House HelpFULL-TIME3194826692251076822Kimeli Bett

Showing 3 of 100 sample rows and 7 of 65 fields. “Not recorded” is a display label; downloads retain original values.

Published field definitions · 7 visible fields

Employer name

The name recorded for the employer associated with this record.

Original field: EmployerName
Example: TRANSPORT Employer 0004288

Job title

The title of the role recorded for this employment.

Original field: JobTitle
Example: General Staff

Employment arrangement

The type of employment arrangement recorded, such as permanent or temporary.

Original field: EmploymentType
Example: FULL-TIME

Contract reference

The reference used to identify the contract associated with this record.

Original field: ContractId
Example: 67491

Resident reference

The synthetic resident reference used to connect this record to other city data.

Original field: CitizenId
Example: 4979190

Household reference

The reference used to identify the household associated with this record.

Original field: HouseholdId
Example: 508101

Resident name

The full name assigned to the synthetic resident.

Original field: FullName
Example: Mbatha Murithi

Complete published field dictionary · 66 fields · sample 1
ContractIdContract reference
The reference used to identify the contract associated with this record.Example: 40097
CitizenIdResident reference
The synthetic resident reference used to connect this record to other city data.Example: 724227
HouseholdIdHousehold reference
Household reference as supplied in the employment extract; absent values remain unfilled.Example: 1509817
FullNameResident name
The resident name exactly as supplied.Example: Muia Mbatha
SnapshotDateSnapshot date
The supplied reference date. Hidden in displayed columns and retained in downloads.Example: 2026-07-02
DOBDate of birth
The resident’s recorded date of birth.Example: 1970-01-11
AgeAge at snapshot
Resident age at the supplied snapshot, including ended contracts.Example: 56
GenderGender
The gender recorded for the synthetic resident; M and F denote male and female in these samples.Example: M
EthnicGroupEthnic group
Ethnic group as supplied in the employment extract; absent values remain unfilled.Example: Kamba
WardNameWard name
Ward name as supplied in the employment extract; absent values remain unfilled.Example: Matopeni/Spring Valley
WardIncomeMultiplierWard income multiplier
Ward income multiplier as supplied in the employment extract; absent values remain unfilled.Example: 1.80
HouseholdTypeHousehold type
Household type as supplied in the employment extract; absent values remain unfilled.Example: Nuclear
HouseholdRoleHousehold role
Household role as supplied in the employment extract; absent values remain unfilled.Example: Head
HouseholdSizeHousehold size
Household size as supplied in the extract.Example: 4
EmployerIdEmployer reference
The reference used to identify the employer associated with this record.Example: 964
EmployerCodeEmployer code
The published code identifying the employer. Codes are retained as supplied in the source.Example: NRB-EMP/0000964
EmployerNameEmployer name
The name recorded for the employer associated with this record.Example: HEALTHCARE Employer 0000964
EmployerSectorCodeEmployer sector code
The sector code recorded for the employer.Example: HEALTHCARE
EmployerSizeEmployer size
The size category assigned to the employer in the published source.Example: LARGE
EmployerWardIdEmployer ward reference
Employer ward reference as supplied in the employment extract; absent values remain unfilled.Example: 67
EmployerWardNameEmployer ward name
Employer ward name as supplied in the employment extract; absent values remain unfilled.Example: Viwandani
EmployerIsActiveEmployer active
Whether the source marks the employer as active.Example: 1
DepartmentIdDepartment reference
The reference used to identify the department associated with this record.Example: 6636
DepartmentCodeDepartment code
Department code as supplied in the employment extract; absent values remain unfilled.Example: NRB-DEPT/0000964/4
DepartmentNameDepartment name
The name recorded for the department associated with this record.Example: Executive
JobTitleIdJob title reference
The reference used to identify the job title associated with this record.Example: EXEC03
JobTitleJob title
The title of the role recorded for this employment.Example: General Manager
EmploymentTypeEmployment arrangement
The type of employment arrangement recorded, such as permanent or temporary.Example: PART-TIME
StartDateEmployment start date
The recorded employment start date.Example: 1995-02-13
EndDateEmployment end date
The recorded employment end date, when present.Example: 2026-07-02
GrossMonthlyLocalGross monthly pay (local)
Gross monthly pay in local currency, as supplied.Example: 174778.15
ContractIsActiveContract active
Whether the source marks this employment contract as active.Example: 1
HasTerminationTermination recorded
Whether termination recorded, as supplied in this extract.Example: 0
TerminationDateTermination date
The date recorded for the termination event.Example: 2026-07-02
TerminationReasonTermination reason
The reason recorded for the termination event.Example: REDUNDANCY
IsVoluntaryVoluntary departure
Whether the employment termination is recorded as voluntary.Example: 0
HasPayrollRecordPayroll recorded
Whether payroll recorded, as supplied in this extract.Example: 1
LatestPayYearLatest pay year
Latest pay year as supplied in the employment extract; absent values remain unfilled.Example: 2026
LatestPayMonthLatest pay month
Latest pay month as supplied in the employment extract; absent values remain unfilled.Example: 7
LatestGrossAmountLatest gross amount
Latest gross amount as supplied in the employment extract; absent values remain unfilled.Example: 174778.15
LatestPayeAmountLatest PAYE deduction
Latest PAYE deduction as supplied in the employment extract; absent values remain unfilled.Example: 44816.80
LatestHealthInsuranceAmountLatest health insurance amount
Latest health insurance amount as supplied in the employment extract; absent values remain unfilled.Example: 1700.00
LatestPensionAmountLatest pension amount
Latest pension amount as supplied in the employment extract; absent values remain unfilled.Example: 1080.00
LatestNetAmountLatest net amount
Net pay in the latest supplied payroll record.Example: 127181.35
HasPensionContributionPension contribution recorded
Whether pension contribution recorded, as supplied in this extract.Example: 1
LatestEmployeeContribLocalLatest employee contrib local
Latest employee contrib local as supplied in the employment extract; absent values remain unfilled.Example: 1080.00
LatestEmployerContribLocalLatest employer contrib local
Latest employer contrib local as supplied in the employment extract; absent values remain unfilled.Example: 1080.00
BenefitCountBenefit count
The supplied count of benefit .Example: 3
LeaveRecordCountLeave record count
The supplied count of leave record .Example: 1
TotalDaysTakenTotal days taken
Total days taken as supplied in the employment extract; absent values remain unfilled.Example: 0
PromotionCountPromotion count
The supplied count of promotion .Example: 0
HasSelfEmploymentSelf-employment recorded
Whether self-employment recorded, as supplied in this extract.Example: 0
SelfEmploymentBusinessTypeSelf employment business type
Self employment business type as supplied in the employment extract; absent values remain unfilled.Example: Not recorded
SelfEmploymentIsActiveSelf employment is active
Self employment is active as supplied in the employment extract; absent values remain unfilled.Example: Not recorded
ProfessionalLicenseCountProfessional license count
The supplied count of professional license .Example: 0
ActiveProfessionalLicenseCountActive professional license count
The supplied count of active professional license .Example: 0
HasWorkPermitWork permit recorded
Whether work permit recorded, as supplied in this extract.Example: 0
WorkPermitTypeWork permit type
Work permit type as supplied in the employment extract; absent values remain unfilled.Example: CLASS-M
WorkPermitExpiryDateWork permit expiry date
Work permit expiry date as supplied in the employment extract; absent values remain unfilled.Example: 2025-10-27
WorkPermitStatusWork permit status
Work permit status as supplied in the employment extract; absent values remain unfilled.Example: REVOKED
HasUnionMembershipUnion membership recorded
Whether union membership recorded, as supplied in this extract.Example: 0
UnionNameUnion name
The name recorded for the union associated with this record.Example: COTU-Affiliated
UnionMembershipIsActiveUnion membership active
Whether the union membership is marked as active in the source record. In the source file, 1 means yes and 0 means no.Example: 1
HasBusinessOwnershipBusiness ownership recorded
Whether business ownership recorded, as supplied in this extract.Example: 0
OwnedBusinessCountOwned business count
The supplied count of owned business .Example: 0
SampleHashSample reference hash
The supplied row-selection hash, retained for source traceability.Example: 0x0024B29BED20224D48599C3E980F4C28DD2D4400BF7ABF8D0ECD4E3F25BB6905
Download complete field guide JSON ↓
Complete published field dictionary · 65 fields · sample 2
ContractIdContract reference
The reference used to identify the contract associated with this record.Example: 67491
CitizenIdResident reference
The synthetic resident reference used to connect this record to other city data.Example: 4979190
HouseholdIdHousehold reference
The reference used to identify the household associated with this record.Example: 508101
FullNameResident name
The full name assigned to the synthetic resident.Example: Mbatha Murithi
SnapshotDateSnapshot date
The date represented by this extract of the synthetic data.Example: 7/2/2026 12:00:00 AM
DOBDate of birth
The resident’s recorded date of birth.Example: 1/15/2007 12:00:00 AM
AgeAge
The resident’s age in years in this record.Example: 19
GenderGender
The gender recorded for the synthetic resident; M and F denote male and female in these samples.Example: Male
EthnicGroupEthnic group
The ethnic group assigned to the synthetic resident.Example: Meru
WardNameWard name
The name recorded for the ward associated with this record.Example: Eastleigh South
WardIncomeMultiplierWard income factor
The factor used to adjust modelled income for the ward; it is not a currency amount.Example: 0.55
HouseholdTypeHousehold type
The recorded household structure, such as a single-person or extended household.Example: Informal
HouseholdRoleRole in household
The resident’s recorded role within the household.Example: Child
HouseholdSizePeople in household
The number of residents recorded in the household.Example: 7
EmployerIdEmployer reference
The reference used to identify the employer associated with this record.Example: 4288
EmployerCodeEmployer code
The published code identifying the employer. Codes are retained as supplied in the source.Example: NRB-EMP/0004288
EmployerNameEmployer name
The name recorded for the employer associated with this record.Example: TRANSPORT Employer 0004288
EmployerSectorCodeEmployer sector code
The published code identifying the employer sector. Codes are retained as supplied in the source.Example: TRANSPORT
EmployerSizeEmployer size
The size category assigned to the employer in the published source.Example: LARGE
EmployerWardIdEmployer ward reference
The reference used to identify the employer ward associated with this record.Example: 65
EmployerWardNameEmployer ward name
The name recorded for the employer ward associated with this record.Example: Kariobangi South
EmployerIsActiveEmployer active
Whether the employer is marked as active in the source record. In the source file, 1 means yes and 0 means no.Example: Yes
DepartmentIdDepartment reference
The reference used to identify the department associated with this record.Example: 29452
DepartmentCodeDepartment code
The published code identifying the department. Codes are retained as supplied in the source.Example: NRB-DEPT/0004288/0
DepartmentNameDepartment name
The name recorded for the department associated with this record.Example: Operations
JobTitleIdJob title reference
The reference used to identify the job title associated with this record.Example: OPRN03
JobTitleJob title
The title of the role recorded for this employment.Example: General Staff
EmploymentTypeEmployment arrangement
The type of employment arrangement recorded, such as permanent or temporary.Example: FULL-TIME
StartDateStart date
The date recorded for the start event.Example: 2/20/2026 12:00:00 AM
EndDateEnd date
The date recorded for the end event.Example: 1/4/2021 12:00:00 AM
GrossMonthlyLocalGross monthly pay
The recorded monthly pay before deductions, in local currency.Example: 77425.69
ContractIsActiveContract active
Whether the contract is marked as active in the source record. In the source file, 1 means yes and 0 means no.Example: Yes
HasTerminationTermination recorded
Whether termination is present in the associated source record. In the source file, 1 means yes and 0 means no.Example: No
TerminationDateTermination date
The date recorded for the termination event.Example: 1/4/2021 12:00:00 AM
TerminationReasonTermination reason
The reason recorded for the termination event.Example: REDUNDANCY
IsVoluntaryVoluntary departure
Whether the employment termination is recorded as voluntary. In the source file, 1 means yes and 0 means no.Example: No
HasPayrollRecordPayroll record recorded
Whether payroll record is present in the associated source record. In the source file, 1 means yes and 0 means no.Example: Yes
LatestPayYearLatest pay year
The calendar year associated with latest pay in this record.Example: 2026
LatestPayMonthLatest pay month
The month associated with latest pay, recorded as a month number.Example: 7
LatestGrossAmountLatest gross amount
The recorded amount for latest gross, in the source’s local currency.Example: 77425.69
LatestPayeAmountLatest income tax deduction
The PAYE income tax amount in the latest payroll record, in local currency.Example: 15611.06
LatestHealthInsuranceAmountLatest health insurance amount
The recorded amount for latest health insurance, in the source’s local currency.Example: 1200.00
LatestPensionAmountLatest pension amount
The recorded amount for latest pension, in the source’s local currency.Example: 1080.00
LatestNetAmountLatest net amount
The recorded amount for latest net, in the source’s local currency.Example: 59534.63
HasPensionContributionPension contribution recorded
Whether pension contribution is present in the associated source record. In the source file, 1 means yes and 0 means no.Example: Yes
LatestEmployeeContribLocalLatest employee pension contribution
The employee contribution in the latest pension record, in local currency.Example: 1080.00
LatestEmployerContribLocalLatest employer pension contribution
The employer contribution in the latest pension record, in local currency.Example: 1080.00
BenefitCountBenefit count
The number of benefit records included in this extract for the associated person or entity.Example: 2
LeaveRecordCountLeave record count
The number of leave record records included in this extract for the associated person or entity.Example: 1
TotalDaysTakenLeave days taken
The total number of leave days recorded for the employment.Example: 0
PromotionCountPromotion count
The number of promotion records included in this extract for the associated person or entity.Example: 0
HasSelfEmploymentSelf employment recorded
Whether self employment is present in the associated source record. In the source file, 1 means yes and 0 means no.Example: No
SelfEmploymentBusinessTypeSelf employment business type
The category or type assigned to the self employment business in the source record.Example: Not provided
SelfEmploymentIsActiveSelf employment active
Whether the self employment is marked as active in the source record.Example: Not provided
ProfessionalLicenseCountProfessional license count
The number of professional license records included in this extract for the associated person or entity.Example: 0
ActiveProfessionalLicenseCountActive professional license count
The number of active professional license records included in this extract for the associated person or entity.Example: 0
HasWorkPermitWork permit recorded
Whether work permit is present in the associated source record. In the source file, 1 means yes and 0 means no.Example: No
WorkPermitTypeWork permit type
The category or type assigned to the work permit in the source record.Example: CLASS-G
WorkPermitExpiryDateWork permit expiry date
The date recorded for the work permit expiry event.Example: 9/11/2027 12:00:00 AM
WorkPermitStatusWork permit status
The state recorded for the work permit in this extract.Example: REVOKED
HasUnionMembershipUnion membership recorded
Whether union membership is present in the associated source record. In the source file, 1 means yes and 0 means no.Example: Yes
UnionNameUnion name
The name recorded for the union associated with this record.Example: Transport and Allied Workers Union
UnionMembershipIsActiveUnion membership active
Whether the union membership is marked as active in the source record. In the source file, 1 means yes and 0 means no.Example: Yes
HasBusinessOwnershipBusiness ownership recorded
Whether business ownership is present in the associated source record. In the source file, 1 means yes and 0 means no.Example: No
OwnedBusinessCountOwned business count
The number of owned business records included in this extract for the associated person or entity.Example: 0
Download complete field guide JSON ↓
Additional records and schema context 1 documented sections
From city labor structure to one citizen's contract.

From city labor structure to one citizen's contract.

Published release reference · These recorded checks are not a current rerun.

Inspect the published definitions and release context.

Read the published detail

Every row above is real and published on Nairobi release — not illustrative.

Direct synthetic records from the current City Twin™ release. No record represents a real worker.

Download 100-Row Research Sample (CSV) →

Explore Employment Data →

Public entity familyRepresentsDisclosure boundary
Employer contextSynthetic employer, sector and geography contextPhysical employer data structure is controlled
Work relationshipResident employment type and work-history contextExact fields, placement weights and dependency logic are controlled
Self-employmentInformal and self-employment contextAssignment logic and calibration parameters are controlled
Pay & transition contextCompensation, payroll and termination contextExact salary distributions and lifecycle rules are controlled
ContractIdEmployerSectorJobTitleTypeGross/moStartDate

Connections

Known and possible relationships

Inspect the published definitions and release context.

Domain or contextRelationship and published scope
DemographicsCitizen identity, date of birth and death bound the working life; ward context locates the resident.
BusinessEmployment contracts can connect through employer and sector context. The business reference is optional; it is not assumed for every contract or self-employment record.
Area contextEmployer placement and informal work can be analysed by ward. A shared area does not establish a worker-to-business record link.
TransportA cross-domain pair is registered, but the published Employment guide says the Transport side is not generated. This is a possible commute relationship, not an available employment-to-trip join.
Social ProtectionEmployment and benefit eligibility are analytically related. No direct employment-to-benefit causal link is asserted.
Full relationship reference 1 documented sections
Known and possible relationships.

Known and possible relationships.

Inspect the published definitions and release context.

Read the published detail

Connections follow the published domain scope. Optional, contextual and planned relationships retain their stated limits below.

Domain or contextRelationship and published scope
DemographicsCitizen identity, date of birth and death bound the working life; ward context locates the resident.
BusinessEmployment contracts can connect through employer and sector context. The business reference is optional; it is not assumed for every contract or self-employment record.
Area contextEmployer placement and informal work can be analysed by ward. A shared area does not establish a worker-to-business record link.
TransportA cross-domain pair is registered, but the published Employment guide says the Transport side is not generated. This is a possible commute relationship, not an available employment-to-trip join.
Social ProtectionEmployment and benefit eligibility are analytically related. No direct employment-to-benefit causal link is asserted.

Domain guide

Employment · archived guide edition

Striped Donkey V5.89 - 7 September 2026

Counts, prices and “live/today” certification statements reflect this dated edition. They are not a current rerun or offer. The current scope, known limits and accepted quote take priority.

Published scope and limits

Termination records currently represent employer collapse; other termination pathways remain unpopulated. Some catalogue job titles are unused. Education, household, banking and insurance links are unbuilt; the Transport pairing is registered but ungenerated. Milestones are sourced; intervening splits are calibrated.

Read the source limits →
Accessible HTML reference 5 documented sections
Modelled entities.

Modelled entities.

Explore the entities and states represented by this domain.

Read the published detail

FCTE Employment represents the formal and informal work, income, benefits and career events needed to model the labor market within the wider city.

Employers, departments, job titles and contracts — Compensation context, employment type, payroll history and statutory-deduction context.

Represents income-generating work outside formal payroll structures, including self-employment, casual and gig work, and small-enterprise activity, with dated work and income context linked to the synthetic resident lifecycle.

Promotions, terminations and re-employment — a citizen can change jobs, be laid off and start a new contract elsewhere, all as dated, connected rows.

A yearly, per-city historical employment index modifier that shifts formal-employment formation and termination pressure — the labor market reacts to conditions, it doesn't run on autopilot.

Real, fully defunct national employers populated so their real collapse ripples through citizens' employment history — not a fabricated ongoing company.

Leave, employee benefits, pension contributions, union membership, work permits and professional licenses tied to the same contract.

Synthetic, not administrative payroll data: FCTE Employment does not reproduce a real employer's payroll registry or a real citizen's pay slip. It generates statistically grounded synthetic employment relationships bounded by real regulatory and wage frameworks.

Work moves through a life, not just a payroll run.

Work moves through a life, not just a payroll run.

Inspect the published definitions and release context.

Read the published detail

Employment is not a single status flag attached to a citizen — it moves through the same lifecycle stages every other domain does, bounded by the citizen's own demographic history.

Employment stays temporally consistent with the citizen's own demographic history — a contract cannot start before age 18 or after the citizen's own death. certification check / certification check enforce the age-18 floor for contracts and self-employment; certification check enforces that a contract cannot start after its own citizen's death date.

Employment conditions respond to the city’s historical economic context.

Employment conditions respond to the city’s historical economic context.

Inspect the published definitions and release context.

Read the published detail

FCTE carries a yearly city-level economic condition signal into employment formation and termination pressure. The public site shows direction and historical context, but not the exact transformation formula, clamps, thresholds or coefficients.

Years without a material shock retain the city’s calibrated employment structure.

Contractionary periods increase informal-employment and termination pressure; expansionary periods move the model in the opposite direction. Exact response magnitudes are controlled.

Interpretation boundary: economic context changes population-level synthetic tendencies; it does not assert that a specific real person’s employment outcome was caused by a particular policy or event.

The labor market remembers its collapses.

The labor market remembers its collapses.

Inspect the published definitions and release context.

Read the published detail

this City Twin™ carry real, fully defunct national employers — populated so their genuine collapse traces as employment history for the citizens who worked there, not a fabricated ongoing company. Every Termination row that exists on Nairobi today traces to one of these four employers. Select a marker to see the underlying evidence.

Cohort date windows and headcount milestones above are real and sourced (Wikipedia, Business Daily Africa, Capital Business, African Pilot Magazine, TechCabal). The size split within each window is this engine's own modeled shape, not an individually sourced percentage.

Explore Historical Employer Records →

Evidence becomes a synthetic career through a controlled lifecycle.

Evidence becomes a synthetic career through a controlled lifecycle.

Review the documented generation rules and assumptions.

Read the published detail

The public model shows the employment lifecycle and evidence categories. Exact phase ordering, thresholds, assignment probabilities, repair logic and orchestration remain internal.

Labor-force, sector and historical-employer evidence.

Area and sector context derived from published city evidence.

City-level behavior is calibrated to cited evidence and checked at release level. Exact weights, coefficients and thresholds remain controlled.

Individual synthetic assignments are generated under controlled domain rules. Exact sampling, assignment order and parameterization are not published.

View Employment release history →

Evidence & limits

Scope and known limits

Termination records currently represent employer collapse; other termination pathways remain unpopulated. Some catalogue job titles are unused. Education, household, banking and insurance links are unbuilt; the Transport pairing is registered but ungenerated. Milestones are sourced; intervening splits are calibrated.

Evidence, findings and release history 3 documented sections
Known limits.

Known limits.

Termination records currently represent employer collapse; other termination pathways remain unpopulated. Some catalogue job titles are unused. Education, household, banking and insurance links are unbuilt; the Transport pairing is registered but ungenerated. Milestones are sourced; intervening splits are calibrated.

Read the published detail

Automatic contract closure for deceased citizens is now a permanent part of Nairobi employment generation.

Every Termination row live on Nairobi Twin™ today traces to a historical employer collapse (REDUNDANCY). The broader day-to-day resignation, retirement and misconduct termination pathway is built into the model but has not yet populated non-collapse rows.

No synthetic citizen corresponds to a real worker. Job titles, wages and employer names are statistically generated, not drawn from a real payroll registry.

The job title catalog contains more valid titles than are realized in the current generated employment population. Catalog coverage is broader than observed usage, and no certification rule currently requires every catalog title to appear in a generated Contract or Employee record.

The real dated milestones — store counts, headcounts, liquidation dates — are sourced. The modeled splits between those milestones (e.g. Nakumatt's 70/20/10) are this engine's own shape, not an individually sourced percentage.

Education, Households, Finance/Banking and Insurance links to Employment are not yet built in this engine. The Transport pairing (XREL-004) is registered but not yet generated on the Transport side.

View All Employment Limitations →

Does the synthetic labor market resemble the city?

Does the synthetic labor market resemble the city?

Inspect the published definitions and release context.

Read the published detail

Three realism dimensions are already sourced and passing on this City Twin™ — not a placeholder pass.

Open Employment Realism Report →

The full certification battery (structural, temporal, career, qualification, licence, wage-floor and salary-reconciliation checks together) runs live against the Nairobi release. 37 of 41 checks pass; the remaining 3 are known, disclosed residuals with a published rationale, not silent gaps — a credentialed title with no matching completed education record is reported as unverified rather than backfilled with a fabricated qualification, and the same discipline applies to the license-coverage and job-family-coverage checks.

Explore Every Employment Check →

Employment V1 froze 2026-08-18 at FCTE Quality Rating 9.7/10 — a post-freeze corrective patch (v2.0.1) subsequently reduced a Nairobi department-assignment residual from 38,418 to 349 by widening 21 employer-department size thresholds; the remaining 349 is a disclosed legacy-generation method residual (331 pre-fix rows preserved, not remediated retroactively; 18 still pending classification), with zero unrelated regressions. See the full disclosed-residual rationale →

  • certification check — Employer volume: 20,004 combined
  • certification check / E04 — Contract 2,105,311 active / SelfEmployment 4,134,020 active
  • certification check / E07 — resident-reference integrity — 0 violations
  • certification check — Department volume: 40,008 — exactly 4× Employer, Nairobi (fixed 2026-08-03, was an 8-row near-miss)
  • certification check / E17 — Contract / SelfEmployment StartDate within [DOB+18, NowDate] — 0 violations
  • certification check — EndDate ≥ StartDate — 0 violations
  • certification check — Termination ≥ Contract StartDate — 0 violations
  • certification check — Contract StartDate ≤ own citizen DeathDate — 0 violations
  • certification check — 3 distinct EmploymentType values in use
  • certification check — Wage spread > 5× min-to-max, Nairobi
  • certification check — IsActive/Termination-row consistency — 0 mismatches
Employment improves as evidence and models improve.

Employment improves as evidence and models improve.

Inspect the published definitions and release context.

Read the published detail

View Full Employment Release History →

Access & datasets

Scope your data request

Choose the records, dates and connected domains you need. Final availability, delivery scope and licensing are agreed with your quote.

Published access and recorded examples 1 documented sections
Recorded example.

Recorded example.

Published release reference · These recorded checks are not a current rerun.

Explore the supplied synthetic example and its source references.

Read the published detail

A real, documented retail collapse exists in Employer — peak 65 stores, 5,500+ employees, liquidated January 2020.

Sales Assistant at Nakumatt, KES 116,800.00/mo, 2007-07-14 → 2017-10-25 — a real, published Contract row.

Falls inside Nakumatt's real Oct–Dec 2017 collapse cohort — the dominant closure wave, sourced to real store-closure dates.

Sales Assistant at a Manufacturing-sector employer, KES 116,800.00/mo — same salary carried into the new contract, active today.

Available as Standalone Domain · Multi-Domain Bundle · Full City Twin™