We generally use the date of delivery. The only requirement is that the delivery event for the order fulfillment is correctly updated in your Shopify store. The majority of carriers / integrations does this automatically but it makes sense to double check on your side.
Take a look at the order status page - the one your customer usually uses for tracking their shipment:
If the carrier updates shipping information on your order correctly, you should see a delivery event on this page.
If shipment information is never updated from the carrier side then the shipment status is either not available on this page at all or stuck at a specific stage, e.g. "in transit" or similar. In this case check with your carrier / integration / 3rd party app how this information can be updated on your order.
If we cannot find a delivery event on your order we have a fallback to the last update of the fulfillment object on your order.