GA

gamma-cost-tuning

Strategies for monitoring and reducing Gamma API credit consumption to stay within budget.

Install

mkdir -p .claude/skills/gamma-cost-tuning && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/6601" && unzip -o skill.zip -d .claude/skills/gamma-cost-tuning && rm skill.zip

Installs to .claude/skills/gamma-cost-tuning

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Optimize Gamma usage costs and manage API spending.
51 charsno explicit “when” trigger
Advanced

Key capabilities

  • Track credit consumption per generation
  • Optimize image generation tier for cost reduction
  • Implement budget alerts and usage thresholds
  • Cache generation results to avoid duplicate costs
  • Use templates to reduce regeneration expenses

How it works

The skill provides a credit tracking mechanism and optimization strategies, such as selecting specific image tiers and caching results, to manage API spending within a credit-based system.

Inputs & outputs

You give it
Generation request parameters
You get back
Credit usage metrics and cost-optimized generation

When to use gamma-cost-tuning

  • Optimizing image generation tier for cost reduction
  • Tracking API credit consumption
  • Planning for scaling under budget constraints
  • Implementing usage quotas for API integration

About this skill

Gamma Cost Tuning

Overview

Optimize Gamma API usage to minimize credit consumption. Gamma uses a credit-based billing system where costs are driven by image generation model tier and content complexity. API access requires Pro or higher subscription.

Prerequisites

  • Active Gamma Pro/Ultra/Teams/Business subscription
  • Understanding of credit system
  • Completed gamma-install-auth setup

Gamma Credit System

Image Model Tiers

TierCredits per ImageQuality Level
Standard2-15Good for internal/draft presentations
Advanced20-33Higher quality, more detail
Premium34-75Best quality images
Ultra30-125Highest fidelity, photorealistic

Card text generation also costs credits based on the AI model used.

Plan Comparison

FeatureProUltraTeamsBusiness
Monthly creditsIncludedMore creditsTeam poolCustom
API accessYesYesYesYes
Max cardsStandardUp to 75StandardCustom
Ad-hoc credit purchaseYesYesYesYes
Auto-rechargeYesYesYesYes

Instructions

Step 1: Track Credit Usage

// src/gamma/cost-tracker.ts
interface UsageEntry {
  generationId: string;
  creditsUsed: number;
  outputFormat: string;
  timestamp: Date;
}

class CreditTracker {
  private usage: UsageEntry[] = [];

  record(entry: UsageEntry) {
    this.usage.push(entry);
  }

  getDaily(): { total: number; count: number; avg: number } {
    const today = new Date().toDateString();
    const todayUsage = this.usage.filter(
      (u) => u.timestamp.toDateString() === today
    );
    const total = todayUsage.reduce((sum, u) => sum + u.creditsUsed, 0);
    return {
      total,
      count: todayUsage.length,
      avg: todayUsage.length > 0 ? Math.round(total / todayUsage.length) : 0,
    };
  }

  getMonthly(): { total: number; count: number } {
    const thisMonth = new Date().getMonth();
    const monthUsage = this.usage.filter(
      (u) => u.timestamp.getMonth() === thisMonth
    );
    return {
      total: monthUsage.reduce((sum, u) => sum + u.creditsUsed, 0),
      count: monthUsage.length,
    };
  }
}

// Track after each generation
const tracker = new CreditTracker();

async function generateTracked(gamma: GammaClient, request: GenerateRequest) {
  const { generationId } = await gamma.generate(request);
  const result = await pollUntilDone(gamma, generationId);

  tracker.record({
    generationId,
    creditsUsed: result.creditsUsed ?? 0,
    outputFormat: request.outputFormat ?? "presentation",
    timestamp: new Date(),
  });

  return result;
}

Step 2: Optimize Image Costs

The biggest cost driver is image generation tier. Reduce costs by:

// EXPENSIVE: default image settings (may use Advanced/Premium tier)
await gamma.generate({
  content: "Company quarterly review",
  outputFormat: "presentation",
  // No imageOptions = AI chooses model tier
});

