On real data, a poor result may reflect model misspecification, an optimization or implementation error, or properties of the data.
Synthetic data specifies the generative law, so we can test whether a compatible method recovers known parameters:
\mathbf{y} = \mathbf{X}\mathbf{w}^* + b^* + \boldsymbol{\epsilon},
\qquad \boldsymbol{\epsilon}\sim\mathcal{N}(0,\sigma^2 I).
Agreement with \mathbf{w}^*,b^* supports the implementation on this controlled problem. Systematic disagreement indicates an optimization or implementation problem, provided the fitted model matches the generator.