7
2 Comments

Should you charge by usage? Here’s how to find out

Before you introduce credits, tokens, or any other usage-based model, you need to know whether usage is actually the right thing to charge for.

Here’s how to build a simple no-code system that helps you compare usage, revenue, and customer feedback before changing your pricing.

Tools

  • Airtable: to save the data
  • Zapier: to connect the apps
  • Stripe: to add subscription or payment details
  • OpenAI (via Zapier): to help explain the risk
  • Slack or Gmail: to send a message when there’s a problem
  • Jotform: to collect customer feedback

Step 1 — Decide what “usage” means

First, decide what you want to count as usage. Usage should be something customers do when they get value from your product.

Here are some examples:

  • API calls
  • Documents created
  • Workflows run
  • Tokens used

Pick only 1 to 3 things. If you track too many things, your usage metric may be too confusing.

Step 2 — Set up Airtable

Open Airtable.

  • Create a new base called: Pricing Monitor.
  • Create a table called: Users.

Add these fields for now:

  • User ID
  • Email
  • Customer Name
  • Stripe Customer ID
  • Plan
  • Monthly Revenue
  • Last Usage Update
  • Usage Last Modified
  • Pricing Risk
  • AI Recommendation

Set Usage Last Modified as a last modified time field. Make it watch the Last Usage Update field. This will help Zapier know when a customer’s usage data has changed.

You will add Total Usage and Usage per Dollar in later steps.

Create another table called: Usage Logs.

Add these fields:

  • User
  • User ID
  • Usage Amount
  • Usage Type
  • Date

Make the User field a linked record field connected to the Users table. This is important because Airtable needs to know which usage log belongs to which user.

It's fine if this table is empty for now. You will start adding data in the next step.

Step 3 — Send usage data into Airtable automatically

Now, send usage data from your product into Airtable.

In Zapier, create a Zap.

Use one of these triggers:

  • Your analytics tool, if it sends usage events to Zapier
  • Webhooks by Zapier → Catch Hook, if your product can send data to a webhook URL

Each usage event should include the customer’s User ID, the usage amount, the date, and the usage type.

Next, add this action: Airtable → Find Record
Find the customer in the Users table using the User ID.

Then add this action: Airtable → Create Record
Create a new record in Usage Logs.

Map the usage data into these fields:

  • User
  • User ID
  • Usage Amount
  • Usage Type
  • Date

For User, use the Airtable record you found in the first action.

Then add a final action: Airtable → Update Record
Update the same customer in the Users table.
Set Last Usage Update to the current date and time.

Test the Zap.

Now, open Airtable. You should see a new record in the Usage Logs table.

You are now collecting usage data automatically. In a later step, you will add up each customer’s usage and compare it with what they pay.

Step 4 — Add revenue data

Next, connect usage to money.

If you use Stripe, create a Zap.

  • Trigger: Stripe → New Subscription
  • You may also create another Zap for:

Trigger: Stripe → Updated Subscription

  • Action: Airtable → Find Record
    Find the customer in the Users table using the Stripe Customer ID.

Then add this action: Airtable → Update Record
Update the customer’s record in the Users table.
Map:

  • Stripe Customer ID → Stripe Customer ID
  • Subscription amount → Monthly Revenue
  • Plan → Plan

Make sure Monthly Revenue is truly monthly. For example, if a customer pays yearly, divide the yearly amount by 12.

If you do not use Stripe, you can still do this manually.
Open the Users table. Fill in:

  • Monthly Revenue
  • Plan

At this point, each customer should have payment data attached to their record.

In the next steps, you will compare that payment data with their usage data.

Step 5 — Turn usage into one number

Now, add up each customer’s usage.

In Airtable, go to the Users table.

  • Click + Add Field.
  • Choose Rollup.
  • Select Usage Logs as the linked field.
  • Select Usage Amount as the field you want to add up.
  • Enter: SUM(values)

Rename the field: Total Usage.

You no longer have to check each usage event individually. You can now see each customer’s total usage in one place.

Step 6 — Compare usage and revenue

Next, create another field in the Users table.

  • Click + Add Field.
  • Choose Formula.
  • Name the field Usage per Dollar.
  • Enter this formula: IF({Monthly Revenue} > 0, {Total Usage} / {Monthly Revenue}, 0)

Save the field.

Next, sort your Users table from highest to lowest Usage per Dollar. You may find out that Customers at the top may be using a lot compared to what they pay, while those at the bottom may be paying but not using the product much. That could be a churn risk.

