PortModels
Log in

Pricing and markup

How your app's price is built from provider cost plus your margin, and how to choose it.

There are no subscription tiers to design. Your app earns on usage: every metered request carries provider cost plus your markup, and the markup is your revenue.

How a charge is built#

text
user pays  =  provider cost  +  your markup
earnings   =  your markup

For each request PortModels records the model used, the tokens or images consumed, the provider cost derived from the model's pricing rules, and the markup applied. The total is deducted from the user's credit balance in one atomic operation.

Choosing a markup#

Consider three things:

  1. Value per run. An app that saves someone an hour can carry a markup that a novelty app cannot.
  2. Model choice. A cheaper model with better prompting often nets more margin than a premium model at the same end price.
  3. Comparability. Users can compare your app with similar ones by running a small job on each and looking at the charge. Pricing far above the field needs to be visibly better.

Keeping cost down#

  • Trim the context you send. Most apps resend more history than they need.
  • Cache what doesn't change between runs in the key/value store rather than regenerating it.
  • Pick the smallest model that passes your own quality bar, and only escalate for the hard cases.
  • Set sensible max_tokens. Runaway generations cost the user money and cost you goodwill.

What is not charged#

Opening your app costs nothing — only metered API requests do. A request that produces no usable completion is recorded as an empty completion rather than billed as a successful run.