// CHEAPER: explicitly use standard tier when quality isn't critical
await gamma.generate({
  content: "Company quarterly review",
  outputFormat: "presentation",
  imageOptions: {
    style: "simple flat illustration", // Simpler styles use fewer credits
  },
});

// CHEAPEST: text-focused, minimal images
await gamma.generate({
  content: "Company quarterly review",
  outputFormat: "document", // Documents typically use fewer images
  textAmount: "detailed",   // Focus on text, not visuals
});

Step 3: Use Templates to Reduce Regeneration

// WASTEFUL: regenerating entire presentations for minor content changes
for (const client of clients) {
  await gamma.generate({
    content: `Proposal for ${client.name}: ${fullProposalText}`,
    outputFormat: "presentation",
  });
  // Each generation costs full credits
}

// EFFICIENT: use templates for repeated structures
// Create a one-page template gamma in the app
// Then generate variations with targeted prompts
for (const client of clients) {
  await gamma.generateFromTemplate({
    gammaId: "template_proposal_id",
    prompt: `Customize for ${client.name}. Focus on ${client.industry}.`,
    exportAs: "pdf",
  });
  // Template generations can be more cost-effective
}

Step 4: Budget Alerts

// src/gamma/budget.ts
const MONTHLY_BUDGET = 5000; // credits
const ALERT_THRESHOLDS = [0.5, 0.75, 0.9, 1.0]; // 50%, 75%, 90%, 100%

async function checkBudget(tracker: CreditTracker) {
  const { total } = tracker.getMonthly();
  const percentUsed = total / MONTHLY_BUDGET;

  for (const threshold of ALERT_THRESHOLDS) {
    if (percentUsed >= threshold) {
      await sendAlert(
        `Gamma budget ${(threshold * 100)}% used: ${total}/${MONTHLY_BUDGET} credits`
      );
    }
  }

  // Hard stop at 100%
  if (percentUsed >= 1.0) {
    throw new Error(`Monthly Gamma budget exceeded: ${total}/${MONTHLY_BUDGET} credits`);
  }
}

Step 5: Caching to Avoid Regeneration

// Cache generation results to avoid paying twice for same content
import NodeCache from "node-cache";

const generationCache = new NodeCache({ stdTTL: 86400 }); // 24 hour TTL

async function generateCached(
  gamma: GammaClient,
  request: GenerateRequest
): Promise<GenerateResult> {
  // Create cache key from request parameters
  const key = JSON.stringify({
    content: request.content,
    outputFormat: request.outputFormat,
    themeId: request.themeId,
    textMode: request.textMode,
  });

  const cached = generationCache.get<GenerateResult>(key);
  if (cached) {
    console.log("Cache hit — skipping generation");
    return cached;
  }

  const result = await generateAndWait(gamma, request);
  generationCache.set(key, result);
  return result;
}

Cost Reduction Summary

StrategyCredit SavingsImplementation
Standard image tier50-80% on imagesSet imageOptions.style to simpler styles
Templates over ad-hoc20-40%Use generateFromTemplate for repeated content
Caching results100% on duplicatesCache by content hash
Text-focused output30-50%Use document format, textAmount: "detailed"
Budget capsPrevents overrunTrack credits, alert at thresholds
Auto-rechargeAvoids disruptionEnable at gamma.app/settings/billing

Error Handling

IssueCauseSolution
Credits exhaustedOver budgetPurchase ad-hoc credits or enable auto-recharge
Unexpected high costPremium image tierSpecify imageOptions.style explicitly
Budget alert missedTracker not runningVerify tracking on all generation paths

Resources

Next Steps

Proceed to gamma-reference-architecture for architecture patterns.

When not to use it

  • Using premium image tiers for draft content
  • Regenerating entire presentations for minor changes

Prerequisites

Active Gamma Pro/Ultra/Teams/Business subscriptionCompleted gamma-install-auth setup

Limitations

  • API access requires Pro or higher subscription
  • Caching relies on content hash matching

How it compares