This does not mean you should price every customer individually. It means you are looking for patterns in how usage and revenue relate to each other across your customer base.

The next step is making sure you don't have to check this table every day.

Step 7 — Trigger alerts when pricing is misaligned

Once you know each customer’s usage per dollar, you can create an alert for accounts that may need a closer look.

Note: If Usage per Dollar is a formula or rollup, use an editable “Last Usage Update” field in Airtable and update it when new usage comes in. Then use a “Usage Last Modified” field to help Zapier detect the update.

Go to Zapier and create a new Zap.

  • Trigger: Airtable → New or Updated Record
  • Table: Users
  • Last modified time column: Select your Usage Last Modified field
  • Filter: Only continue if Usage per Dollar is > your high-usage threshold OR Usage per Dollar is < your low-usage threshold.

Now, add a notification action:

  • Slack → Send Channel Message
  • or Gmail → Send Email

Include:

  • Customer Name
  • Plan
  • Total Usage
  • Monthly Revenue
  • Usage per Dollar

You can now get notified when a customer crosses one of your pricing alert thresholds.

Step 8 — Let AI summarize the risk

Next, let AI explain the risk.

Create a new Zap.

  • Trigger: Airtable → New or Updated Record
  • Table: Users
  • Filter: Only continue if the customer needs a closer look.
    For example, this could mean Pricing Risk says Review Needed, or Usage per Dollar is too high, or too low
  • Action: OpenAI/ChatGPT → Conversation or Send Prompt

Send OpenAI the customer’s usage and revenue data. Ask it to classify the account as either underpriced, an upgrade candidate, low usage, or a possible churn risk. Then ask for a short explanation of the risk.

Then add one more action: Airtable → Update Record

Save the AI response in the AI Recommendation field.

Each reviewed account now has a short explanation next to the numbers.

Step 9 — Decide whether usage-based pricing is a good fit for your product

Now, use the data to decide what kind of pricing fits your product.

In Airtable, group the Users table by Plan. For each plan, look at:

  • Average Total Usage
  • Average Monthly Revenue
  • Average Usage per Dollar
  • Highest-usage customers
  • Lowest-usage customers
  • Number of customers flagged for review

You’re looking for one thing: whether customers on the same plan use the product in very different amounts.

  • Are some customers using much more than others on the same plan?
  • Does higher usage usually mean the customer is getting more value?
  • Does higher usage usually create more cost for your business?

If yes, usage-based pricing may be a good fit. If not, fixed pricing may still be the better option. If the answer is only true for a small group of customers, a hybrid model may be better. That could mean fixed plans with usage limits, overages, or add-ons.

Your goal here is to decide whether your pricing should stay fixed, become usage-based, or move toward a hybrid model.

Step 10 — Validate your assumptions before changing pricing

Don't rely on usage data alone. Before you change your pricing, ask your customers what they think.

Go to Jotform and create a new form. Add a few questions. Here are some examples:

  • Which feature do you use the most?
  • What feels fair about your current pricing?
  • What feels expensive?
  • Would you rather pay a fixed monthly price or pay for what you use?

Save your form.

Now, create one final Zap.

  • Trigger: Airtable → New or Updated Record
  • Filter: Only continue if Pricing Risk = High
  • Action: Jotform → Assign Prefilled Form (or if you prefer, you can send the form link through Gmail instead)

Test the Zap.

Now, whenever a customer is marked as high risk, they'll automatically receive your survey.

You'll have both usage data and customer feedback before making pricing decisions. That makes it easier to see if your pricing is right and how customers will likely react to changes.

on July 15, 2026
  1. 1

    The missing column is outcome. High usage can be expensive without creating value, and low usage can be exactly right for a product that prevents one costly event. Before classifying anyone as underpriced or churn-risk, pair usage per dollar with marginal cost and one customer outcome. If those three do not move together, usage is a bad billing metric even when dispersion is huge.

  2. 1

    this can take so long to figure out... thanks for the hack !

Trending on Indie Hackers
How to rank #1 on ChatGPT? User Avatar 112 comments I built a startup-idea scanner. It just told me none of my 3,400 ideas are easy wins. User Avatar 66 comments “I’ll just post on Upwork” is not a client strategy. Here’s what I built instead. User Avatar 51 comments Building a Shopify bundles app for stores with real fulfillment: here's the wedge User Avatar 42 comments I recorded myself using 200+ indie SaaS products cold. Here are the 7 conversion killers that keep showing up. User Avatar 33 comments How to automate refund reviews without giving AI the final say Avatar for Aytekin Tank 29 comments