Indian Fake Data Generator
A generator for culturally accurate, statistically consistent mock Indian demographic profiles, backed by Census 2011 data. Two native implementations, identical features and CLI.
Statistically consistent
Religion, caste, state, language, education and income are correlated. No Sikh named Mohammed Sharma from Mizoram.
Census 2011 backed
Hand-calibrated approximations from Census 2011, NFHS-5 and survey data, bundled in. No runtime downloads.
Whole families
Generate a full household from one seed: head, spouse, parents, children and siblings with consistent surnames and ages.
Seeded and reproducible
Seeds can be numbers or strings ('011'). Same seed, same
person, every time.
Zero dependencies
Both packages are dependency-free. Node 18+ or Python 3.8+, works offline.
AI-training ready
Optional layers add credit scores, narratives (loan applications, Hinglish chats) and LLM agent personas.
New in 2.0.9
- Work history —
employmentTimeline: chronological job spells with title, sector, tenure and wages. - Skills —
skills: technical/soft lists, certifications, per-language speaking/reading/writing levels. - New narratives —
resumeandcustomer_support_chat. - Persona languages —
english,hindi,hinglish(--persona-lang). - CLI shaping —
--fields,--stats,--strip-pii,--mask-names,--validate. - Trust — versioned JSON Schema (
schema/profile-2.0.9.json),validateProfile,stripPII.
New in 2.1.0
- Native script —
nativeScript: names and address in the mother-tongue script. - Map points —
geo: approximate latitude/longitude, state-clamped. - Life events —
lifeEvents: dated birth, marriage, children, moves and jobs. - Household money —
householdEconomy: budget splits, loans with EMI, credit history. - Festivals — dated observances by religion and state, derived on demand for personas and chats.
- Smarter jobs — occupation follows education; job titles match the field of study.
- AI training data —
buildSFTPairs, groundedbuildQAPairswith citations, and the--evalquality score.
Sample profile — seed = 7 (Python implementation)
{
"id": "d6e2a61e-e297-4eb4-9866-5fb355fbc2ea",
"synthetic": true,
"generator": "indian-fakedata@2.1.0",
"firstName": "Sarwan",
"lastName": "Das",
"fatherName": "Shetan Das",
"motherName": "Girijarani Kumari",
"spouseName": "Kishan Das",
"gender": "female",
"age": 40,
"state": "Andhra Pradesh",
"district": "Guntur",
"areaType": "urban",
"religion": "Hindu",
"caste": "Madiga",
"socialCategory": "SC",
"motherTongue": "Telugu",
"education": "graduate",
"occupation": "other_worker",
"maritalStatus": "married",
"annualIncomeINR": 1235000,
"aadhaarNumber": "839128189565",
"panNumber": "FMMPD7406C",
"phoneNumber": "9444448053",
"email": "sarwan.das645@gmail.com",
"appearance": {"heightCm": 144.0, "build": "average", "faceShape": "round", "skinTone": "deep_brown", "noseType": "button", "eyeColor": "dark_brown", "eyeShape": "almond", "hairColor": "black", "hairTexture": "wavy", "hairLength": "medium", "facialHair": null},
"nativeScript": {"script": "Telugu", "language": "Telugu", "firstName": "సర్వన", "lastName": "దస", "district": "గుంతుర", "addressLine": "492/గ, జయనగర, గుంతుర"},
"geo": {"latitude": 15.7495, "longitude": 80.2038},
"personalityTraits": {"summary": "An outgoing, people-oriented person who is open-minded, easy-going and assertive. They feel things deeply and care about those around them.", "strengths": ["creative and curious", "adapts to change quickly", "stands their ground"], "weaknesses": ["worries about small things", "needs company to feel energised", "procrastinates under pressure"], "traitLabels": ["open-minded", "easy-going", "outgoing", "assertive", "sensitive"], "communicationStyle": "expressive", "decisionStyle": "intuitive", "socialBehavior": "outgoing"},
"educationTimeline": [
{"level": "primary", "stageName": "Primary School", "institutionName": "Government Primary School, Guntur", "institutionType": "government", "boardOrUniversity": "AP State Board", "startYear": 1991, "endYear": 1997, "status": "completed", "score": "52.8%"},
{"level": "middle", "stageName": "Middle School", "institutionName": "Government Middle School, Guntur", "institutionType": "government", "boardOrUniversity": "AP State Board", "startYear": 1997, "endYear": 2000, "status": "completed", "score": "56.7%"},
{"level": "secondary", "stageName": "Secondary School", "institutionName": "Government High School, Guntur", "institutionType": "government", "boardOrUniversity": "AP State Board", "startYear": 2000, "endYear": 2002, "status": "completed", "score": "61.0%"},
{"level": "higher_secondary", "stageName": "Higher Secondary School", "institutionName": "Government Higher Secondary School, Guntur", "institutionType": "government", "boardOrUniversity": "AP State Board", "startYear": 2002, "endYear": 2004, "status": "completed", "stream": "PCM", "score": "52.8%"},
{"level": "graduate", "stageName": "Bachelor's Degree", "institutionName": "Government Post Graduate College, Guntur", "institutionType": "government", "boardOrUniversity": "University of Andhra Pradesh", "startYear": 2004, "endYear": 2008, "status": "completed", "fieldOfStudy": "Computer Science/IT", "score": "56.5%"}
],
"employmentTimeline": [
{"jobTitle": "Receptionist", "sector": "private", "occupation": "other_worker", "employerType": "private", "startYear": 2007, "status": "completed", "monthlyWageINR": 48000, "location": "Guntur", "endYear": 2009},
{"jobTitle": "Sales Executive", "sector": "private", "occupation": "other_worker", "employerType": "private", "startYear": 2009, "status": "completed", "monthlyWageINR": 74200, "location": "Guntur", "endYear": 2022},
{"jobTitle": "IT Support Executive", "sector": "private", "occupation": "other_worker", "employerType": "private", "startYear": 2022, "status": "current", "monthlyWageINR": 102900, "location": "Guntur"}
],
"skills": {"technical": ["Commercial Cooking"], "soft": ["Teamwork", "Time Management"], "certifications": [], "languages": [{"language": "Telugu", "speaking": "native", "reading": "fluent", "writing": "fluent"}, {"language": "Hindi", "speaking": "intermediate", "reading": "intermediate", "writing": "intermediate"}, {"language": "English", "speaking": "intermediate", "reading": "intermediate", "writing": "intermediate"}]},
"lifeEvents": [
{"year": 1986, "event": "born", "detail": "Born in Guntur."},
{"year": 2004, "event": "migrated", "detail": "Migrated from Karnataka to Andhra Pradesh."},
{"year": 2007, "event": "job_started", "detail": "Started working as Receptionist."},
{"year": 2009, "event": "job_changed", "detail": "Changed job to Sales Executive."},
{"year": 2009, "event": "married", "detail": "Married Kishan Das."},
{"year": 2010, "event": "child_born", "detail": "Birth of child 1."},
{"year": 2022, "event": "job_changed", "detail": "Changed job to IT Support Executive."}
],
"householdEconomy": {"monthlyBudget": {"food": 46324, "housing": 19007, "transport": 8691, "education": 6372, "health": 8706, "other": 0}, "loans": [], "creditHistory": {"score": 782, "activeLoans": 0, "missedPayments12m": 0, "oldestAccountYears": 0}},
"moviePreferences": {"genres": ["Drama", "Sports drama/Biopic", "Family drama"], "favoriteLanguages": ["Telugu", "Hindi"], "anime": false, "animePreferences": null, "favoriteAnimeTitles": null, "primaryPlatform": "television", "watchFrequency": "occasional"}
}
Install
pip install indian-fakedata # Python 3.8+
npm install @abhay557/indian-fakedata # Node.js 18+ Both packages are on PyPI and npm, version 2.1.0, with zero runtime dependencies.