<div class="section-label"><span class="num">06</span> Grid Insights</div>
<div class="section-title">Impact on fit and impact on <em>prediction</em>.</div>
A [[Grid Prediction]] result includes variable-level **Impact on Fit** and **Impact on Prediction**. Reach for those first. They come with the usual Grid result; you do not need cell-level tables to see them.
<div class="pillars">
<div class="pillar">
<div class="pillar-num">↳ IOF</div>
<div class="pillar-title">Impact on Fit</div>
<div class="pillar-text">How much each attribute changes conviction / reliability for this prediction.</div>
</div>
<div class="pillar">
<div class="pillar-num">↳ IOP</div>
<div class="pillar-title">Impact on Prediction</div>
<div class="pillar-text">How much each attribute changes the forecast itself for this prediction.</div>
</div>
<div class="pillar">
<div class="pillar-num">↳ +</div>
<div class="pillar-title">Variable weights</div>
<div class="pillar-text">How inclusion mass is distributed across attributes on the composite.</div>
</div>
</div>
Unlike a single t-statistic, these capture **total** importance for the task, including relationships that show up only across combinations, and they are tied to the reliability of *this* prediction, not only an average across many tasks.
## Read these first
| Result name | Field | Shape | What it tells you |
| --- | --- | --- | --- |
| **Impact on Fit** | <span class="mono">impact_on_fit</span> | K | Does including this variable strengthen or weaken fit / conviction? |
| **Impact on Prediction** | <span class="mono">impact_on_prediction</span> | K | Does including this variable pull the forecast up or down? |
| **Variable weights** | <span class="mono">variable_weights</span> | K | Share of inclusion mass on each variable (sums to 1) |
Example: <span class="mono">result.grid_insights.impact_on_fit</span>
## Missing values in X
By default (<span class="mono">adjust_impact_for_missing</span> on), incomplete columns are not scored with the plain include-versus-exclude contrast. Combinations that include that column zero-weight rows that are missing in it, which makes the attribute look too weak. Impact for those columns is instead how much the real column beats an uninformative stand-in: observed cells replaced with noise that has the same mean and spread as that column's observed training values, with missing rows left as missing.
Complete columns keep the usual include-versus-exclude Impact. The composite forecast, fit, variable weights, and CCTP are **not** rewritten. Set <span class="mono">adjust_impact_for_missing</span> off on [[Settings/Options#GridOptions|GridOptions]] for the pre-adjustment baseline.
## Also available
| Result name | Field | Shape | When it appears |
| --- | --- | --- | --- |
| Component contribution to prediction | <span class="mono">component_contribution_to_prediction</span> | K | Usual Grid result |
| Solo composite weights | <span class="mono">xi_solo_composite</span> | N | When you retain <span class="mono">ysolo_distribution</span> |
## Longer technical names
Prefer **Impact on Fit** / **Impact on Prediction** in analysis and reporting. The same arrays are also stored under longer names (and short codes in some native docs):
| Prefer | Also stored as | Short code |
| --- | --- | --- |
| <span class="mono">impact_on_fit</span> | <span class="mono">marginal_contribution_to_conviction</span> | MCTC |
| <span class="mono">impact_on_prediction</span> | <span class="mono">marginal_contribution_to_prediction</span> | MCTP |
> [!tip]
> Talk and plot **Impact on Fit** and **Impact on Prediction**. Treat MCTC / MCTP as implementation names, not the story you tell stakeholders.
Per-combination tables are separate: [[Results/Grid Cells|Grid Cells]].
---
<div class="btn-row center">
<a class="btn-primary" href="/Functions/Grid%20Prediction">Grid Prediction</a>
<a class="btn-ghost" href="/Results/Grid%20Cells">Grid Cells</a>
</div>