OpenSEO Task Unit Budget for Rank Tracking: Pricing Calculation Guide
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. 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:
// 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:
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:
- Marked-up cost: $0.00195 × 1.28 ≈ $0.002496 (rounded to $0.0025)
- 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:
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:
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.
Summary
- The raw API cost for one rank-tracking batch (40 results) is $0.00195 USD, defined in
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
creditsForRawfunction 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 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.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →