What price does the end user see?
The price displayed to the end user is determined by two things, the raw ticker price, which you receive from the price source you select (Kraken, Bitstamp, etc.), and the commission percentage set by you. The price that the user sees is the raw ticker price plus the raw ticker price times the commission percentage.
For example, if the price of 1 BTC according to your ticker source is €30,000 at the time of transaction, and your commission percentage is 12%, then the price of 1 BTC provided to the end user is €33,600 = €30,000 + €30,000 * 12%.
How much does the user receive?
The amount of crypto that the user receives in a transaction is determined by the amount of fiat they insert, the displayed price as calculated above, and the fixed fee you set.
The fixed fee is a fixed amount of fiat that you want to charge for each transaction. It is deducted from the fiat amount the user inserts and not counted toward the total purchase.
If the user inserts €1,000, and the fixed fee is €5, then they'll have effectively inserted €995 toward their transaction.
Therefore, the amount of crypto that the user receives is calculated by subtracting the fixed fee from the amount they insert, then dividing the result by the displayed price.
An example transaction
Let's continue the previous example:
- User inserts: €1,000
- Fixed fee: €5
- Raw ticker price for 1 BTC: €30,000
- Commission rate: 12%
In this case the user receives:
(€1,000 - €5) / (€30,000 + €30,000 * 12%) = 0.02961309 BTC
Note: This is not inclusive of any applied Promo Codes you may have set. More on that below.
How much is my profit?
Profit is the difference between the amount of fiat that the user inserts and the amount of crypto that you dispense. (As your exchange linkage repurchases the exact crypto amount which is sent to the user, your profit is retained in fiat. Consequently, when calculating profit, you can convert everything into their equivalent fiat amount at the time of transaction.)
Still taking the above case, the user inputs €1,000, and taking into account commissions and fixed fees, the user receives 0.02961309 BTC, which is at the time of transaction equivalent to €888.39. Thus the profit you earn from this transaction is €111.61.
Profit margin vs. commission percentage
To compute the profit margin of the above example transaction, divide the €111.61 profit by the €1,000 revenue, and the result is 11.16%. Note that this is different from your commission percentage.
In general, the profit margin will be different from the commission percentage. Nevertheless, the higher you set the commission percentage, the higher profit margin you get. The fixed fee will also affect your profit margin, but the precise change will depend on the size of the transaction. However, the profit margin will not depend on the raw ticker price.
Promo Code discounts
If the user has a Promo Code that grants them a discount, they will be able to enjoy a lower commission percentage for that transaction.
Continuing with the earlier example where the commission rate is 12%, if the user has promo code for a 20% discount, then for them the commission rate will effectively be 12% * (100% - 20%) = 9.6%.
This does not affect the fixed fee, which stays fixed for all transactions.
Using the column names found in exported transaction logs, here's how this is broken down for a BTC transaction.
The amount of BTC the user receives is:
(fiat - cash_in_fee) / (raw_ticker_price * (1 + (commission_percentage * (1 - (0.01 * discount)))))
This will be equal to:
crypto_atoms * 0.00000001
The operator profit in fiat is:
(fiat - ((fiat - cash_in_fee) / (1 + (commission_percentage * (1 - (0.01 * discount))))) * 0.00000001)
Which will also be equal to:
(fiat - (raw_ticker_price * crypto_atoms * 0.00000001))
Note: There is rounding that occurs on the machine in order to provide the user a fixed amount of crypto per fiat unit they insert. For the sake of reducing complexity, this aspect is not included in the above formulas, though it does mean the amount sent to the user is very slightly under how it would be calculated above.