# US Labor Market — Unemployment + LFP — Gradio Space # Loads live from CalcFi Open Data (CC BY 4.0) import io import pandas as pd import requests import gradio as gr HF_BASE = "https://huggingface.co/datasets/iizy/calcfi-open-data/resolve/main/datasets" SERIES = { "Unemployment rate": "unemployment-rate", "Labor force participation": "labor-force-participation", } def load(slug: str) -> pd.DataFrame: url = f"{HF_BASE}/{slug}/data.csv" r = requests.get(url, timeout=30) r.raise_for_status() df = pd.read_csv(io.StringIO(r.text), comment="#") df["date"] = pd.to_datetime(df["date"], errors="coerce") df = df.dropna(subset=["date", "value"]) df["value"] = pd.to_numeric(df["value"], errors="coerce") return df.dropna(subset=["value"]) def chart(start_year: int, selected_labels): frames = [] for label in selected_labels: slug = SERIES.get(label) if not slug: continue df = load(slug) df = df[df["date"].dt.year >= start_year].copy() df["series"] = label frames.append(df[["date", "value", "series"]]) if not frames: return pd.DataFrame(columns=["date", "value", "series"]) return pd.concat(frames, ignore_index=True) with gr.Blocks(title="US Labor Market — Unemployment + LFP", theme=gr.themes.Soft()) as demo: gr.Markdown("# US Labor Market — Unemployment + LFP\n\nUnemployment · Labor Force Participation, loaded live from [CalcFi Open Data](https://huggingface.co/datasets/iizy/calcfi-open-data) (CC BY 4.0).") with gr.Row(): start = gr.Slider(minimum=1971, maximum=2024, value=1990, step=1, label="Start year") picks = gr.CheckboxGroup(choices=list(SERIES.keys()), value=list(SERIES.keys()), label="Series") plot = gr.LinePlot(x="date", y="value", color="series", overlay_point=False, height=420, tooltip=["date", "value", "series"]) inputs = [start, picks] start.change(chart, inputs=inputs, outputs=plot) picks.change(chart, inputs=inputs, outputs=plot) demo.load(chart, inputs=inputs, outputs=plot) gr.Markdown( "**Sources:** BLS via FRED UNRATE · BLS via FRED CIVPART\n\n" "**Methodology:** \n\n" "**Citation:** Salmisto, J. (2026). CalcFi Open Data. Figshare. https://doi.org/10.6084/m9.figshare.32332290\n\n" "**Free calculator suite:** [calcfi.app](https://calcfi.app)" ) demo.launch()