Where a "program" was used in OpenADR, Sections 5 and 7 use "agreement" e.g. agreementID and agreementName as a generalization.
Section 6 uses the term "contract", e.g. contractID.
Since all of these are either agreements or contracts, both should use the same term. I suggest "contract" be used for all definitions.