GDP Weighted Mean Calculation Skill
This skill handles Excel workbooks that require:
- Two-key lookups (series code + year) using INDEX/MATCH
- Net exports as % of GDP calculations
- Descriptive statistics (min, max, median, mean, percentiles)
- GDP-weighted mean using SUMPRODUCT
Quick Start
pythonimport sys sys.path.insert(0, '/app/environment/skills/evo-gdp-weighted-mean/scripts') from utils import run_end_to_end # Run the complete workflow run_end_to_end('/root/gdp.xlsx')
Functions
run_end_to_end(input_path, output_path=None)
Complete workflow: discovers layout, writes all formulas, saves, recalculates with LibreOffice, and validates.
discover_task_layout(wb)
Discovers the Task sheet structure at runtime: year row, export/import/GDP rows, net export rows, statistics rows.
discover_data_layout(wb)
Discovers the Data sheet structure: header row, series code column, year columns, data range.
write_lookup_formulas(wb, task_layout, data_layout)
Writes INDEX/MATCH formulas for two-key lookups (series code + year).
write_net_export_formulas(wb, task_layout)
Writes (Exports - Imports) / GDP * 100 formulas.
write_statistics_formulas(wb, task_layout)
Writes MIN, MAX, MEDIAN, AVERAGE, PERCENTILE formulas.
write_weighted_mean_formula(wb, task_layout)
Writes SUMPRODUCT-based weighted mean formula.
validate_workbook(filepath)
Checks that all expected cells contain formulas.
validate_calculated_values(filepath)
After LibreOffice recalculation, checks for formula errors like #REF!, #NAME?, etc.


