DataFrame + Window functions
w = Window.partitionBy('company_id').orderBy('year', 'quarter')
df = (df
.withColumn('net_debt_to_ebitda', net_debt / ebitda)
.withColumn('current_ratio', current_assets / current_liabilities)
.withColumn('prev_revenue_m', lag('revenue_m').over(w))
.withColumn('revenue_growth_pct', (revenue - prev_revenue) / prev_revenue * 100)
.withColumn('financial_stress_score', leverage + liquidity + coverage + growth)
)