Design Recommendation Needed
I have a table used as a Cost Estimator. The user fills out values in a form, and the table outputs a series of costs based on formula fields.
There are some 200 individual costs that are calculated based on the user's input. For example, a vendor license cost is calculated by # of Users times the Unit Cost of a license. The # of Users is user entered, and the Unit Cost is hardcoded into the formula. Example, [# of Users] * 1.50 where # of Users is entered in the form and 1.50 is the current unit cost of the license.
This works as long as the unit costs don't change. Once the unit cost changes, it changes the value of the field for all historical Records in the table which is inaccurate.
The two routes to preserve the integrity of the historical records while allowing new records to be created with new unit costs are to utilize snapshot fields which will freeze a field value, or look up the unit cost from another table every time the record is opened based on a date in the record.
Here is where I am running into trouble. For the snapshot method, I don't know how to make the field default to a specific record in the Unit Cost Table. For example, I have 200 unit costs in a table. I need to default each of those unit costs into their own fields in the form. It is not up to the end user to choose which Units they want.
For the look up the unit costs from another table every time, I don't know how to make the formula look to the right version of the unit cost in the reference table based on the date in the Estimate. For example, the Unit Cost Table has 3 records for Vendor License Cost. One Record is the unit cost for 01/01/2022-01/01/2023, the second record is the unit cost for 01/01/2023-01/01/2024 and the final record is Current Cost. Depending on the date the Estimate was completed it should pick the appropriate unit cost. So if the Calculation was done in June of 2023 it should go to the table and get the correct unit cost.
I am happy to share any examples or any new detail. I am totally redesigning this tool so I can start from scratch.