# DataForSEO Credit Conversion Rate and Markup in OpenSEO: A Technical Breakdown

> Understand the DataForSEO credit conversion rate and markup in OpenSEO. Learn how 1,000 credits equal $1 with a 28% markup applied to raw costs. Get the technical details.

- Repository: [Every App/open-seo](https://github.com/every-app/open-seo)
- Tags: technical-breakdown
- Published: 2026-09-09

---

**OpenSEO applies a 28% markup to raw DataForSEO costs and converts the final USD amount to platform credits at a fixed rate of 1,000 credits per dollar (1 credit = $0.001).**

OpenSEO monetizes third-party DataForSEO service requests through a transparent credit-based billing system. The platform transforms raw API costs into customer-facing credit charges using two core financial constants defined in the `every-app/open-seo` source code. This article examines the exact credit conversion rate and markup percentage implemented throughout the billing infrastructure.

## Credit-to-USD Conversion Rate

### The 1000 Credits Per Dollar Standard

The foundation of OpenSEO's billing model rests on the constant `AUTUMN_SEO_DATA_CREDITS_PER_USD` defined in [`src/shared/billing.ts`](https://github.com/every-app/open-seo/blob/main/src/shared/billing.ts). This value establishes the exchange rate at **1,000 credits = $1.00**, meaning each individual credit represents exactly **$0.001**.

This ratio appears throughout the pricing calculator in [`web/src/routes/_marketing/pricing.tsx`](https://github.com/every-app/open-seo/blob/main/web/src/routes/_marketing/pricing.tsx) as the constant `CREDIT_USD = 0.001`, serving as the inverse conversion factor for displaying costs to users.

## Platform Markup Percentage

### The 28% Markup on Raw DataForSEO Costs

Before converting to credits, OpenSEO applies a **28% markup** to all raw DataForSEO costs. The source code implements this via the `SEO_DATA_COST_MARKUP` multiplier set to `1.28` in [`src/shared/billing.ts`](https://github.com/every-app/open-seo/blob/main/src/shared/billing.ts).

This markup ensures the platform covers operational overhead while maintaining transparent pricing. The multiplier is applied to raw costs before credit conversion, meaning users pay 128% of the base DataForSEO price.

## Implementation in the Codebase

### Core Billing Constants in src/shared/billing.ts

The file [`src/shared/billing.ts`](https://github.com/every-app/open-seo/blob/main/src/shared/billing.ts) houses the primary constants and utility functions governing the pricing model. The `applyBillingMarkupUsd()` function applies the 28% markup and rounds to five decimal places, while `autumnSeoDataCreditsToUsd()` provides the inverse calculation for credit-to-dollar conversions.

```typescript
// src/shared/billing.ts
export const AUTUMN_SEO_DATA_CREDITS_PER_USD = 1000; // 1 credit = $0.001
export const SEO_DATA_COST_MARKUP = 1.28;          // 28% markup

/** Convert raw DataForSEO USD cost → final USD bill (rounded to 5 decimals) */
export function applyBillingMarkupUsd(rawUsd: number): number {
  return roundUsdForBilling(rawUsd * SEO_DATA_COST_MARKUP);
}

/** Turn a credit count back into USD (inverse of the credit-to-USD rate) */
export function autumnSeoDataCreditsToUsd(credits: number) {
  return credits / AUTUMN_SEO_DATA_CREDITS_PER_USD;
}

```

### Frontend Pricing Calculator in pricing.tsx

The marketing site's pricing estimator at [`web/src/routes/_marketing/pricing.tsx`](https://github.com/every-app/open-seo/blob/main/web/src/routes/_marketing/pricing.tsx) mirrors these constants to display real-time cost estimates. The `creditsForRaw()` function demonstrates the complete calculation pipeline: raw cost × 1.28 markup → rounded USD → multiplied by 1,000 for final credit count.

```tsx
// web/src/routes/_marketing/pricing.tsx
const MARKUP = 1.28;               // matches SEO_DATA_COST_MARKUP
const CREDIT_USD = 0.001;          // 1 credit = $0.001 (inverse of AUTUMN_SEO_DATA_CREDITS_PER_USD)

function creditsForRaw(rawUsd: number): number {
  const billedUsd = Math.round(rawUsd * MARKUP * 100_000) / 100_000;
  return Math.ceil(billedUsd * 1000); // 1 USD = 1,000 credits
}

```

## Practical Calculation Example

When a user initiates a DataForSEO request, OpenSEO executes a two-step transformation:

1. **Markup Application**: The raw DataForSEO cost is multiplied by `1.28` using `applyBillingMarkupUsd()`, then rounded to five decimal places.
2. **Credit Conversion**: The resulting USD amount is converted to credits by multiplying by 1,000 and rounding to the nearest whole credit.

For example, a **$10.00** raw DataForSEO request becomes **$12.80** after the 28% markup, then converts to **12,800 credits** at the 1,000-credits-per-dollar rate.

## Summary

- OpenSEO charges **1,000 credits per US dollar**, making each credit worth exactly $0.001 as defined by `AUTUMN_SEO_DATA_CREDITS_PER_USD`.
- A **28% markup** (multiplier of 1.28) is applied to all raw DataForSEO costs via `SEO_DATA_COST_MARKUP` before credit conversion.
- The core billing logic resides in [`src/shared/billing.ts`](https://github.com/every-app/open-seo/blob/main/src/shared/billing.ts), while the frontend estimator at [`web/src/routes/_marketing/pricing.tsx`](https://github.com/every-app/open-seo/blob/main/web/src/routes/_marketing/pricing.tsx) implements identical calculations for user-facing price displays.
- Final credit amounts are always rounded to whole numbers using `Math.ceil()` or equivalent rounding utilities.
- The `applyBillingMarkupUsd()` function handles the markup calculation, while `autumnSeoDataCreditsToUsd()` provides the inverse conversion for refund or display purposes.

## Frequently Asked Questions

### What is the exact value of one OpenSEO credit in USD?

One credit equals exactly **$0.001** (one-tenth of a cent). This ratio is defined by the constant `AUTUMN_SEO_DATA_CREDITS_PER_USD = 1000` in [`src/shared/billing.ts`](https://github.com/every-app/open-seo/blob/main/src/shared/billing.ts), establishing a fixed exchange rate of 1,000 credits per US dollar.

### How does OpenSEO calculate the final cost of a DataForSEO request?

First, the platform applies the `SEO_DATA_COST_MARKUP` multiplier of 1.28 to the raw DataForSEO cost using the `applyBillingMarkupUsd()` function. Then it converts the marked-up USD amount to credits at the rate of 1,000 credits per dollar, rounding the result to the nearest whole credit.

### Where can I find the markup percentage in the OpenSEO source code?

The 28% markup is defined as `SEO_DATA_COST_MARKUP = 1.28` in [`src/shared/billing.ts`](https://github.com/every-app/open-seo/blob/main/src/shared/billing.ts). The same value appears as the constant `MARKUP = 1.28` in [`web/src/routes/_marketing/pricing.tsx`](https://github.com/every-app/open-seo/blob/main/web/src/routes/_marketing/pricing.tsx) for the frontend pricing calculator.

### Does OpenSEO round credit charges during conversion?

Yes. After applying the 28% markup, the USD amount is rounded to five decimal places via `roundUsdForBilling()`. When converting to credits, the system rounds to the nearest whole credit using `Math.ceil()` in the frontend or equivalent rounding logic in the billing utilities, ensuring users are never charged fractional credits.