{"main_topic":"immigration","sub_topic":"deportation_data","topic":"ice_detention_stays","key":"immigration/deportation_data/ice_detention_stays","version":"1.0.0","year_min":2022,"year_max":2026,"year_gaps":[],"update_frequency":"irregular","detail_levels":["counties","states"],"default_detail":"states","path_template":"immigration/ice_detention_stays/year={year}/{detail}.parquet","grain":["year","month","county_fips","demographic","arresting_agency_group","release_reason","citizenship_country"],"title":"ICE Detention Stays at Georgia Facilities","summary":"People held in ICE detention at Georgia facilities (by longest facility): stays begun each month, how long they lasted, and how they ended.","description":"Stays in ICE detention whose longest facility was in Georgia, October 2022 through 6 August 2026, from the ICE detention records released under FOIA (Hausman v. ICE) and processed to the stay level by the Deportation Data Project. A stay is one uninterrupted period in ICE custody, possibly across several facilities, located here at the facility where the person spent the longest. Counts of stays begun and ended, the average length of ended stays, and the average number of facilities per stay, by calendar month, ICE's gender determination, the arresting agency (ICE or CBP), how the stay ended, and citizenship country at state level; annual totals by the facility's county.","source":"U.S. Immigration and Customs Enforcement detention records released under FOIA (Hausman v. ICE), processed to one row per detention stay by the Deportation Data Project","source_url":"https://deportationdata.org/data/processed/ice.html","endpoint":"/api/v1/immigration/ice_detention_stays","columns":[{"name":"year","type":"integer","role":"year","nullable":false,"label":"Year","short_description":"","description":"Calendar year the stay began (from stay_book_in_date_time) - NOT the federal fiscal year ICE reports by. 2022 covers October-December only; 2026 runs through 6 August.","valid_values":null,"example":2025,"unit":null,"value_min":null,"value_max":null,"null_meaning":null,"key_metric_grain_contributor":false,"metric_component":null},{"name":"month","type":"string","role":"categorical","nullable":false,"label":"Month","short_description":"Calendar month the stay began, or 'all' for the year.","description":"Calendar month the stay began, '01'-'12', or 'all' for the calendar-year total. County rows carry 'all' only (monthly counts are published at state grain).","valid_values":["all","01","02","03","04","05","06","07","08","09","10","11","12"],"example":"all","unit":null,"value_min":null,"value_max":null,"null_meaning":null,"key_metric_grain_contributor":true,"metric_component":null},{"name":"county_fips","type":"string","role":"fk_county","nullable":true,"label":"County FIPS","short_description":"","description":"5-digit FIPS of the county of the DETENTION FACILITY where the person spent the longest part of the stay (county_longest) - the facility's county, not the person's residence. Georgia's ICE facilities sit in Stewart (Stewart Detention Center), Charlton (the Folkston processing centers), Irwin, Fulton (the Atlanta hold room and the federal penitentiary), Clayton (Robert A. Deyton), plus county jails that hold ICE detainees for short periods (Floyd, Cobb, and a few others whose counts are withheld). NULL on state rows; stays whose longest facility has no county in the source (the Savannah hold room) appear in state rows only.","valid_values":null,"example":"13259","unit":null,"value_min":null,"value_max":null,"null_meaning":null,"key_metric_grain_contributor":false,"metric_component":null},{"name":"demographic","type":"string","role":"fk_demographic","nullable":false,"label":"Demographic","short_description":"","description":"ICE's own gender determination (agency-assigned, not self-reported): 'male', 'female', or 'all'. ICE's 'Unknown' counts toward 'all' only, so male + female is at most 'all'. County rows carry 'all' only.","valid_values":["all","female","male"],"example":"all","unit":null,"value_min":null,"value_max":null,"null_meaning":null,"key_metric_grain_contributor":true,"metric_component":null},{"name":"arresting_agency_group","type":"string","role":"categorical","nullable":false,"label":"Arresting Agency Group","short_description":"Which agency's program produced the arrest: ICE or CBP.","description":"The Deportation Data Project's program-group flag (apprehension_final_program_group) for the arrest that led to the stay: 'ice' (an ICE program) or 'cbp' (a Border Patrol / port of entry program); a NULL flag in the source is published as 'unknown' so the three parts sum exactly to 'all'. County rows carry 'all' only.","valid_values":["all","cbp","ice","unknown"],"example":"ice","unit":null,"value_min":null,"value_max":null,"null_meaning":null,"key_metric_grain_contributor":true,"metric_component":null},{"name":"release_reason","type":"string","role":"categorical","nullable":false,"label":"Release Reason","short_description":"How the stay ended, or 'still_detained'.","description":"How the stay ended (stay_release_reason), collapsed to the sub_topic's shared vocabulary: 'removed', 'transferred' (ICE's stay-closing code 'Transferred' - rare at stay level, and in Georgia four of five such stays are followed by another ICE stay for the same person within days, so it marks a re-booking gap, not a hand-off out of ICE custody), 'released_on_bond', 'released_on_order' (recognizance or supervision), 'paroled', 'other' (a mixed bucket: transfer to the U.S. Marshals or another agency - the actual hand-off out of ICE custody - voluntary departure/return, relief granted, proceedings terminated, court ordered, administrative re-processing, death, escape); 'still_detained' = no book-out at extraction (a real category, not missingness); 'all' = total. County rows carry 'all' only.","valid_values":["all","other","paroled","released_on_bond","released_on_order","removed","still_detained","transferred"],"example":"removed","unit":null,"value_min":null,"value_max":null,"null_meaning":null,"key_metric_grain_contributor":true,"metric_component":null},{"name":"citizenship_country","type":"string","role":"categorical","nullable":false,"label":"Citizenship Country","short_description":"Citizenship country (22 named, else 'other').","description":"Citizenship country as recorded by ICE, mapped to the sub_topic's shared vocabulary: the 22 countries most frequent among Georgia records across the ICE and EOIR sources, 'other' for every other country, 'unknown' for stateless / unknown labels; 'all' = total. Published at state grain only - county rows carry 'all'.","valid_values":["all","brazil","china","colombia","cuba","dominican_republic","ecuador","el_salvador","guatemala","haiti","honduras","india","jamaica","mauritania","mexico","nicaragua","nigeria","peru","russia","senegal","south_korea","venezuela","vietnam","other","unknown"],"example":"mexico","unit":null,"value_min":null,"value_max":null,"null_meaning":null,"key_metric_grain_contributor":true,"metric_component":null},{"name":"num_stays","type":"integer","role":"metric","nullable":true,"label":"Number Stays","short_description":"Stays in ICE detention that began in the cell.","description":"Number of stays - uninterrupted periods in ICE detention, possibly across several facilities - that began in the cell's month/year and whose LONGEST facility is in Georgia (or the county). A stay is not a person: someone detained twice is two stays. Includes stays still open at extraction. State rows are complete (a 0 is a real zero); county counts below 5, zero included, are withheld as NULL.","valid_values":null,"example":2415,"unit":"count","value_min":null,"value_max":null,"null_meaning":"withheld: fewer than 5, including zero - county rows only; state rows are complete","key_metric_grain_contributor":false,"metric_component":null},{"name":"num_stays_ended","type":"integer","role":"metric","nullable":true,"label":"Number Stays Ended","short_description":"Stays in the cell that had ended by 6 August 2026.","description":"Stays in the cell with a book-out date by the coverage end (2026-08-06) - the N that avg_stay_length_days averages over; num_stays - num_stays_ended is the number still detained at extraction. Recent months have many open stays, so this lags num_stays there. County counts below 5, zero included, are withheld as NULL.","valid_values":null,"example":2298,"unit":"count","value_min":null,"value_max":null,"null_meaning":"withheld: fewer than 5, including zero - county rows only; state rows are complete","key_metric_grain_contributor":false,"metric_component":"denominator"},{"name":"avg_stay_length_days","type":"number","role":"metric","nullable":true,"label":"Average Stay Length Days","short_description":"Average days in ICE detention, ended stays only.","description":"Mean stay_length_days (book-in to book-out, fractional days) over the stays in the cell that had ENDED by 2026-08-06, i.e. sum of lengths / num_stays_ended. Open stays are excluded, so the most recent months are biased SHORT: the long stays that are still open are missing from their book-in month, and a rising or falling series near the end of the window can be a censoring artifact. No unit (days). §4b: a length below 0 or above the coverage window (1405 days) is NULLed before averaging; none occur in the window.","valid_values":null,"example":61.4,"unit":null,"value_min":null,"value_max":null,"null_meaning":"state rows: no stay in the cell has ended yet (num_stays_ended = 0); county rows: withheld because num_stays_ended was withheld","key_metric_grain_contributor":false,"metric_component":null},{"name":"avg_facilities_per_stay","type":"number","role":"metric","nullable":true,"label":"Average Facilities per Stay","short_description":"Average number of facilities a stay passed through.","description":"Mean n_stints - the number of facility stints making up the stay - over ALL stays in the cell (open ones included): a measure of transfer intensity, 1.0 meaning nobody was moved. No unit. §4b: an n_stints below 1 is NULLed before averaging; none occur.","valid_values":null,"example":3.1,"unit":null,"value_min":null,"value_max":null,"null_meaning":"state rows: no stays in the cell (num_stays = 0); county rows: withheld because num_stays was withheld","key_metric_grain_contributor":false,"metric_component":null}],"key_metric":"avg_stay_length_days","usage":"Star-schema fact table. Join the counties dimension on county_fips; the demographics dimension on demographic. Read directly with DuckDB over Parquet.","limitations":"Calendar years, not federal fiscal years: `year` and `month` come from `stay_book_in_date_time` (the date the stay began), so figures here will NOT match ICE's own or DDP's published FY totals (federal FY runs October 1 - September 30). Coverage is the release window 2022-10-01 through 2026-08-06: calendar 2022 is October-December only and 2026 stops on 6 August, so both end years are partial and a year-over-year chart dips at both ends. Stays that began BEFORE the window (1,747 Georgia stays by longest facility, reaching back to 2004) are the left-censored residue of detentions still open when the FOIA window opened, not a series, and are dropped. A stay is one uninterrupted period in ICE detention, possibly across several facilities (transfers do not end a stay), and this topic locates it at the facility where the person spent the LONGEST: Georgia holds 32,988 stays by first facility, 70,116 by longest and 46,097 by last facility, so a 'detentions in Georgia' figure depends on the reading and only the longest-facility reading is published here. A stay that begins in Georgia frequently does not end there - 47% of stays whose first facility was in Georgia ended in another state, chiefly Louisiana and Texas (Rapides, Evangeline; El Paso, Cameron) - while people first booked in Fulton are largely moved on to Stewart and Folkston. Geography is the DETENTION FACILITY'S county, never the person's residence: Stewart, Charlton, Irwin, Fulton and Clayton hold ICE facilities (Floyd and Cobb county jails also hold ICE detainees for short periods), and nothing here says where the detained person lived. 99.98% of Georgia stays resolved to a county (16 state-only, at a facility with no county in the source), so county rows sum to slightly less than the state total. Disclosure control (the platform's own rule; the source has none): county rows are annual totals with every categorical pinned to `all` (`month` and `citizenship_country` are published at state grain only), on a complete 159-county x 5-year grid; any county count below 5 - ZERO INCLUDED - is withheld as NULL, with complementary suppression so a withheld cell cannot be recovered by subtraction. A county NULL therefore means 'fewer than five, possibly none', never a real zero; state rows are complete and a state 0 is a real zero. At county grain num_stays - num_stays_ended (the still-open count) is published by implication even when small; it is a count of a category at a large facility, not an identity, and the state series publishes it directly. CENSORING: `avg_stay_length_days` averages ENDED stays only (8.2% of Georgia stays in the window were still open at extraction, 24% of those that began in 2026), so the most recent months are biased short - the long stays still in progress are missing from their book-in month - and an apparent fall (or rise, as they close) in average length near the end of the window can be a censoring artifact rather than a change in practice. `num_stays - num_stays_ended` is the open count in each cell. `demographic` is ICE's own gender determination (`Male` / `Female`), not self-reported; ICE's `Unknown` counts toward `all` only, so male + female is at most `all`. `citizenship_country` names the 22 countries most frequent in Georgia records; everything else is `other`. `arresting_agency_group` is the Deportation Data Project's program-group flag for the arrest that led to the stay (ICE vs CBP), not an ICE field; a NULL flag is published as `unknown`. `release_reason` collapses ICE's release labels to six outcome groups plus `still_detained` (no book-out by 2026-08-06).","null_semantics":{"suppressed_to_null":true,"zero_is_real":true},"available_years":[2022,2023,2024,2025,2026],"schema_hash":"ff3841f38c3de0cb8c88884deb9546fec6d1810eb65c082ef4c6b338e4eb892b","tags":["immigration","u.s. immigration and customs enforcement detention records released under foia","ice_detention_stays"],"granularity_description":"One row per year, month, county_fips, demographic, arresting_agency_group, release_reason, citizenship_country (geography columns are NULL at higher aggregation levels).","example_queries":[{"description":"Latest year (2026), states detail","query":"SELECT * FROM ice_detention_stays WHERE year = 2026 LIMIT 100"},{"description":"Filter by month = all","query":"SELECT * FROM ice_detention_stays WHERE month = 'all' AND year = 2026 LIMIT 100"}],"foreign_keys":[{"column":"county_fips","target_object":"counties","target_columns":["county_fips"],"attribute_columns_added":["county_name"],"scope":"global"},{"column":"demographic","target_object":"demographics","target_columns":["demographic"],"attribute_columns_added":["demographic_label","demographic_category"],"scope":"global"}],"filters":[{"param":"year","kind":"year_exact","type":"integer","multi_value":false,"enum_enforced":false,"values":null},{"param":"year_min","kind":"year_range","type":"integer","multi_value":false,"enum_enforced":false,"values":null},{"param":"year_max","kind":"year_range","type":"integer","multi_value":false,"enum_enforced":false,"values":null},{"param":"detail","kind":"detail","type":"string","multi_value":false,"enum_enforced":true,"values":["counties","states"],"default":"states"},{"param":"county_fips","kind":"foreign_key","column":"county_fips","type":"string","multi_value":true,"enum_enforced":false,"values":null},{"param":"demographic","kind":"foreign_key","column":"demographic","type":"string","multi_value":true,"enum_enforced":true,"values":["all","female","male"]},{"param":"month","kind":"categorical","column":"month","type":"string","multi_value":true,"enum_enforced":true,"values":["all","01","02","03","04","05","06","07","08","09","10","11","12"],"has_total":true,"total_value":"all","requires_single_value":false,"nullable":false,"null_filter_token":null},{"param":"arresting_agency_group","kind":"categorical","column":"arresting_agency_group","type":"string","multi_value":true,"enum_enforced":true,"values":["all","cbp","ice","unknown"],"has_total":true,"total_value":"all","requires_single_value":false,"nullable":false,"null_filter_token":null},{"param":"release_reason","kind":"categorical","column":"release_reason","type":"string","multi_value":true,"enum_enforced":true,"values":["all","other","paroled","released_on_bond","released_on_order","removed","still_detained","transferred"],"has_total":true,"total_value":"all","requires_single_value":false,"nullable":false,"null_filter_token":null},{"param":"citizenship_country","kind":"categorical","column":"citizenship_country","type":"string","multi_value":true,"enum_enforced":true,"values":["all","brazil","china","colombia","cuba","dominican_republic","ecuador","el_salvador","guatemala","haiti","honduras","india","jamaica","mauritania","mexico","nicaragua","nigeria","peru","russia","senegal","south_korea","venezuela","vietnam","other","unknown"],"has_total":true,"total_value":"all","requires_single_value":false,"nullable":false,"null_filter_token":null},{"param":"demographic_category","kind":"dimension_attribute","dimension":"demographics","column":"demographic_category","type":"string","multi_value":true,"enum_enforced":true,"values":["aggregate","disability","economic_status","esol","foster_care","gender","grade","homeless_status","migrant_status","military","race","sped"]}],"filter_hints":[],"values_endpoint":"/api/v1/immigration/ice_detention_stays/values"}