|  | 135s | 126s | 126s |  | 
 |  |  |  |  |  | 
 | 1_read_txns: Load txns from parquet |  |  |  |  | 
| 1_read_accounts: Load accounts from parquet |  |  |  |  | 
| 1_read_period_holdings: Load holdings from parquet |  |  |  |  | 
| 2_account_txns_outer: For each account, merge all txns into single json string |  |  |  |  | 
| 2_account_period_holdings_outer: For each account, merge all holdings into single json string |  |  |  |  | 
| 3_build_account_period_activity: For each account, merge holdings and txns |  |  |  |  | 
| 4_calc_account_period_perf: Apply Python-based calculations to account holdings and txns |  |  |  |  | 
| 5_tag_by_period: Tag accounts by period name |  |  |  |  | 
| 5_tag_by_sector: Tag accounts by sector |  |  |  |  | 
| 6_perf_json_to_columns: Use Python to read perf json and save stats as columns |  |  |  |  | 
| 7_file_account_period_sector_perf: Write yearly/quarterly perf results by sector to parquet file |  |  |  |  | 
| 7_file_account_year_perf: Write yearly perf results for all sectors to parquet file |  |  |  |  |