Shipmind Labs

You can't recompute a credit score. It is a decision, and a decision has to be reproducible months later.

We hit this while building in-house scoring and rating models for a lending marketplace with borrower tiers and moderation.

The pattern repeats. A borrower disputes a rejection, or a reviewer asks why a deal was issued at the tier it was. Someone reruns the scorer against the current database, and it comes back with a different answer.

Nothing is broken. The borrower's data moved on, the model was retrained, a threshold was tuned. But now you have no way to show what was actually decided, or why.

What works for us: treat every scoring run as a write-once artifact. The feature values exactly as they were read, the model version, the thresholds in force, the resulting tier, and the reason codes. The live model stays free to change, the record does not. Re-screening writes a new decision next to the old one instead of overwriting it.

The storage cost is trivial next to the cost of arguing without evidence.

There is a second payoff that we think most teams miss: this is also the only honest way to evaluate the model. Comparing predictions against real repayment behaviour needs the inputs that were actually used, not today's version of them.

So if you run scoring or risk models in production, it is worth checking whether you persist the feature snapshot with the decision or recompute it when someone asks.

Was this useful?

Building something similar?

or email hello@shipmindlabs.com