Pricing Tables

Pricing Tables

Overview

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.

How It Works

  1. You create a pricing table on the Pricing Tables page and fill it with your data in the grid editor.
  2. In any calculator's pricing formula, you reference the table with the TABLE() function, passing lookup keys — for example INPUT("WIDTH") for numbers, or OPT_TOKEN("MATERIAL") for choice selections.
  3. When a customer makes selections, the formula looks up the matching value from the table and uses it in the price calculation.

Appify CPO pricing tables are edited as a spreadsheet-style grid. Most merchant tables fall into one of two layouts:

  • One-column tables (key → value) — Lookup keys down the blue column, values under the next green header. One lookup key returns one value. Example: material name → price per unit.
  • Multi-column tables (row × column) — Row keys in the blue column, column keys across the green header row, values in the cells. Two lookup keys return one value. Example: width × height → sheet price.

Creating a Table

  1. Go to Appify CPO → Pricing Tables and click + New Table. You can also add per-calculator tables from Calculator Editor → Options & Pricing → Pricing Tables.
  2. Enter a name for the table. This is the name you use in TABLE() formulas, so keep it short and descriptive (e.g., "sheet_prices").
  3. Optionally add notes to describe what the table contains.
  4. Select the lookup mode (see table below).
  5. Choose the key type for each dimension — string or number.
  6. Fill the grid:
    • One-column (key → value): put keys in the blue column and values in the next column. Set that column's green header to a short name such as Price (this is the TABLE column key). Leave the top-left cell blank or use it as a label.
    • Multi-column: put row keys in the blue column, column keys across the green header row, and fill each cell. The top-left cell can be a label or blank — it is not a lookup key.
  7. Click Save.

Tables can be updated at any time and changes take effect the next time the calculator loads.

Example: one-column material table

           | 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.

Example: two-column size grid

     | 12   | 24   | 36
-----+------+------+-----
12   | 10   | 16   | 22
24   | 18   | 28   | 38
36   | 26   | 40   | 54

Formula:

TABLE("panel_prices", INPUT("WIDTH"), INPUT("HEIGHT"))

Global vs Local Tables

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:

  • Save as Global — Converts a local table to a global table, making it available to other calculators. Once saved as global, editing moves to the main Pricing Tables page.
  • Convert to Local — Creates an independent local copy of a global table within the calculator. The copy can be edited freely without affecting the original global table or other calculators that reference it.

Key Concepts

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.

Examples

  • Material pricing — You create a table called "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.
  • Size × material grid — Row keys are sizes in the blue column; column keys are material Choice Tokens across the green header row (VINYL, PAPER). Your formula uses TABLE("sheet_prices", INPUT("SIZE"), OPT_TOKEN("MATERIAL")).
  • Size-based pricing grid — You create a table called "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).
  • Shared rates across products — You create a global table called "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.
    • Related Articles

    • Pricing Variables

      Overview Pricing variables are named, computed values that act as intermediate steps in your pricing logic. Instead of writing one large formula, you can break the calculation into smaller, readable pieces — each stored as a variable — and reference ...
    • Using Tables in Formulas

      Overview The TABLE() function lets you look up values from your pricing tables directly inside calculator pricing formulas. Instead of writing complex conditional logic, you pass in the table name and one or two keys, and the function returns the ...
    • How Pricing Works

      Overview Appify CPO uses a multi-stage pricing pipeline to turn customer selections into a final price. Each stage feeds into the next, so you can build pricing as simple or as complex as your product requires — from a flat price to formulas that ...
    • Checkout Pricing

      Overview When a customer configures a product using an Appify CPO calculator and adds it to their cart, the calculated price is applied automatically at checkout. No manual setup or discount codes are needed — the customer is charged the amount ...
    • Subscription & Pricing

      Overview Appify CPO includes a 14-day free trial, after which you activate a single subscription that includes all features. Your monthly price scales automatically based on your calculator usage — there are no plan tiers to choose between, no ...