Hi @Dan_Payne - the relational aspect of Airtable is your friend here. This is how I would approach it:
3 tables - shapes, colours and SKUs (or products or something):
Shapes has a name and a price:

Colours has a name and a standard/premium selector:

SKUs combines shapes with colours to give you the 2000 products you sell:

You can bring the shape price and the standard/premium flag over the skus table from their origin tables (both lookup fields). Then add a SKU Price field with formula:
IF({Standard/Premium} = 'Standard', {Shape Price}, {Shape Price} * 1.2)
Now you can update the 90 shape prices on the shapes table and this will ripple through the SKUs table and update the retail prices. In a similar way, if the differential between standard and premium changes in the future you can simply update the formula above