Texas Vs California 税后收入对比

Shadow Walker 2025-10-16

Overview

开个记录讨论一下 TX vs CA 的税后收入

California

Estimated take home for CA

Gross Income Payroll Taxes* Federal Income Tax† CA State Tax‡ Estimated Take-Home
$200,000 $ (6.2% × 160,200) + (1.45% × 200,000) = ~ $9,932 + $2,900 = $12,832 ~ tax on (200,000 – 15,750) = tax on ~$184,250 → approx $37,500 ~ effective ~8.5% on taxable → ~ $15,700 $200,000 – (12,832 + 37,500 + 15,700) = $134,000
$250,000 Payroll: $9,932 + (1.45% × 250,000) = 9,932 + 3,625 = $13,557 Taxable ~ (250,000 – 15,750) = 234,250 → federal ≈ $58,000 CA state ~ ≈ $20,500 $250,000 – (13,557 + 58,000 + 20,500) = $157,943
$300,000 Payroll: 9,932 + (1.45% × 300,000) + (0.9% surtax on 100,000) = 9,932 + 4,350 + 900 = $15,182 Taxable ~ 284,250 → federal ≈ $69,300 CA state ~ ≈ $26,500 $300,000 – (15,182 + 69,300 + 26,500) = $189,018
$350,000 Payroll: 9,932 + (1.45% × 350,000) + (0.9% × 150,000) = 9,932 + 5,075 + 1,350 = $16,357 Taxable ~ 334,250 → federal ≈ $84,000 CA state ~ ≈ $32,500 $350,000 – (16,357 + 84,000 + 32,500) = $217,143
$400,000 Payroll: 9,932 + (1.45% × 400,000) + (0.9% × 200,000) = 9,932 + 5,800 + 1,800 = $17,532 Taxable ~ 384,250 → federal ≈ $100,000 CA state ~ ≈ $38,500 $400,000 – (17,532 + 100,000 + 38,500) = $243,968
$500,000 Payroll: 9,932 + (1.45% × 500,000) + (0.9% × 300,000) = 9,932 + 7,250 + 2,700 = $19,882 Taxable ~ 484,250 → federal ≈ $139,000 CA state ~ ≈ $48,500 $500,000 – (19,882 + 139,000 + 48,500) = $292,618

Subtract yearly spending ($60,000)

Monthly spending $5000, rent is already $3000.

Gross Income Take-Home Yearly Spending Annual VOO Investment / Savings
$200 K $134,000 $60,000 $74,000
$250 K $157,943 $60,000 $97,943
$300 K $189,018 $60,000 $129,018
$350 K $217,143 $60,000 $157,143
$400 K $243,968 $60,000 $183,968
$500 K $292,618 $60,000 $232,618

Texas

Estimated take home for TX

Gross Income Payroll Taxes* Federal Income Tax† State Tax (Texas) Estimated Take-Home
$200,000 Social Security up to limit + Medicare: 0.062 × 160,200 + 0.0145 × 200,000 = 9,932 + 2,900 = $12,832 On taxable ≈ (200,000 – 15,000) = 185,000 → federal ≈ $35,000 (rough) $0 $200,000 – (12,832 + 35,000) = $152,168
$250,000 9,932 + (0.0145 × 250,000) = 9,932 + 3,625 = $13,557 Taxable ~ (250,000 – 15,000) = 235,000 → federal ≈ $53,500 $0 $250,000 – (13,557 + 53,500) = $182,943
$300,000 9,932 + (0.0145 × 300,000) + (0.009 × 100,000) = 9,932 + 4,350 + 900 = $15,182 Taxable ~ 285,000 → federal ≈ $65,000 $0 $300,000 – (15,182 + 65,000) = $219,818
$350,000 9,932 + (0.0145 × 350,000) + (0.009 × 150,000) = 9,932 + 5,075 + 1,350 = $16,357 Taxable ~ 335,000 → federal ≈ $78,500 $0 $350,000 – (16,357 + 78,500) = $255,143
$400,000 9,932 + (0.0145 × 400,000) + (0.009 × 200,000) = 9,932 + 5,800 + 1,800 = $17,532 Taxable ~ 385,000 → federal ≈ $94,000 $0 $400,000 – (17,532 + 94,000) = $288,468
$500,000 9,932 + (0.0145 × 500,000) + (0.009 × 300,000) = 9,932 + 7,250 + 2,700 = $19,882 Taxable ~ 485,000 → federal ≈ $130,000 $0 $500,000 – (19,882 + 130,000) = $350,118

Subtract yearly spending ($36,000)

Monthly total spending $3000. Rent is $1200.

Gross Income Take-Home Yearly Spending Annual VOO Investment / Savings
$200 K $152,168 $36,000 $116,168
$250 K $182,943 $36,000 $146,943
$300 K $219,818 $36,000 $183,818
$350 K $255,143 $36,000 $219,143
$400 K $288,468 $36,000 $252,468
$500 K $350,118 $36,000 $314,118

Example Comparison

Let’s do a quantitative breakdown comparing based on Amazon SDE II:

  • Austin, TX: $262,000 total compensation
  • California (Bay Area): $312,000 total compensation

We’ll use our earlier tax assumptions and your spending patterns.


🧾 Step 1. Estimate after-tax income

Using the same approach as before:

Location Gross Income Payroll Taxes Fed Income Tax State Tax Take-Home (Approx)
Texas (Austin) $262,000 ~$13,000 ~$56,000 $0 $193,000
California (Bay Area) $312,000 ~$15,500 ~$72,000 ~$27,000 $197,500

