Pricing tables are reusable lookup tables that store pricing data outside of your calculator formulas. Instead of hardcoding prices or building complex nested conditions, you define your data in a table and reference it from any calculator's pricing formula using the TABLE() function. Tables are shared across all calculators in your store, so a single price sheet can serve multiple products. You manage pricing tables from Appify CPO → Pricing Tables.
TABLE() function, passing lookup keys — for example INPUT("WIDTH") for numbers, or OPT_TOKEN("MATERIAL") for choice selections.Appify CPO pricing tables are edited as a spreadsheet-style grid. Most merchant tables fall into one of two layouts:
TABLE() formulas, so keep it short and descriptive (e.g., "sheet_prices").Price (this is the TABLE column key). Leave the top-left cell blank or use it as a label.Tables can be updated at any time and changes take effect the next time the calculator loads.
| Price
-----------+-------
WOOD | 2.50
ACRYLIC | 4.00
METAL | 6.50
Formula:
TABLE("materials", OPT_TOKEN("MATERIAL"))
Use Choice Tokens (not display labels) as lookup keys — the same tokens shown in each choice's gear settings and used by HAS() / OPT_TOKEN(). Put them in the blue column (one-column keys or multi-column row keys) and/or the green header row (multi-column column keys). Matching is case-insensitive. You can also write the value-column key explicitly: TABLE("materials", OPT_TOKEN("MATERIAL"), "Price"). For one-column tables, omitting that column key is fine — Appify uses the sole value-column header.
| 12 | 24 | 36
-----+------+------+-----
12 | 10 | 16 | 22
24 | 18 | 28 | 38
36 | 26 | 40 | 54
Formula:
TABLE("panel_prices", INPUT("WIDTH"), INPUT("HEIGHT"))
Pricing tables come in two flavors: global and local. Understanding the difference helps you decide where to create your tables.
Global tables are created on the main Appify CPO → Pricing Tables page. They are shared across all calculators in your store — any calculator can reference the same global table. When you add a global table to a calculator, it appears as a linked reference. Editing is disabled within the calculator to prevent unintended changes to a table used by multiple calculators. To edit a global table, go back to the main Pricing Tables page.
Local tables are created directly within a calculator's Options & Pricing → Pricing Tables section. They exist only in that specific calculator and are fully editable within the calculator editor. Use local tables when the data is unique to one calculator and you don't need to share it.
You can convert between the two:
| Setting | Description |
|---|---|
| Name | Identifier used in TABLE() formulas — must be unique. |
| Notes | Optional description of the table's purpose. |
| Lookup mode | How the table resolves keys: Exact (must match exactly), Nearest lower (closest key ≤ input), Nearest upper (closest key ≥ input), Nearest (closest in either direction), Interpolate (linear between surrounding keys on one-column / pair tables; numeric keys only — not available for multi-column grids yet). |
| Key type | String or number — determines how keys are compared. |
| One-column data | Keys in the blue column, values in one value column (green header is the TABLE column key, often Price). |
| Multi-column data | Grid of row key × column key → value cells. |
| Grid editor | Spreadsheet-style interface for bulk data entry. |
"materials" with Choice Token keys down the blue column (WOOD, ACRYLIC, METAL) and a value column headed Price (2.50, 4.00, 6.50). Your formula uses TABLE("materials", OPT_TOKEN("MATERIAL")) to get the price per unit based on the customer's material choice.VINYL, PAPER). Your formula uses TABLE("sheet_prices", INPUT("SIZE"), OPT_TOKEN("MATERIAL"))."panel_prices" with number keys. Row keys are widths (12, 24, 36, 48), column keys are heights (12, 24, 36, 48), and each cell contains the panel price. Use Exact or a nearest mode for lookups (interpolation is for one-column numeric tables)."shipping_rates" on the main Pricing Tables page. Three different calculators reference it for shipping cost lookups. When you update the rates, every calculator picks up the change automatically.