Hello Airtable Community,
I'm in the process of designing a custom estimating and service OS for my construction business and have run into a common but complex data architecture challenge. I'd love to get your expert opinion on the current best practice for solving it. Let me preface this post by stating that as someone who is new to Airtable, I used AI to help me craft a clear posting but this problem is real and something I have been struggling with for a few hours now.
The Goal:
I want to create a field in my Cost Catalog table that automatically and dynamically looks up the price for an item from its designated "Primary Vendor." This price needs to be used in our estimating templates.
My Table Setup:
I have three core tables involved:
-
Cost Catalog: My master library of item definitions. Each record is a unique item (e.g., "350 Gallon TES Tank"). It has a linked record field calledPrimary Vendorwhich points to theCompaniestable. -
Companies: My master list of all vendors, suppliers, and clients. -
Vendor Pricing: A price list table. Each record links aCost Catalog Itemto aVendorand contains aNet Priceand aStatus(e.g., "Active").
The Challenge:
In my Cost Catalog table, I want to create a field called Primary Vendor Price. This field needs to look through all the linked Vendor Pricing records for an item and return the Net Price only from the record that meets two conditions:
-
The
Vendoron theVendor Pricingrecord must match thePrimary Vendoron theCost Catalogrecord. -
The
Statuson theVendor Pricingrecord must be "Active."
I have tried using both a Lookup and a Rollup field with conditional filters. However, I've discovered that the conditional logic in these fields does not seem to support dynamically comparing a field from the linked table (e.g., Vendor Pricing.Vendor) against a field in the current table (e.g., Cost Catalog.Primary Vendor). The condition seems to only allow for static values.
The "Matching Key" Workaround:
I've researched this and found the classic expert workaround, which involves creating "helper" formula fields in both tables:
-
A
Primary Vendor KeyinCost Catalog(e.g.,CONCATENATE(RECORD_ID(), "-", {Primary Vendor})) -
A
Matching KeyinVendor Pricing(e.g.,CONCATENATE({Cost Catalog Item}, "-", {Vendor})) -
Then, using a
Rollupwith a condition that checks if these two keys are an exact match.
My Questions for the Experts:
-
Is the "Matching Key" formula workaround still the definitive, best-practice solution for this kind of dynamic, conditional lookup in Airtable as of mid-2025?
-
Has Airtable released a newer, more direct feature to handle this that I might be missing? I want to make sure I'm not building a complex workaround if a simpler native solution now exists.
-
Bonus Question (Safety Net): My ideal outcome is a field that also acts as an error check. If, due to user error, there are two "Active" prices for the same primary vendor, I would prefer the field to return an
#ERROR!or a jumbled text string (like from anARRAYJOIN) rather than a silently incorrectSUM. Does the "Matching Key" +RollupwithARRAYJOIN(values)remain the best way to achieve this safety net?
Thank you in advance for your time and expertise. I'm trying to build a robust and scalable foundation, and getting this part right is critical.