🟰 Result: Take-home pay is very close — roughly $193K in Texas vs $197.5K in CA (within $4–5K).


🏠 Step 2. Adjust for spending differences

You said:

  • TX monthly spending = $3,000 → $36,000/year
  • CA monthly spending = $5,000 → $60,000/year

Subtract those:

Location Take-Home Yearly Spending Net Savings (for VOO)
Austin, TX $193,000 $36,000 $157,000
Bay Area, CA $197,500 $60,000 $137,500

Result: You save $19,500 more per year in Texas despite lower nominal pay.


📈 Step 3. 10-year projection (VOO @ 7% annual return)

Location Annual Investment 10 yrs @ 7% CAGR 20 yrs @ 7% CAGR
Austin, TX $157,000 $2.18 M $4.88 M
Bay Area, CA $137,500 $1.91 M $4.28 M

讨论

Based on the data from levels.fyi, for SDE 1 and 2, TX > CA. Only when gets to SDE 3 in Amazon, CA will be slightly higher than TX. But we still need to assume monthly spending in CA is 5k and monthly cost in TX is 3k, which may not be true for many people.

Python code to compare TX and CA

import bisect

# Federal brackets for 2025, single filers (taxable income) per BipartisanPolicy / sources :contentReference[oaicite:0]{index=0}
FED_BRACKETS = [
    (11_925, 0.10),
    (48_475, 0.12),
    (103_350, 0.22),
    (197_300, 0.24),
    (250_525, 0.32),
    (626_350, 0.35),
    (float("inf"), 0.37),
]

# Californ ia brackets for single filers (taxable income) — approximate from “2025 California and Federal Income Tax Brackets” :contentReference[oaicite:1]{index=1}
CA_BRACKETS = [
    (10_756, 0.01),
    (25_499, 0.02),
    (40_245, 0.04),
    (55_866, 0.06),
    (70_606, 0.08),
    (360_659, 0.093),
    (432_787, 0.103),
    (721_314, 0.113),
    (float("inf"), 0.123),
]

STANDARD_DEDUCTION = 15_750  # for single in 2025 per IRS news :contentReference[oaicite:2]{index=2}

def compute_federal_tax(taxable: float) -> float:
    """Compute federal income tax on taxable income using marginal brackets."""
    tax = 0.0
    lower = 0
    for (upper, rate) in FED_BRACKETS:
        width = upper - lower
        if taxable <= upper:
            tax += (taxable - lower) * rate
            break
        else:
            tax += width * rate
        lower = upper
    return tax

def compute_state_tax_ca(taxable: float) -> float:
    """Compute California state tax for a single filer (approx)."""
    tax = 0.0
    lower = 0
    for (upper, rate) in CA_BRACKETS:
        width = upper - lower
        if taxable <= upper:
            tax += (taxable - lower) * rate
            break
        else:
            tax += width * rate
        lower = upper
    return tax

def compute_payroll_taxes(gross: float) -> float:
    """
    Compute employee share of Social Security + Medicare + additional Medicare surtax.
    Social Security: 6.2% up to wage base (we use ~160,200 or appropriate; can be parameterized).
    Medicare: 1.45% on all wages + 0.9% additional above 200,000.
    """
    # assumptions
    ss_wage_base = 160_200  
    ss = min(gross, ss_wage_base) * 0.062
    medicare = gross * 0.0145
    addl_medicare = 0.0
    if gross > 200_000:
        addl_medicare = (gross - 200_000) * 0.009
    return ss + medicare + addl_medicare

def after_tax_income(gross: float, state: str) -> float:
    """
    Compute after-tax (take-home) for a single filer in given state.
    state must be either "CA" or "TX".
    """
    payroll = compute_payroll_taxes(gross)
    # taxable income = gross minus standard deduction
    taxable = max(0.0, gross - STANDARD_DEDUCTION)
    fed_tax = compute_federal_tax(taxable)
    state_tax = 0.0
    if state == "CA":
        state_tax = compute_state_tax_ca(taxable)
    # in TX, no state income tax
    return gross - (payroll + fed_tax + state_tax)

def compare_states(gross_tx: float, gross_ca: float, annual_spending_tx: float, annual_spending_ca: float):
    """
    Compare two scenarios: Texas vs California.
    Returns a dict with take-home incomes and investable amounts.
    """
    after_tx = after_tax_income(gross_tx, "TX")
    after_ca = after_tax_income(gross_ca, "CA")

    investable_tx = max(0.0, after_tx - annual_spending_tx)
    investable_ca = max(0.0, after_ca - annual_spending_ca)

    return {
        "take_home_tx": after_tx,
        "investable_tx": investable_tx,
        "take_home_ca": after_ca,
        "investable_ca": investable_ca,
    }

if __name__ == "__main__":
    # Example parameters (you can modify)
    gross_tx = 367_000
    gross_ca = 510_150
    annual_spending_tx = 36_000   # e.g. 3,000/mo
    annual_spending_ca = 60_000   # e.g. 5,000/mo

    result = compare_states(gross_tx, gross_ca, annual_spending_tx, annual_spending_ca)
    print("Texas: take-home = ${:,.0f}, investable = ${:,.0f}".format(
        result["take_home_tx"], result["investable_tx"]))
    print("California: take-home = ${:,.0f}, investable = ${:,.0f}".format(
        result["take_home_ca"], result["investable_ca"]))