VJOURNAL

BusinessGlobal DeskAugust 05, 2026

Every Service Is Priced Twice, and the Two Prices Do Not Agree

Two currency prices need not match a live exchange conversion when they include regional tax, payment costs, rounding, support or a deliberately fixed commercial rate. The buyer needs the rule and effective date, not an assumed conversion. A transparent.

A dark boardroom table with an open book of geometric block diagrams, facing a wall of illuminated grey, black and blue panels arranged in a grid

Answer in brief

Two currency prices need not match a live exchange conversion when they include regional tax, payment costs, rounding, support or a deliberately fixed commercial rate. The buyer needs the rule and effective date, not an assumed conversion.

Evidence cutoff: 5 sources
Two currency prices need not match a live exchange conversion when they include regional tax, payment costs, rounding, support or a deliberately fixed commercial rate. The buyer needs the rule and effective date, not an assumed conversion.
A transparent catalogue states which currency controls, when rates are reviewed and whether taxes or fees differ. Without that disclosure, a user cannot reproduce the comparison.
Record the displayed amount, timestamp, controlling currency, included tax, payment fee and refund currency; ask for the invoice total before treating a visible gap as either error or discount.

One catalogue, two price lists, no exchange rate

The VIT MARKET catalogue — the services arm of the VITON13 platform — publishes 100 listings, and every one of them carries two prices. There is a band in rubles and a band in US dollars, side by side on the same card. What there is not, anywhere in the codebase, is an exchange rate. A search across the platform's library, component and route directories returns no conversion constant, no rate field and no currency helper. The two columns are not one price rendered twice. They are two prices, written independently.

That is a perfectly defensible way to run a price list. Sellers routinely set a local price and an export price separately, because the two markets bear different things. But it has a consequence the catalogue never states out loud: divide one column by the other and you can read off the rate the seller was working to. Do it 126 times and the rate moves.

A disclosure before the arithmetic. VIT MARKET is VITON13's own storefront and VJOURNAL is VITON13's newsroom, which is exactly why nothing here is asserted from memory. Every figure below was computed from the catalogue source file. Where a sentence is our reading rather than the data's, it says so. And an implied rate, throughout, means one thing only: rubles divided by dollars for the same endpoint of the same listing. The catalogue never publishes such a number. It is derived here.

The clean sixty-three

Not every listing can be read this way. Many price labels carry extra text after the headline band — a per-unit rate, a package price, a note about what happens past a thousand pages. Comparing a label that prices per page against one that prices per project would produce a ratio that measures nothing.

So the comparison was restricted to listings where both labels are a bare two-number band and nothing else: a ruble band of the form 45 000 – 120 000 ₽, a dollar band of the form $900 – $2 500. Sixty-three of the 100 listings qualify. The other 37 were set aside, and the reason is asymmetric: 36 of the ruble labels carry extra text against 20 of the dollar labels, with 19 listings where both do. The ruble column is the wordier of the two.

Sixty-three listings with two endpoints each gives 126 places where the two currencies can be compared directly. That is the dataset for everything below.

The implied rate runs from 30 to 90

Across those 126 endpoints the implied rate has a median of 66.67 rubles to the dollar. It also has a minimum of 30 and a maximum of 90 — a threefold spread inside a single price list. The quartiles sit at 50 and 80, so even discarding the extreme quarter at each end leaves a 1.6-fold gap between a typical low reading and a typical high one.

The concentration is weaker than the median suggests. Only 23 of the 126 endpoints fall within ten per cent of that median rate. Widen the tolerance to twenty-five per cent and 75 of 126 come inside — meaning roughly two endpoints in five still disagree with the catalogue's own central rate by more than a quarter.

The extremes are ordinary listings, not oddities. The lowest reading in the set is a WordPress-to-static migration whose ceiling is quoted at 90,000 rubles and $3,000, an implied 30 rubles to the dollar. The highest is a customer-review analysis service whose ceiling is quoted at 180,000 rubles and $2,000, an implied 90. Both are plain, unqualified bands. Neither is a typo in any obvious sense. They simply sit at opposite ends of a rate that the catalogue never fixed.

The gap is not noise — it sorts itself by group

If the two columns had been written carelessly, the implied rate would scatter at random. It does not. Take the median midpoint of each service group in each currency and the rate lines up in a clean order.

Website development: a median of 42,500 rubles against $1,000, an implied 42.5. SEO and traffic work: 26,000 rubles against $400, an implied 65. Automation: 27,250 rubles against $382.50, an implied 71.24. AI for business: 120,000 rubles against $1,650, an implied 72.73. The order is monotonic and the spread between the ends is 1.71 times.

Coverage varies by group and the reader should weight the four figures accordingly: 23 of web development's 25 listings survive into the clean subset, and 19 of AI's, but only 12 of automation's and 9 of SEO's. The SEO figure rests on nine listings and should be treated as the softest of the four. The web-development and AI figures rest on most of their groups and are firm.

Our reading, offered as reading: the ruble column looks like the column that was priced first, against a local market the seller knows, and the dollar column looks like it was set afterwards with a different sense of what each kind of work is worth abroad. Web development was marked up least on export. AI work was marked up most. The data supports the pattern; it does not record the intention, and we cannot see inside the pricing decision.

How much more does AI cost than a website? Two answers

That divergence stops being an accounting curiosity the moment a buyer uses this catalogue to compare one kind of work against another — which is the main thing a catalogue is for.

