Bihar ration surname counts

Estimand

The artifact counts the final eligible token written in each Bihar ration-card member name. It is a grouped description of source transcriptions, not a claim that the token is a legal or hereditary family surname.

One output row represents one conservatively normalized token. The artifact contains no person names, member identifiers, household identifiers, relationships, father names, ages, or phone numbers.

Selection and grouping rules

  • Names are read from family_members_tables.sub_table, a JSON household roster, using the सदस्य का नाम field.

  • The existing Bihar rule selects the final token containing at least two alphabetic characters after leading honorific removal.

  • One-token names and names without an eligible token abstain.

  • Devi, Rani, Kumari, Kumar, Singh, and similar tokens are retained.

  • Grouping uses surname_source_normalized. No transliteration, edit-distance merge, canonicalization, or household surname inference is applied.

  • surname_raw_mode is the most common source spelling within a normalized group. Equal counts are resolved by lexical order so the result is stable.

  • member_count counts selected member names. household_count counts a token at most once per JSON roster.

The source parser’s members_qty can include blank roster rows that are absent from the stored JSON. The audit therefore reports both declared and parsed member totals and the number of households where they differ.

Output dictionary

Field

Meaning

surname_source_normalized

Conservative same-script grouping key

surname_raw_mode

Most frequent exact selected spelling

surname_raw_mode_count

Members carrying the modal raw spelling

raw_variant_count

Distinct exact spellings in the normalized group

member_count

Selected member names in the group

household_count

Distinct roster rows containing the group

surname_provenance

bihar_ration_written_final_token

normalization_revision

Normalization implementation revision

aggregate_revision

Immutable aggregation-contract revision

Command

upnaam aggregate-bihar-ration bihar_ration_surname_counts.parquet \
  --part ration_cards.sqlite.gz.001 \
  --part ration_cards.sqlite.gz.002 \
  --index ration_cards.sqlite.gzidx \
  --audit bihar_ration_counts_audit.json \
  --manifest bihar_ration_counts_manifest.json

The command streams the source table once and writes only grouped counts. A --limit-households run is explicitly marked incomplete in its audit and manifest.

Complete source run

The first complete run produced:

Quantity

Count

Household rosters

17,696,683

Parsed member rows

85,798,262

Members with a selected final token

79,358,176

Members abstained

6,440,086

Households with at least one selected token

17,539,149

Distinct normalized token groups

310,949

Selection coverage is 92.49% of parsed member rows, and 99.11% of households contain at least one selected token. The selected and abstained counts sum exactly to the parsed-member count.

Every household has a declared-member count exactly one larger than its stored JSON roster. In aggregate, 103,494,945 declared members minus 85,798,262 parsed members equals the 17,696,683 household rows. The grouped artifact therefore uses parsed member rows as its denominator.

The most frequent groups demonstrate why this is a written-token artifact:

Normalized token

Members

Households

देवी

15,339,399

12,041,496

कुमार

14,327,800

8,087,238

कुमारी

13,734,026

7,993,738

यादव

1,925,044

1,234,088

खातुन

1,877,580

1,083,947

खातून

1,834,963

1,204,874

सिंह

1,547,852

1,019,133

राम

1,297,666

828,559

पासवान

1,177,938

760,953

साह

1,079,015

755,051

These groups have not been transliterated or reconciled. For example, खातुन and खातून remain separate, as do Devanagari and Latin renderings of Devi. That separation is the input to canonicalization, not an error in aggregation.