Create a custom object when a business entity needs its own records, relationships, permissions, and reporting. A shipment has a lifecycle separate from an account, even when every shipment belongs to a customer. A new text field on Account cannot represent an unlimited collection of shipment records.
The label is what people read. The API name is the stable identifier used by formulas and integrations; custom names end in __c. Decide whether the object should support reports and whether its role hierarchy should open record access. Those choices have consequences beyond its first form. Use a singular label and a clear plural label, then check that the definition expresses the entity your team needs to manage.