{% extends 'base.html' %} {% block title %}Rate cards - Memorizz{% endblock %} {% block head %}{% endblock %} {% block content %} {% from '_ui.html' import page_header, observability_tabs, empty_state %} {{ page_header('Rate cards', 'Prices used to calculate spend. A provider invoice may differ.', back=('/traces/usage', 'Usage & cost'), nav=observability_tabs('usage')) }} {% if notice %}
{{ notice }}
{% endif %} {% if error %}{% endif %} {% if locked %}

{{ locked }}

{% else %}

Add a rate card

USD per 1M tokens. A card replaces a built-in price for the same provider, model and tier. Calls that already recorded a charge keep it.

A public HTTPS page that lists this price. Not needed for a local model.
Prices every call at $0, as for Ollama.
{% endif %} {% if unpriced %}

Models without a price

Seen in recent traces. Spend leaves out these calls until a rate card prices them.

{% if not locked %}{% endif %} {% for row in unpriced %}{% if not locked %}{% endif %}{% endfor %}
ProviderModelTierCallsAction
{{ row.provider }}{{ row.model }}{{ row.service_tier }}{{ '{:,}'.format(row.calls) }}Set price
{% endif %}

Custom rate cards

Built-in OpenAI and Anthropic list prices apply to every other model.

{% if cards %}
{% if not locked %}{% endif %} {% for card in cards %} {% if not locked %}{% endif %} {% endfor %}
ProviderModelTierInput $/1MCached input $/1MOutput $/1MAs ofRemove
{{ card.provider }}{{ card.model }}{{ card.service_tier }} ${{ card.input_per_million }}${{ card.cached_input_per_million }}${{ card.output_per_million }} {{ card.as_of }}
{% else %}{{ empty_state('No custom rate cards yet', 'Add one above to price a model the built-in catalog does not cover.' if not locked else None) }}{% endif %}
{% endblock %}