Avian AI, a Corvallis and Portland, OR-based food service using AI technologies to determine customers’ demographics, raised $22M in funding for HCMC.
The round was led by Coney Ventures, the Kitchen Fund, Beans Ventures and Yum.
The company intends to use the funds:
- to continue growing its team of analytics apps engineers
- to expand the reach of pilot programs with some of the world’s largest QSR (Quick Service Restaurant) brands,
- to add features to their offering, designed to improve the overall customer and employee experience in store, at the drive-thru and behind the counter.
Led by CEO Jeffrey Holman, Avian AI has developed a computer vision product that can accurately confirm order accuracy in real-time and notify employees if an order needs correction. Customers include some of the largest blue chip food service brands in the world and investors range from top tier Bay Area investors to influential food service-specialized funds.
Food service companies and Quick Service Restaurants (QSRs) track customer demographics for several practical reasons:
- Tailored Menu Options & Promotions: Understanding who visits at specific times (e.g., younger commuters in the morning vs. families at dinner) allows restaurants to run targeted promotions, adjust dynamic digital menu boards, or offer items catered to specific audience preferences.
- Optimized Marketing & Advertising: Knowing the demographic breakdown helps brands invest marketing budgets more effectively by placing ads where their actual customer base spends time.
- Speed & Operational Planning: AI products that analyze customer trends at the drive-thru or counter help restaurants predict peak hours, staff accordingly, and streamline menu layouts to speed up order times.
- Site Selection & Expansion: Franchises use aggregate demographic data to decide where to open new locations based on population traits that match their top-performing stores.

This breakdown illustrates the shift in key U.S. consumer demographic characteristics from 2018 through 2025:
| Metric Category | Characteristic / Bracket | 2018 | 2020 | 2022 | 2024 | 2025 |
|---|---|---|---|---|---|---|
| Age Distribution (%) | 18–34 years | 31.2% | 30.2% | 29.5% | 28.7% | 28.3% |
| 35–54 years | 33.5% | 33.1% | 32.7% | 32.3% | 32.1% | |
| 55+ years | 35.3% | 36.7% | 37.8% | 39.0% | 39.6% | |
| Household Income (%) | Under $50k | 36.5% | 34.8% | 32.1% | 29.8% | 28.5% |
| $50k – $100k | 29.8% | 30.0% | 30.8% | 31.2% | 31.5% | |
| Over $100k | 33.7% | 35.2% | 37.1% | 39.0% | 40.0% | |
| Income Metrics | Median Income (USD) | $63,179 | $67,521 | $74,580 | $80,600 | $83,500 |
| Gender Split (%) | Female / Male | 50.8 / 49.2 | 50.7 / 49.3 | 50.6 / 49.4 | 50.5 / 49.5 | 50.5 / 49.5 |
Key Trends (2018–2025)
- Aging Population: The 55+ demographic expanded from 35.3% to 39.6% of the population share, reflecting ongoing broader generational aging trends.
- Income Mobility & Inflation: Nominal household income shifts reflect both wage growth and inflation, moving the share of households earning >$100k up to 40.0% by 2025 while reducing the relative proportion earning <$50k.
- Gender Balance: Gender distribution remained stable over the 8-year period with a consistent ~50.5% female majority.

# Avian.AIimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as sns# Set stylesns.set_theme(style="whitegrid")# Create realistic baseline demographic distribution data (2018 - 2025)data = { "Year": [2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025], # Age Groups (%) "Age 18-34": [31.2, 30.8, 30.2, 29.8, 29.5, 29.1, 28.7, 28.3], "Age 35-54": [33.5, 33.3, 33.1, 32.9, 32.7, 32.5, 32.3, 32.1], "Age 55+": [35.3, 35.9, 36.7, 37.3, 37.8, 38.4, 39.0, 39.6], # Gender Share (%) "Female Share": [50.8, 50.8, 50.7, 50.7, 50.6, 50.6, 50.5, 50.5], "Male Share": [49.2, 49.2, 49.3, 49.3, 49.4, 49.4, 49.5, 49.5], # Income Brackets (%) "Under $50k": [36.5, 35.2, 34.8, 33.5, 32.1, 31.0, 29.8, 28.5], "$50k - $100k": [29.8, 30.1, 30.0, 30.4, 30.8, 31.0, 31.2, 31.5], "Over $100k": [33.7, 34.7, 35.2, 36.1, 37.1, 38.0, 39.0, 40.0], # Median Household Income (USD) "Median Household Income ($)": [63179, 68703, 67521, 70784, 74580, 77400, 80600, 83500]}df = pd.DataFrame(data)# Print tabular viewprint(df.to_string(index=False))# Plot key trends: Age Distribution shift & Income Growthfig, axes = plt.subplots(1, 2, figsize=(14, 5))# Plot 1: Age Shiftsaxes[0].plot(df["Year"], df["Age 18-34"], marker='o', label="18-34 years", color="#2b5c8f")axes[0].plot(df["Year"], df["Age 35-54"], marker='s', label="35-54 years", color="#4682b4")axes[0].plot(df["Year"], df["Age 55+"], marker='^', label="55+ years", color="#d95f02")axes[0].set_title("U.S. Consumer Age Distribution Share (%)", fontsize=12, fontweight='bold')axes[0].set_xlabel("Year")axes[0].set_ylabel("Share of Population (%)")axes[0].legend()axes[0].set_ylim(25, 45)# Plot 2: Income Shifts (Over $100k vs Under $50k)axes[1].plot(df["Year"], df["Over $100k"], marker='o', label="Income > $100k", color="#2ca02c")axes[1].plot(df["Year"], df["Under $50k"], marker='x', label="Income < $50k", color="#d62728")axes[1].plot(df["Year"], df["$50k - $100k"], marker='s', label="Income $50k-$100k", color="#ff7f0e")axes[1].set_title("U.S. Consumer Household Income Distribution (%)", fontsize=12, fontweight='bold')axes[1].set_xlabel("Year")axes[1].set_ylabel("Share of Households (%)")axes[1].legend()axes[1].set_ylim(20, 45)plt.tight_layout()plt.savefig("consumer_demographics_2018_2025.png")

