Lookup or master-detail — what actually changes when you pick one?
Testing Whether the answer stops at roll-up summaries or reaches the sharing model.
Master-detail makes the child dependent on the parent: the parent is required, deleting the parent deletes the children, the child has no owner of its own, and I can put roll-up summary fields on the parent. A lookup is a loose link — optional, the child keeps its own owner and sharing, and no roll-ups without extra work. An object can have two master-detail relationships and up to 40 lookups.
The roll-up is the visible difference and the sharing is the consequential one. A master-detail child has no owner and no sharing of its own — its access is Controlled by Parent — so choosing master-detail is choosing who can see the child, permanently, based on the parent. That is usually what you want for line items and almost never what you want for something a different team owns. Cascade delete is the other commitment: deleting a parent takes the children with it, which is right for detail rows and alarming for anything with history. And conversion is not free either way, because turning a lookup into a master-detail requires every one of the existing children to have the field populated, and at 400,000 rows that is a data project.
They'll ask next Can a master-detail child be reparented?
Only if Allow Reparenting was set on the relationship. Left off, the link is fixed once the record exists.
They'll ask next How do you get a roll-up over a lookup?
Apex, a flow, or a declarative roll-up tool. All of them are code or configuration you now own and have to keep correct on every path.