Every server comparison site has the same column. It says "4 vCPU" and "8 GB" and "1 Gbps", and sorts on the number. The number is almost never the product. Four hyperthreads of a shared socket and four dedicated cores are both 4 vCPU. Eight gigabytes that the host reclaims under pressure and eight gigabytes of ECC DDR5 are both 8 GB. Unmetered 1 Gbps, 1 Gbps with a 20 TB cap, and 1 Gbps billed at the 95th percentile are three products at one number, and the surprise is always on the invoice.
The comparison sites know this and cannot fix it, because they scrape. A scrape gets what the pricing page shows, the page changes, the scrape breaks, and the provider who wanted its offers seen is the one party with no say in how they appear. Then the comparison site's terms forbid anyone else from scraping the scrape.
So today LogicSRC publishes four small specifications, one per resource that is actually negotiable when you buy a server. They are the blocks of an OpenServer offer, the file a provider serves about what it sells, written down on their own so a provider, a directory and a buyer's agent all mean the same thing by the same key.
The four
OpenCPU keeps threads and cores apart. vcpu is what the guest sees, cores is what the silicon has, and a reader never derives one from the other unless the provider says how they relate. The processor is named the way the vendor names it. allocation is dedicated, shared or burstable, and it sits beside the count, because four of one and four of the other are different products.
OpenMemory is mebibytes, the DDR generation, and ECC as three states: yes, no, and unstated. A directory that shows unstated as false has lied about half the market. allocation says whether the memory is reserved, balloonable or shared.
OpenGPU names the card the way the vendor does, form factor included, because an H100 SXM and an H100 PCIe are two cards. count and vram_mb per device, interconnect between them, and access: the whole device, a MIG slice, a vGPU share, or time-sliced with neighbours. A MIG slice and a whole card share a model and differ in everything else.
OpenBandwidth has a port and a meter. metering is transfer, unmetered, percentile or flat, and the overage is stated with its unit. IPv4 addresses are a resource in their own right now, leased by the /24, so the block carries how many are included, what more cost, and the ceiling.
The fifth, OpenDisk, is being published alongside OpenServer itself.
The one new idea
Every block may carry a range. It is the part a configurator hides in a form: which field the buyer can dial at checkout, its bounds, the step, and what a step costs on top of the base price.
"range": {
"key": "ram_mb", "min": 32768, "max": 1048576, "step": 32768,
"price": { "amount": 12, "currency": "USD", "interval": "month", "per": 32768 }
}
That is memory sold in 32 GiB steps at 12 dollars a month each. A directory shows the base and the step instead of one row per size, and an agent asked for "64 GB under 60 a month" can answer from the file.
What is not in them
No benchmarks. The clock is the vendor's figure, the throughput is the vendor's figure, and a measured number is another document's business. No carrier lists, no SLAs, no reservation calendars. Every rule degrades: the smallest valid compute block is { "compute": { "vcpu": 4 } }, and absence is unstated, never a default.
Why
A provider already keeps this data in a table, because its order form reads it. The file is that table, exported, at a fixed URL, in a shape every reader agrees on. Nobody scrapes anybody, and the provider stays the author of its own words. The first directory reading it is the hosting collection on nichedb.dev.
The specs are at logicsrc.com/docs/opencpu, openmemory, opengpu and openbandwidth, CC BY 4.0. Serve one, copy it, extend it.
Top comments (0)