retention – Moving SharePoint items between document sets based on two columns

We have a library of document sets that contains our invoices. The library becomes very large (~ 70,000 items, currently 32,000 different bills). The search in this library is rather slow and we plan to programmatically move the sets of documents from one library to another.

We want to base the movement on two fields: Invoice Date and Invoice Status.

Billing date is a DateTime column that can be used through the Library Information Management Policy settings. We want to move the document sets to "Billing dates older than 13 months" or trigger the workflow / event on the billing date + 13 months.

Status of the invoice is a column of choice with some options defined. We want to trigger the move when the status is "Finished".

We would like the document to be placed in another document library or other easily accessible folder if we need it, and that invoices be moved only if the billing date AND the status of the invoice meet our criteria.

The Basic Information Management Policy Settings trigger works only with DateTime, and you can not create a custom policy with this trigger. In addition, no library can be connected via the "Move to another location" option.

Any advice on how this can be accomplished? Some form of documentation would be much appreciated. I am a little comfortable with the use of C # or another language if it needs to be programmed directly.