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 Vendor
which points to theCompanies
table. -
Companies
: My master list of all vendors, suppliers, and clients. -
Vendor Pricing
: A price list table. Each record links aCost Catalog Item
to aVendor
and contains aNet Price
and 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
Vendor
on theVendor Pricing
record must match thePrimary Vendor
on theCost Catalog
record. -
The
Status
on theVendor Pricing
record 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 Key
inCost Catalog
(e.g.,CONCATENATE(RECORD_ID(), "-", {Primary Vendor})
) -
A
Matching Key
inVendor Pricing
(e.g.,CONCATENATE({Cost Catalog Item}, "-", {Vendor})
) -
Then, using a
Rollup
with 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" +Rollup
withARRAYJOIN(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.