# OpenSEO Task Unit Budget for Rank Tracking: Pricing Calculation Guide

> Calculate OpenSEO task unit budget for rank tracking. Learn the pricing for each operation at approximately $0.0025 USD per search, including a 28% markup on DataForSEO costs.

- Repository: [Every App/open-seo](https://github.com/every-app/open-seo)
- Tags: pricing-guide
- Published: 2026-08-30

---

**A single rank-tracking operation in OpenSEO costs approximately $0.0025 USD, billed as 3 usage credits, calculated from a raw DataForSEO cost of $0.00195 per batch plus a 28% markup.**

OpenSEO is an open-source SEO management platform that leverages DataForSEO APIs for keyword position monitoring. Understanding the **task unit budget for rank tracking** is critical for accurately forecasting monthly expenses and configuring monitoring schedules. The pricing model is implemented in the `every-app/open-seo` repository, specifically within the marketing pricing module.

## Raw Cost Structure in DataForSEO

The foundation of the **task unit budget for rank tracking** begins with the raw API costs defined in [`web/src/routes/_marketing/pricing.tsx`](https://github.com/every-app/open-seo/blob/main/web/src/routes/_marketing/pricing.tsx). The `RAW_COST_USD.rankCheck` constant determines the base expense for retrieving a single batch of search results.

By default, OpenSEO checks **40 results per keyword** (`DEFAULT_RANK_DEPTH = 40`). The raw cost formula accounts for DataForSEO's tiered pricing structure, where each block of 10 results incurs additional charges:

```ts
// web/src/routes/_marketing/pricing.tsx
// Raw DataForSEO per-call cost for rank tracking (USD, before markup)
rankCheck: 0.0006 + (DEFAULT_RANK_DEPTH / 10 - 1) * 0.00045,

```

Breaking down the calculation:
- **Base cost**: $0.0006 covers the first 10 results
- **Additional tiers**: (40 results ÷ 10) − 1 base tier = 3 additional tiers
- **Tier charges**: 3 × $0.00045 = $0.00135
- **Total raw cost**: $0.0006 + $0.00135 = **$0.00195 USD per batch**

## Calculating the Task Unit Budget for Rank Tracking

OpenSEO applies a flat **28% markup** (`MARKUP = 1.28`) to all raw costs before converting to the internal credit system. The platform bills usage in credits where **1 credit = $0.001 USD**. The `creditsForRaw` function handles the conversion logic:

```ts
function creditsForRaw(rawUsd: number): number {
  const billedUsd = Math.round(rawUsd * MARKUP * 100_000) / 100_000;
  return Math.ceil(billedUsd * 1000);   // credits = ceil(billedUsd / $0.001)
}

```

Applying this to rank tracking:
1. **Marked-up cost**: $0.00195 × 1.28 ≈ **$0.002496** (rounded to $0.0025)
2. **Credit conversion**: ceil($0.0025 ÷ $0.001) = **3 credits**

Therefore, each rank-check batch consumes **3 credits**, representing approximately **$0.0025 USD** in actual cost.

## Practical Code Implementation

You can programmatically calculate the exact **task unit budget for rank tracking** using the constants from the OpenSEO source code:

```ts
const DEFAULT_RANK_DEPTH = 40;
const MARKUP = 1.28;
const CREDIT_USD = 0.001;

// Calculate raw cost for one batch (40 results)
const rawRankCostUsd = 0.0006 + (DEFAULT_RANK_DEPTH / 10 - 1) * 0.00045; // 0.00195

// Apply markup and round to 5 decimal places
const billedUsd = Math.round(rawRankCostUsd * MARKUP * 100_000) / 100_000; // ≈0.0025

// Convert to credits
const credits = Math.ceil(billedUsd / CREDIT_USD); // 3 credits

console.log(`Rank-check costs $${billedUsd.toFixed(5)} → ${credits} credits`);

```

## Monthly Budget Estimation

To forecast expenses across multiple projects, multiply the per-batch cost by your monitoring volume. This example demonstrates the calculation logic used in OpenSEO's pricing estimator:

```ts
const sites = 5;               // Number of sites monitored
const keywordsPerSite = 30;    // Keywords tracked per site
const checksPerWeek = 1;       // Check frequency
const WEEKS_PER_MONTH = 4.345; // Average weeks per month

const scheduledRunsPerMonth = sites * checksPerWeek * WEEKS_PER_MONTH;
const rawMonthlyUsd = scheduledRunsPerMonth * (keywordsPerSite * rawRankCostUsd);
const monthlyCredits = Math.ceil((rawMonthlyUsd * MARKUP) * 1000);
const monthlyCostUsd = monthlyCredits * CREDIT_USD;

console.log(`Monthly rank tracking budget: $${monthlyCostUsd.toFixed(2)} (${monthlyCredits} credits)`);

```

This calculation accounts for the compounding effect of multiple keywords and scheduled runs while preserving the rounding and markup rules defined in [`web/src/routes/_marketing/pricing.tsx`](https://github.com/every-app/open-seo/blob/main/web/src/routes/_marketing/pricing.tsx).

## Summary

- The **raw API cost** for one rank-tracking batch (40 results) is **$0.00195 USD**, defined in [`web/src/routes/_marketing/pricing.tsx`](https://github.com/every-app/open-seo/blob/main/web/src/routes/_marketing/pricing.tsx).
- OpenSEO applies a **28% markup** (`MARKUP = 1.28`) to raw costs before billing.
- The final **task unit budget** equals **3 credits** (approximately **$0.0025 USD**) per rank-check operation.
- Use the `creditsForRaw` function to calculate precise billing amounts, which rounds to 5 decimal places before converting to credits.
- **1 credit = $0.001 USD**, making it easy to convert between the credit system and actual dollar amounts.

## Frequently Asked Questions

### How many credits does one rank check consume in OpenSEO?

A single rank-check batch checking the default depth of 40 results consumes **3 credits**. This represents approximately $0.0025 USD after OpenSEO applies its 28% markup to the raw DataForSEO cost of $0.00195.

### What file contains the rank tracking pricing logic?

The pricing logic resides in [`web/src/routes/_marketing/pricing.tsx`](https://github.com/every-app/open-seo/blob/main/web/src/routes/_marketing/pricing.tsx) within the `every-app/open-seo` repository. This file defines the `RAW_COST_USD.rankCheck` formula, the `MARKUP` constant, and the `creditsForRaw` conversion function used to determine task unit budgets.

### Why does the cost calculation divide DEFAULT_RANK_DEPTH by 10?

DataForSEO's pricing structure charges per 10-result tier. The formula `(DEFAULT_RANK_DEPTH / 10 - 1)` calculates the number of additional tiers beyond the base tier included in the $0.0006 base cost. With a depth of 40 results, this yields 3 additional tiers at $0.00045 each.

### How can I estimate my monthly rank tracking expenses?

Multiply the per-batch cost of 3 credits by your total monthly volume: (number of sites × keywords per site × checks per week × 4.345 weeks per month). Use the `creditsForRaw` function to apply the 28% markup and convert to credits, ensuring your estimate matches OpenSEO's rounding logic.