Read the ruble column and the median AI project costs 2.82 times the median website project: 120,000 rubles against 42,500. Read the dollar column, same 63 listings, same file, same moment, and the median AI project costs 1.65 times the median website project: $1,650 against $1,000. The answer to a single question about relative price differs by 1.71 times depending on which currency the reader happens to be shopping in.

The same reversal runs the other way down the list. Against web development, SEO work costs 0.61 times as much in rubles but 0.40 times as much in dollars. Automation costs 0.64 times as much in rubles and 0.38 times in dollars. In both cases the cheaper disciplines look substantially cheaper to a dollar buyer than to a ruble buyer, and AI looks substantially dearer to a ruble buyer than to a dollar one.

This is the practical finding. Neither column is wrong — a seller is entitled to price differently in different markets. But the relative shape of the catalogue, the thing a buyer actually reasons with when deciding whether to automate a process or add AI to it, is not currency-neutral. Two buyers doing careful, identical, honest arithmetic on the same 63 listings will reach different conclusions about which discipline is the expensive one.

Even inside a single listing the two ends disagree

The divergence is not only between groups. It appears inside individual quotes. Of the 63 clean listings, just 8 imply the same rate at the floor as at the ceiling. For the other 55, the two currencies drift apart as the band widens.

The typical drift is small — a median of 1.07 times between the rate implied at one end of a listing and the rate implied at the other. The worst case is not small at all. A competitor-analysis service with monthly tracking is quoted at 20,000 to 35,000 rubles and at $250 to $800. Its floor implies 80 rubles to the dollar; its ceiling implies 43.75. One listing, one service, and the two ends of the same quote disagree about the value of a dollar by 1.83 times.

The mechanism is visible in the widths. Only 9 of the 63 listings have a ruble band the same relative width as their dollar band. The WordPress migration is a clear case: 35,000 to 90,000 rubles is a 2.57-fold band, while $800 to $3,000 is a 3.75-fold band. The two columns were not merely set at different levels. They were given different shapes, which is what happens when two ranges are written by judgement rather than derived from one another.

What this comparison cannot tell you

It cannot tell you which column is right. Deciding that would require a real market exchange rate and a date to apply it on. The catalogue records neither: there is no rate stored and no timestamp on any price. Every figure here is a ratio internal to the file, and no sentence above should be read as a claim about currency markets, about what a dollar was worth on any particular day, or about whether either price is fair.

It cannot tell you what anybody paid. These are published asking prices in two currencies, not invoices in either. Nothing in the data records which column a buyer was billed in, what discount was applied, or whether the two lists are even offered to the same people.

It cannot speak for the 37 excluded listings. They were removed for a stated reason, but their exclusion is not random — the ruble labels are wordier, so the rows that carry per-unit and package pricing dropped out disproportionately. One of them shows exactly why the exclusion was necessary rather than fussy: the bulk title-and-description generation service prices in rubles per page and in dollars per package. Those two numbers cannot be divided into a meaningful rate at all.

And it cannot support fine distinctions between the two middle groups. SEO's 65 and automation's 71.24 sit close together and rest on nine and twelve listings respectively. The finding that survives scrutiny is the wide one: web development at one end, AI at the other, 1.71 times apart.

Reading a price list that has two faces

For a buyer, the operative move is to do the comparison in the currency you will actually be invoiced in, and to distrust any ratio carried over from the other column. A recommendation that automation is a quarter the price of AI is a ruble statement or a dollar statement, and here those are different statements.

For anyone publishing a two-currency price list, the finding is a maintenance warning rather than an accusation. Two independent columns drift, and they drift in a way that is invisible on the page — nobody browsing a card sees the implied rate. It only appears when the whole list is read at once, which almost no customer does and almost no seller does either.

The narrow fix is to store one rate and derive the second column from it, accepting rounding. The broader fix, if two markets genuinely bear different prices, is to say so on the page — because at that point the gap between the columns is a deliberate commercial decision rather than an artefact, and a buyer comparing two disciplines deserves to know which of the two lists they are reasoning with.

Decision framework: same service priced in two currencies

Two currency prices need not match a live exchange conversion when they include regional tax, payment costs, rounding, support or a deliberately fixed commercial rate. The buyer needs the rule and effective date, not an assumed conversion.

A transparent catalogue states which currency controls, when rates are reviewed and whether taxes or fees differ. Without that disclosure, a user cannot reproduce the comparison.

Record the displayed amount, timestamp, controlling currency, included tax, payment fee and refund currency; ask for the invoice total before treating a visible gap as either error or discount.

Practical checklist

  • same service priced in two currencies: write the promised outcome and acceptance rule.
  • same service priced in two currencies: record every exclusion, dependency and unresolved assumption.
  • same service priced in two currencies: assign an owner and review date to evidence that can narrow the estimate.
  • Record the displayed amount, timestamp, controlling currency, included tax, payment fee and refund currency; ask for the invoice total before treating a visible gap as either error or discount.

Questions and answers

same service priced in two currencies: what should a buyer verify first?

Two currency prices need not match a live exchange conversion when they include regional tax, payment costs, rounding, support or a deliberately fixed commercial rate. The buyer needs the rule and effective date, not an assumed conversion. Record the displayed amount, timestamp, controlling currency, included tax, payment fee and refund currency; ask for the invoice total before treating a visible gap as either error or discount.

same service priced in two currencies: which assumption changes the estimate most?

A transparent catalogue states which currency controls, when rates are reviewed and whether taxes or fees differ. Without that disclosure, a user cannot reproduce the comparison.

same service priced in two currencies: what is the next practical step?

Record the displayed amount, timestamp, controlling currency, included tax, payment fee and refund currency; ask for the invoice total before treating a visible gap as either error or discount.