It sounds like you want looked up values.
This is possible inside of the schema settings without the need for any scripting.
Basically your estimate fields "look up" the value from the related contact.
This is similar to how rate charts for order systems and medical coding tables work.
Here's a good 2-part tutorial on using lookups:
Thank you! Works great