Running a promotion is easy. Knowing whether it actually worked is the hard part. Most businesses hand out coupon codes and then have no real way to see how often each one gets used — someone has to manually search through transactions, count matches, and update a tracker sheet by hand. By the time the report is ready, the promotion is already over.
In this tutorial, we'll build a Coupon Usage Dashboard — a system where each coupon shows a live count of exactly how many times it has been redeemed, updating the instant a transaction uses it.
Start by creating a table called Coupon. Add the fields Code, Discount Percentage (using the Percentage data type), and Active (Checkbox).
Coupon table with Code, Discount Percentage, and Active columns
Add a few sample coupons:
Coupon table showing three records for SUMMER10, WELCOME20, and FLASH50 with their discount percentages
Create another table called Transaction. Add fields for Customer Name (Text), Total Amount (Currency, USD), and Date.
Transaction table with Customer Name, Total Amount, and Date columns
Add a handful of sample transactions:
Transaction table listing four purchase records for Emily Rodriguez, David Kim, and Tom Baker
Now let's connect the two tables. Since a single coupon can be used across many transactions, and a single transaction could technically apply more than one coupon, this calls for a Many-to-Many relationship.
On the Transaction table, add a new column, set its data type to Many-to-Many, and link it to the Coupon table.
Adding a Many-to-Many column on the Transaction table linked to the Coupon table
Go through your existing transactions and assign coupons to the ones that used one:
Transaction table showing coupon codes assigned to Emily Rodriguez's and David Kim's transactions
Knowing which transactions used a coupon is useful, but what you really want at a glance is a number — how many times has each coupon been used, total?
Go to the Coupon table and add a new column. Set its data type to Custom Logic.
Adding a new Custom Logic column on the Coupon table
Describe the rule: count the number of linked Transactions for each coupon.
Describing the logic to count linked transactions for each coupon record
Confirm the clarification screen, then click Save.
Clarification screen confirming the count of linked Transaction records per Coupon
Coupon table showing the Times Used column filled in automatically for each coupon
Let's test it. Instead of adding a new transaction, update the existing one. Open David Kim's $80.00 transaction and add SUMMER10 alongside the coupon it already has, so it now shows both WELCOME20 and SUMMER10 applied.
Editing David Kim's transaction to add SUMMER10 alongside the existing WELCOME20 coupon
Head back to the Coupon table. SUMMER10's Times Used count has already updated from 2 to 3 — no refresh, no recalculation step, even though this came from editing an existing transaction rather than adding a new one.
Coupon table showing SUMMER10's Times Used count updated to three after David Kim's transaction was linked to it
Now that usage is tracked automatically, create a new view on the Coupon table filtered to show only coupons where Times Used equals 0.
Creating a filtered view on the Coupon table where Times Used equals zero
Save the view as "Unused Coupons."
Saved view named Unused Coupons showing coupons that have not been redeemed yet
This gives you an instant list of promotions that aren't gaining traction — useful for deciding what to retire or promote harder.
What you built:
This same pattern — linking many-to-many and counting live usage — applies beyond coupons too. Think referral codes, event tickets shared across attendees, or tags applied across multiple records.
Try the Live Preview
On this page
Related articles
Explore more product articles and best practices for teams building with Ambisius.
Still Using Spreadsheets?
You Should Try This.
Turn familiar spreadsheets into a structured system built for your business
No commitment. No credit card required.

© 2026 Ambisius. All rights reserved.