EAC / ETC / VAC / TCPI
API · /earnedvalue-api
Earned Value Management API
Earned Value Management (EVM) maths as an API, computed locally and deterministically — the project cost-and-schedule controls used in PMP, PRINCE2 and government contracting. The metrics endpoint takes the budget at completion (BAC), planned value (PV), earned value (EV) and actual cost (AC) — or a percent-complete and planned-percent of BAC — and returns the cost variance (CV = EV−AC), schedule variance (SV = EV−PV), the cost and schedule performance indices (CPI = EV/AC, SPI = EV/PV), the percent complete and spent, and a plain-language over/under-budget and ahead/behind-schedule read. The forecast endpoint projects the finish: the estimate at completion by three standard methods (BAC/CPI when the cost trend continues, AC + remaining budget, and the cost-and-schedule AC + (BAC−EV)/(CPI·SPI)), the estimate to complete (ETC), the variance at completion (VAC) and the to-complete performance index (TCPI) to land on either the original budget or the EAC. A CPI of 0.875 on a 1000 budget forecasts a 1143 overrun. Everything is computed locally and deterministically, so it is instant and private. Ideal for project-management, PMO, construction, aerospace and contracting app developers, project dashboards and earned-value reporting tools, and PMP/PRINCE2 training. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 2 compute endpoints. This is earned-value project control; for loan or NPV cash-flow maths use a finance API.
API health
healthy- Uptime
- 100.00%
- Server probes · 24h
- Avg latency
- 95 ms
- Server probes · 24h
- Subscribers
- 4,782
- active
- Total calls
- 36
- last 7 days
Pricing
Pick a tier — billed monthly, cancel anytime.
Free
Free
- 4,350 calls / month
- 2 requests / second
- Hard cap (429 above quota, no overage)
- 4,350 calls/month
- 2 req/sec
- EVM metrics + at-completion forecast
- No credit card
Starter
€5.65 /month
- 46,000 calls / month
- 6 requests / second
- Hard cap (429 above quota, no overage)
- 46,000 calls/month
- 6 req/sec
- CPI/SPI, EAC, ETC, VAC, TCPI
- Email support
Pro
€14.90 /month
- 209,000 calls / month
- 15 requests / second
- Hard cap (429 above quota, no overage)
- 209,000 calls/month
- 15 req/sec
- PMO & project-dashboard pipelines
- Priority support
Mega
€45.50 /month
- 1,175,000 calls / month
- 40 requests / second
- Hard cap (429 above quota, no overage)
- 1,175,000 calls/month
- 40 req/sec
- Platform scale
- Dedicated SLA
Built by
Related APIs
Other APIs with overlapping tags.
Vanar Chain API
Live on-chain data for Vanar Chain — an EVM Layer 1 for entertainment, gaming and brands — via its public Blockscout explorer (no wallet, no key). The stats endpoint returns chain-wide totals (blocks, transactions, addresses, average block time, gas used); gas gives the current gas-price oracle (slow/average/fast). Blocks lists the latest blocks, and a single block resolves by height or by hash with its transaction count, gas, validator and timestamp. The address endpoint returns any account's VANRY balance, nonce, contract flag and token holdings; transaction resolves a tx by hash with its from/to, value in VANRY, fee, status and block. The token endpoint returns an ERC-20 token's metadata (name, symbol, decimals, total supply, holders) by contract address, and search runs a universal lookup across addresses, tokens, blocks and transactions. Gas, balances, values and fees are denominated in VANRY, the native coin. Real on-chain data straight from the explorer, refreshed every call — no key. 9 endpoints. For multi-chain coverage combine with the other oanor chain APIs (Ethereum, Base, Arbitrum and more).
api.oanor.com/vanar-api
ShimmerEVM Chain API
Live on-chain data for ShimmerEVM — the EVM chain of the IOTA/Shimmer network — via its public Blockscout explorer (no wallet, no key). The stats endpoint returns chain-wide totals (blocks, transactions, addresses, average block time, gas used); gas gives the current gas-price oracle (slow/average/fast). Blocks lists the latest blocks, and a single block resolves by height or by hash with its transaction count, gas, validator and timestamp. The address endpoint returns any account's SMR balance, nonce, contract flag and token holdings; transaction resolves a tx by hash with its from/to, value in SMR, fee, status and block. The token endpoint returns an ERC-20 token's metadata (name, symbol, decimals, total supply, holders) by contract address, and search runs a universal lookup across addresses, tokens, blocks and transactions. Gas, balances, values and fees are denominated in SMR, the native coin. Real on-chain data straight from the explorer, refreshed every call — no key. 9 endpoints. For multi-chain coverage combine with the other oanor chain APIs (Ethereum, Base, Arbitrum and more).
api.oanor.com/shimmer-api
Harmony Chain API
Live on-chain data for Harmony — a sharded EVM Layer 1 — via its public Blockscout explorer (no wallet, no key). The stats endpoint returns chain-wide totals (blocks, transactions, addresses, average block time, gas used); gas gives the current gas-price oracle (slow/average/fast). Blocks lists the latest blocks, and a single block resolves by height or by hash with its transaction count, gas, validator and timestamp. The address endpoint returns any account's ONE balance, nonce, contract flag and token holdings; transaction resolves a tx by hash with its from/to, value in ONE, fee, status and block. The token endpoint returns an ERC-20 token's metadata (name, symbol, decimals, total supply, holders) by contract address, and search runs a universal lookup across addresses, tokens, blocks and transactions. Gas, balances, values and fees are denominated in ONE, the native coin. Real on-chain data straight from the explorer, refreshed every call — no key. 9 endpoints. For multi-chain coverage combine with the other oanor chain APIs (Ethereum, Base, Arbitrum and more).
api.oanor.com/harmony-api
Fuse Chain API
Live on-chain data for Fuse Network — an EVM Layer 1 for payments and stablecoins — via its public Blockscout explorer (no wallet, no key). The stats endpoint returns chain-wide totals (blocks, transactions, addresses, average block time, gas used); gas gives the current gas-price oracle (slow/average/fast). Blocks lists the latest blocks, and a single block resolves by height or by hash with its transaction count, gas, validator and timestamp. The address endpoint returns any account's FUSE balance, nonce, contract flag and token holdings; transaction resolves a tx by hash with its from/to, value in FUSE, fee, status and block. The token endpoint returns an ERC-20 token's metadata (name, symbol, decimals, total supply, holders) by contract address, and search runs a universal lookup across addresses, tokens, blocks and transactions. Gas, balances, values and fees are denominated in FUSE, the native coin. Real on-chain data straight from the explorer, refreshed every call — no key. 9 endpoints. For multi-chain coverage combine with the other oanor chain APIs (Ethereum, Base, Arbitrum and more).
api.oanor.com/fuse-api
Frequently asked questions
Quick answers about pricing, quotas, and integration.
How do I get an API key for Earned Value Management API?
What's the rate limit for Earned Value Management API?
How much does Earned Value Management API cost?
Can I cancel my subscription anytime?
Is Earned Value Management API GDPR-compliant?
Pick an endpoint from the list on the left to see its details and try it.
Code snippets
Sign up to get an API key, then call any path under your slug.
curl https://api.oanor.com/earnedvalue-api/SOME_PATH \
-H "x-oanor-key: oanor_test_..."
const res = await fetch("https://api.oanor.com/earnedvalue-api/SOME_PATH", {
headers: { "x-oanor-key": "oanor_test_..." }
});
const data = await res.json();
$ch = curl_init("https://api.oanor.com/earnedvalue-api/SOME_PATH");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
$response = curl_exec($ch);
import requests
r = requests.get(
"https://api.oanor.com/earnedvalue-api/SOME_PATH",
headers={"x-oanor-key": "oanor_test_..."},
)
print(r.json())
Ratings
Sign in to rate.
No reviews yet.
Discussion
Ask questions, share usage tips, get answers from the provider and other developers. Public — anyone can read.
Sign in to start a thread or reply.
Sign inNew thread
·
-
Provider answer
🔒 This thread is locked — no new replies.
-
·
- No threads yet — start the discussion.
Support
Private 1:1 support with the provider — billing questions, integration issues, account problems. Only you and the provider team can see these threads.
Sign in to open a support ticket.
Sign inOpen new ticket
Describe what you need help with. The provider team gets an email and replies on the ticket page.
-
·
Urgent - No tickets yet for this API.