This provides a programmatic cost-tracking and optimization layer that is not available in the standard Gamma dashboard.

Compared to similar skills

gamma-cost-tuning side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
gamma-cost-tuning (this skill)127dNo flagsAdvanced
billing-automation102moNo flagsIntermediate
paypal-integration102moNo flagsIntermediate
ccxt-php16moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

More by jeremylongshore

View all by jeremylongshore

analyzing-logs

jeremylongshore

Analyze application logs to detect performance issues, identify error patterns, and improve stability by extracting key insights.

14123

ollama-setup

jeremylongshore

Configure auto-configure Ollama when user needs local LLM deployment, free AI alternatives, or wants to eliminate hosted API costs. Trigger phrases: "install ollama", "local AI", "free LLM", "self-hosted AI", "replace OpenAI", "no API costs". Use when appropriate context detected. Trigger with relevant phrases based on skill purpose.

1167

backtesting-trading-strategies

jeremylongshore

Backtest crypto and traditional trading strategies against historical data. Calculates performance metrics (Sharpe, Sortino, max drawdown), generates equity curves, and optimizes strategy parameters. Use when user wants to test a trading strategy, validate signals, or compare approaches. Trigger with phrases like "backtest strategy", "test trading strategy", "historical performance", "simulate trades", "optimize parameters", or "validate signals".

1071

generating-database-seed-data

jeremylongshore

Process this skill enables AI assistant to generate realistic test data and database seed scripts for development and testing environments. it uses faker libraries to create realistic data, maintains relational integrity, and allows configurable data volumes. u... Use when working with databases or data models. Trigger with phrases like 'database', 'query', or 'schema'.

1033

cursor-codebase-indexing

jeremylongshore

Execute set up and optimize Cursor codebase indexing. Triggers on "cursor index setup", "codebase indexing", "index codebase", "cursor semantic search". Use when working with cursor codebase indexing functionality. Trigger with phrases like "cursor codebase indexing", "cursor indexing", "cursor".

885

testing-mobile-apps

jeremylongshore

Execute mobile app testing on iOS and Android devices/simulators. Use when performing specialized testing. Trigger with phrases like "test mobile app", "run iOS tests", or "validate Android functionality".

810

You might also like

billing-automation

wshobson

Build automated billing systems for recurring payments, invoicing, subscription lifecycle, and dunning management. Use when implementing subscription billing, automating invoicing, or managing recurring payment systems.

1098

paypal-integration

wshobson

Integrate PayPal payment processing with support for express checkout, subscriptions, and refund management. Use when implementing PayPal payments, processing online transactions, or building e-commerce checkout flows.

1090

ccxt-php

ccxt

CCXT cryptocurrency exchange library for PHP developers. Covers both REST API (standard) and WebSocket API (real-time). Helps install CCXT, connect to exchanges, fetch market data, place orders, stream live tickers/orderbooks, handle authentication, and manage errors in PHP 8.1+. Use when working with crypto exchanges in PHP projects, trading bots, or web applications. Supports both sync and async (ReactPHP) usage.

18

openrouter-cost-controls

jeremylongshore

Implement budget controls and cost limits for OpenRouter. Use when managing spending or preventing overruns. Trigger with phrases like 'openrouter budget', 'openrouter spending limit', 'cost control', 'openrouter billing alert'.

05

plaid-fintech

davila7

Expert patterns for Plaid API integration including Link token flows, transactions sync, identity verification, Auth for ACH, balance checks, webhook handling, and fintech compliance best practices. Use when: plaid, bank account linking, bank connection, ach, account aggregation.

32

ccxt-csharp

ccxt

CCXT cryptocurrency exchange library for C# and .NET developers. Covers both REST API (standard) and WebSocket API (real-time). Helps install CCXT, connect to exchanges, fetch market data, place orders, stream live tickers/orderbooks, handle authentication, and manage errors in .NET projects. Use when working with crypto exchanges in C# applications, trading systems, or financial software. Supports .NET Standard 2.0+.

13

Search skills

Search the agent skills registry