Usage Metering
Data usage is automatically metered, providing precise billing, transparent usage tracking, and predictable costs for AI labs and data holders.
How usage metering works
Xase's Usage Metering system automatically tracks how data is used, providing precise billing without manual intervention.
The metering system records:
- — Records accessed — Number of data points/records accessed
- — Volume — Total data size in GB/TB
- — Duration — Time spent using the data
- — Operations — Computational operations performed
- — Sessions — Number of access sessions
This creates automatic billing with no manual tracking needed.
Billing dimensions
1. Time-Based Metrics
Usage is measured based on time:
{
"session_id": "sess_7f6e5d4c",
"time_metrics": {
"session_duration_hours": 6.25,
"active_time_minutes": 217.4,
"idle_time_minutes": 157.6,
"time_rate": "$10/hour"
}
}2. Volume-Based Metrics
Usage based on data volume:
{
"session_id": "sess_7f6e5d4c",
"volume_metrics": {
"records_accessed": 15273,
"total_data_gb": 2.47,
"record_rate": "$0.001/record",
"volume_rate": "$5/GB"
}
}3. Operation-Based Metrics
Usage based on operations performed:
{
"session_id": "sess_7f6e5d4c",
"operation_metrics": {
"read_operations": 157,
"filter_operations": 23,
"transform_operations": 45,
"train_operations": 89,
"operation_rate": "$0.005/operation"
}
}4. Special Metrics
Domain-specific metrics:
{
"session_id": "sess_7f6e5d4c",
"special_metrics": {
"healthcare_patient_records": 4739,
"healthcare_rate": "$0.02/patient",
"financial_transactions": 8214,
"financial_rate": "$0.01/transaction"
}
}Accessing usage data
Session Usage
Access usage data for a specific session:
import xase
client = xase.Client(api_key="sk_...")
# Get session usage
session_usage = client.billing.get_session_usage("sess_7f6e5d4c")
print(f"Duration: ${session_usage.time_metrics.session_duration_hours} hours")
print(f"Records: ${session_usage.volume_metrics.records_accessed}")
print(f"Estimated cost: $${session_usage.estimated_cost}")
# Get usage breakdown
usage_breakdown = session_usage.get_breakdown()
for category, cost_amount in usage_breakdown.items():
print(f"${category}: $${cost_amount}")Usage Reports
Generate usage reports for time periods:
# Generate monthly usage report
usage_report = client.billing.generate_usage_report(
start_date="2026-01-01",
end_date="2026-01-31",
dataset_id="dataset_medical_records_2025",
format="csv" # or "json", "pdf"
)
# Save the report
usage_report.download("./january_usage_report.csv")
# Get aggregated metrics
usage_metrics = client.billing.get_aggregated_metrics(
start_date="2026-01-01",
end_date="2026-01-31"
)
print(f"Total sessions: ${usage_metrics.total_sessions}")
print(f"Total records: ${usage_metrics.total_records}")
print(f"Total hours: ${usage_metrics.total_hours}")
print(f"Total cost: $${usage_metrics.total_cost}")Real-Time Monitoring
Monitor usage in real-time:
# Get active sessions
active_sessions = client.sessions.list(status="ACTIVE")
# Monitor usage in real-time
for session_obj in active_sessions:
realtime_usage = client.billing.get_session_usage(session_obj.id)
print(f"Session ${session_obj.id}")
print(f"Runtime: ${realtime_usage.time_metrics.session_duration_hours} hours")
print(f"Current cost: $${realtime_usage.estimated_cost}")
# Set usage alerts
client.billing.set_usage_alert(
session_id=session_obj.id,
threshold_amount=100, # USD
notification_email="alerts@company.com"
)Billing models
Pay-per-Use
Standard pricing based on exact usage metrics with no minimums. Ideal for variable or experimental usage.
Usage Tiers
Volume discounts automatically applied as usage increases, with rates decreasing at higher tiers.
Committed Use
Discounted rates for upfront commitments to a certain usage level, with flexible terms.
Custom Pricing
For enterprise clients with unique requirements, custom pricing models can be configured.
