Every row above is captured from the run itself: the feature group that produced it, its content-hashed version, the exact columns in and out, row counts, and wall-clock duration.
Step 3 emits nine columns: FinancialExtraction~revenue through ~interest_expense, plus ~llm_summary. Step 4 consumes all nine and emits FinancialScoring~health_score, ~risk_grade and ~policy_json, among others.
The scoring on this page is a faithful browser port of health_score.py and policy_segment.py, same weights, same weakest-link cap, same grade bands. A test in the repo runs both against the same inputs so they cannot drift apart.
Run on PandasDataFrame, mloda 0.11.1, scenario demo_unsure. The AI provider is one environment variable: LLM_BACKEND, and changing it leaves every other step untouched.