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"]))