Build it from two sides: the account matrix (firmographics, technographics, trigger events) and the persona matrix (roles, responsibilities, the problem they own). Then score real accounts against both and check the score against closed-won history — an ICP that doesn't predict your own wins isn't one.
Value the accounts as well as scoring them, because fit and worth are different questions and territory design needs the second one. Keep the scoring logic in one place so it can be re-run when the definition changes, and define the trigger that forces a re-score.
Every claim above comes from work LeanScale published. These are the sources.