Trading costs on Upscale come from three components: the commission for opening and closing a position, the spread, and funding for holding a position.
Commission on operations
A commission is charged every time a position is opened and closed. The rate is the same for both operations and depends on the asset category and the challenge format.
| Asset category | Basic and Accelerated | Turbo |
|---|---|---|
| Crypto | 0.008% | 0.06% |
| RWA: Forex, XAU/XAG | 0.0035% | 0.007% |
| Indices (including KR200 and JP225) and copper | 0.0035% | 0.01% |
| 24/7 stocks, WTI crude oil and natural gas | 0.003% | 0.02% |
Spread
The spread is the difference between the price at which an asset can be bought and the price at which it can be sold. If Bitcoin can be bought at $60,000 and sold at $59,950, the spread is $50.
The calculation model differs by category.
The spread is dynamic and depends on the trading pair, current volatility and market depth.
BTC and ETH follow a separate rule based on operation frequency:
- when positions are opened an hour or more apart, the spread is zero;
- when the interval is less than an hour, the market spread applies on opening;
- on closing, the spread for BTC and ETH is zero regardless of the interval.
All other pairs use the market spread.
All Forex pairs carry a static spread of 0.0015%. It is fixed and does not move with market volatility.
As with the other RWA assets, the spread is charged only when opening or increasing a position and does not depend on its size.
The rate depends on the trading session and on operation frequency. Operations are counted separately for each pair.
| Period | Spread |
|---|---|
| Core session: 07:00–20:00 UTC (summer time), 07:50–21:00 UTC (winter) | 0.0015% |
| Outside the core session | 0.0065% |
The rate applies to the first open or increase operation on a pair. Every subsequent operation on the same pair within the hour uses the dynamic market spread.
The timer resets 60 minutes after the last open or increase operation on that pair: if no new operations occur in that time, the next one is charged at the session's base rate again.
Applies to US500, NAS100, US30 and US2000. Times are New York time (America/New_York).
Monday to Thursday
| Session | Time, ET | Spread |
|---|---|---|
| Overnight | 20:00–04:00 | 0.02% |
| Extended | 04:00–09:30 | 0.01% |
| Main | 09:30–16:00 | 0.0015% |
| Extended | 16:00–17:00 | 0.01% |
| Technical break | 17:00–18:00 | trading unavailable |
| Extended | 18:00–20:00 | 0.01% |
Friday
| Session | Time, ET | Spread |
|---|---|---|
| Overnight | 00:00–04:00 | 0.02% |
| Extended | 04:00–09:30 | 0.01% |
| Main | 09:30–16:00 | 0.0015% |
| Extended | 16:00–17:00 | 0.01% |
| Market closed | from 17:00 until Sunday 18:00 | trading unavailable |
Sunday
| Session | Time, ET | Spread |
|---|---|---|
| Market closed | 00:00–18:00 | trading unavailable |
| Extended | 18:00–20:00 | 0.01% |
| Overnight | 20:00–00:00 | 0.02% |
The market is closed on Saturday.
If open or increase operations on the same pair happen more than once an hour, a dynamic component is added on top of the session rate. After 60 minutes without such operations the rate returns to the base session level.
Applies to GER40 and EU50. Times are New York time (America/New_York).
Monday to Thursday
| Session | Time, ET | Spread |
|---|---|---|
| Overnight | 20:10 the previous day – 02:00 | 0.02% |
| Extended | 02:00–03:00 | 0.01% |
| Main | 03:00–11:30 | 0.005% |
| Extended | 11:30–16:00 | 0.01% |
| Market closed | 16:00–20:10 | trading unavailable |
Friday
| Session | Time, ET | Spread |
|---|---|---|
| Overnight | 00:00–02:00 | 0.02% |
| Extended | 02:00–03:00 | 0.01% |
| Main | 03:00–11:30 | 0.005% |
| Extended | 11:30–16:00 | 0.01% |
| Market closed | from 16:00 for the weekend | trading unavailable |
Sunday
| Session | Time, ET | Spread |
|---|---|---|
| Market closed | 00:00–20:10 | trading unavailable |
| Overnight | 20:10–00:00 | 0.02% |
The market is closed on Saturday.
If open or increase operations on the same pair happen more than once an hour, a dynamic component is added on top of the session rate. After 60 minutes without such operations the rate returns to the base session level.
The times in these tables follow the summer schedule. In winter the session boundaries shift by an hour in line with the seasonal schedule of the European market, and the weekly open moves from 20:10 to 19:10 ET. Full trading hours are on the Trading Assets page.
The rate depends on the Japanese market session. Times are in UTC, with Tokyo time in brackets.
| Period | Spread |
|---|---|
| Main session: Mon–Fri, 00:00–02:30 and 03:30–06:30 UTC (09:00–11:30 and 12:30–15:30 Tokyo time) | 0.01% |
| Main session break: 02:30–03:30 UTC (11:30–12:30 Tokyo time) | 0.02% |
| All other market hours | 0.02% |
The market is closed daily from 17:00 to 18:00 ET and over the weekend, from Friday 17:00 to Sunday 18:00 ET. Full trading hours are on the Trading Assets page.
The rate depends on the Korean market session. Times are in UTC, with Seoul time in brackets.
| Period | Spread |
|---|---|
| Main session: Mon–Fri, 23:45 the previous day – 06:45 UTC (08:45–15:45 Seoul time), on regular South Korean trading days | 0.02% |
| Outside the main session, weekends and South Korean holidays | 0.05% |
If open or increase operations on KR200 happen more than once an hour, a dynamic component is added on top of the session rate. After 60 minutes without such operations the rate returns to the base session level.
The rate depends on the session of the exchange where the stock trades.
US stocks, including SKHY and TSM. Times are New York time (America/New_York).
| Period | Spread |
|---|---|
| Main session: Mon–Fri, 09:30–16:00 ET, on regular US trading days | 0.09% |
| Weekdays outside the main session and US holidays | 0.14% |
| Weekends: Sat 00:00 UTC — Mon 00:00 UTC | 0.20% |
South Korean stocks: SMSN, HYUNDAI. Times are in UTC, with Seoul time in brackets.
| Period | Spread |
|---|---|
| Main session: Mon–Fri, 00:00–06:30 UTC (09:00–15:30 Seoul time), on regular South Korean trading days | 0.09% |
| Weekdays outside the main session and South Korean holidays | 0.18% |
| Weekends: from the end of the last South Korean trading session on Friday to the start of the first session on Monday | 0.20% |
Outside the main session the spread on Korean stocks is higher than on US stocks, as the Korean market is more volatile during those hours.
The rate depends on the trading session, with times given in New York time (America/New_York).
| Period | Spread |
|---|---|
| Main session: Mon–Fri, 09:00–14:30 ET | 0.08% |
| All other times and US market holidays | 0.12% |
| Weekends: Sat–Sun, 00:00–24:00 UTC | 0.20% |
If open or increase operations on WTI happen more than once an hour, the base session rate is replaced by a dynamic spread calculated from market depth. After 60 minutes without such operations the rate returns to the base session level.
Applies to NATGAS. Times are New York time (America/New_York).
| Period | Spread |
|---|---|
| From Sunday 18:00 to Friday 17:00, except the 17:00–18:00 window | 0.10% |
| Monday to Thursday, 17:00–18:00 | 0.14% |
| From Friday 17:00 to Sunday 18:00 | 0.22% |
If open or increase operations on NATGAS happen more than once an hour, a dynamic component is added on top of the session rate. After 60 minutes without such operations the rate returns to the base session level.
Applies to HG. Times are New York time (America/New_York).
| Period | Spread |
|---|---|
| Monday to Friday, 08:00–16:00 | 0.012% |
| All other market hours | 0.025% |
| Monday to Thursday, 17:00–18:00 | technical break, trading unavailable |
| From Friday 17:00 to Sunday 18:00 | market closed |
If open or increase operations on HG happen more than once an hour, a dynamic component is added on top of the session rate. After 60 minutes without such operations the rate returns to the base session level.
Across all RWA assets the spread is charged only when opening or increasing a position and does not depend on its size. Current values update in real time and are visible in the trading terminal.
Price deviation
When a position is opened or increased, the execution price can differ from the current market price. This deviation has two components, and the Position info block shows them separately.
| Parameter | What it means |
|---|---|
| Price deviation | the total expected deviation of the entry price from the market price: Est is the estimate for the current position parameters; Max is the permitted limit |
| Spread | the fixed component: it does not depend on position size |
| Volume impact | the dynamic component: it grows with trade size and depends on current market depth |
When a position is increased, volume impact is calculated on the added size only.
Maximum deviation
If the expected deviation exceeds Max, the position cannot be opened or increased. You can set this limit yourself: click the Max value in the Price deviation row and enter it as a percentage.
| Parameter | Value |
|---|---|
| Default | 4%, or the pair's system maximum if that is lower |
| Minimum | 0.1% |
| Maximum | the system maximum for the trading pair |
The setting is saved separately for each trading pair. Deviation is checked immediately before execution and, for pending orders, at the moment they trigger: if it is above Max, the operation is not executed.
Recent trades
On crypto pairs, volume impact also takes your recent trades into account: positions opened or increased on the same pair, in the same direction, on the same account. Splitting a large trade into several smaller ones in quick succession therefore does not reduce the overall volume impact. The volume taken into account gradually falls back to zero.
When recent trades affect the calculation, this is shown in the volume impact tooltip. In the history, such operations carry a marker next to the entry price showing the volume that was taken into account.
Session schedules for each category are on the Trading Assets page, and how funding is charged is covered on the Funding page.