# Frequently asked questions

About Soulver - the world's best notepad calculator

{% hint style="info" %}
If your question is not answered here, [send us an email](mailto:contact@soulver.app) or a [message on X](https://x.com/soulver). We're happy to help.
{% endhint %}

### Where can I get Soulver 4?

Soulver 4 is available as a **one-time** (non-subscription) purchase of $59 on the [App Store](http://soulver.app/appstore).

One purchase gives you access to all 3 platforms (Mac, iPhone & iPad). This is 20% more affordable than the previous version, which we sold separately per platform.

If you only need the iPhone version, it's also available as a separate purchase of $15.

Soulver is also available on [Setapp](https://soulver.app/setapp) (260+ apps for $15/month).

### Can I try Soulver before purchasing?

Yes: we offer a <mark style="color:green;">**no-commitment**</mark> 60-day trial. No account required.

You are <mark style="color:green;">**not charged**</mark> when the trial ends. You may purchase or delete Soulver at any time, during or after the trial.

After the trial ends, you can continue to view any sheets you have created (although they will no longer be editable).

### Do you offer upgrade pricing from Soulver 3?

Yes. If you bought Soulver 3 on the App Store, you get Soulver 4 for half price — $29 instead of $59.

Additionally, if you bought the [direct download of Soulver 3](https://soulver.app/download), install Soulver 4 from the App Store on the same Mac where Soulver 3 is registered — it'll detect your purchase and unlock the same 50% discount for you.

### Can I stay with Soulver 3 if I don't want to upgrade to 4?

Of course. On the App Store, Soulver 3 and 4 are the same app: you stay on the Soulver 3 feature set until you choose to unlock Soulver 4's features, with an optional in-app purchase.

New features come to Soulver 4 — feel free to upgrade whenever you feel like it, or never.

The [direct download of Soulver 3](https://soulver.app/download) will also keep getting system-compatibility updates.

### What are the system requirements for Soulver 4?

The Mac version requires macOS 14 (Sonoma) or newer, and is compatible with the latest macOS 27 (Golden Gate).

The iPad & iPhone versions require iOS/iPadOS 17 or later, and are compatible with the latest iOS/iPadOS 27.

## <mark style="color:blue;">**Common questions**</mark>

### Can I get Soulver to ignore certain numbers in my text?

Sure, use a [comment](/syntax-reference/headings-and-comments)**:**

![Labels & other comment styles in Soulver](/files/-MjLMz7cnYRzKoB66nIf)

### Can I turn off notation in answers?

By default Soulver formats your large answers with [SI notation](https://en.wikipedia.org/wiki/Metric_prefix):

![M stands for million](/files/-Li2uHc-_H6l8eF9-hBJ)

To disable this notation, go to the `Format` menu and untick `Notation for Large Numbers`.

![The answer with notation disabled.](/files/-Li2ufwZfurTrTePEiK_)

You can also access line-specific formatting settings by clicking the action button on an answer:

![Contextual Menu on an Answer](/files/-Mj4Bs7y9g8iWW5kJWQ-)

To turn off notation for **all lines**, go to

`Settings > Calculator > Number Formatting`

and disable `Notation for Large Numbers`

### In Soulver, 1 GB equals 1000 MB. But isn't 1 GB actually 1024 MB?

Soulver conforms to the industry standard binary prefix system, which you can read about here:

{% embed url="<http://en.wikipedia.org/wiki/Binary_prefix>" %}

The gist of it is that new units (KiB, MiB, GiB) have been introduced to represent base 2 binary units, so that kB, MB & GB can behave like normal base 10 SI units.

## <mark style="color:blue;">**Design, history & philosophy of Soulver**</mark>

### What were the original design goals for Soulver?

For the first Soulver (released in 2005) our goal was to invent a better calculator interface for computers.

To us, this meant:

1. Answers calculate live – no explicit press of an equals button required
2. Support for adding commenting words alongside calculations, for extra clarity & context
3. The ability to edit & do calculations referencing previous calculations

We succeeded in these goals by placing an "answer column" alongside a notepad, inventing a new kind of notepad calculator in the process.

Adding multi-word variables (inspired by programming languages) & line references (inspired by spreadsheets) opened up lots of additional workflows too.

### What are the current design goals for Soulver?

Since 2005, we have constantly been improving Soulver year-after-year, while ensuring it never becomes bloated or complicated.

For the last decade we've been focusing on:

1. Ensuring best-in-class apps on each Apple platform we support (by using native technologies, and integrating deeply with the operating system)
2. Adding more natural language features to "take a load off your brain" when working through problems involving a calculation
3. More ways to personalize your calculation *environment* (global variables, custom units, tons of visual options, etc)

### Soulver is a natural language calculator. Is it using machine learning (AI) to achieve this?

Actually, no. Soulver does **not** use machine learning algorithms, or even [regular expressions](https://en.wikipedia.org/wiki/Regular_expression).

Soulver is powered by our natural language calculation engine [SoulverCore.](https://soulver.app/core)

SoulverCore scans text for particular syntaxes and evaluates the last valid mathematical expression it finds on a line of text.

If you're curious about how we built SoulverCore, check out the wonderful book [Crafting Interpreters](https://craftinginterpreters.com/) by Robert Nystrom.

### Was Soulver the first notepad calculator?

Soulver (originally released in 2005) was the first notepad calculator to use an **answer column** on the right side of a text editor with instant calculation.

Soulver 1.2 (released in 2006) was the first notepad calculator that let you use **words alongside numbers.** And Soulver 2 (released in 2010) was the first notepad calculator to support live currency & stock rates, natural language functions & tokenizing line references.

The first notepad + calculator tool that we know of is [MathPad](https://macintoshgarden.org/apps/mathpad-2) by Mark Widholm released for Macintosh in 1993.

[Calca](https://calca.io) is a modern app inspired by the MathPad design, in that it prioritizes comments over math, and requires you manually insert a special symbol (=>) to invoke calculation.

We prefer Soulver's approach, in which your expression is evaluated as soon as you type it (no explicit calculation step required).

## <mark style="color:blue;">**List of Soulver Clones**</mark>

**Native Windows**

* [OpalCalc](https://www.skytopia.com/software/opalcalc/)

[**Electron**](https://www.electronjs.org/docs/latest)**-based (compatible with Windows, Linux & Mac)**

* [Parsify](https://parsify.app/)
* [Figr](https://figr.app/)

**Web-based**

* [Numbr](https://numbr.dev)
* [NoteCalc](https://bbodi.github.io/notecalc3/)

{% hint style="warning" %}
If you make a calculator product inspired by Soulver, please consider writing an acknowledgment of Soulver as the source of the idea (somewhere on your website, or in your application credits).\
\
Everyone benefits when great UI concepts are copied, evolved upon, and widely used.
{% endhint %}


# Changelog

New features & improvements in the latest Soulver updates

{% updates %}
{% update date="2026-06-29" %}

## 4.0.1

#### General

* Improved multi-platform sync reliability, especially related to the definition sheet & global variables
* Added a setting for whether divider lines are purely cosmetic, or also reset your local variable state for subsequent lines
* Fixed a crash in the new trip planning feature when typing out a single date that falls prior to the trip start

#### Mac

* Restored the ability to choose a custom font in the new settings
* Fixed an issue with line highlighting not working in the Setapp version

#### iOS & iPadOS

* You can now resize the answer column on iPad
* The sheets list sidebar width is now saved across launches on iPad
* Fixed a bug with the new sheets archive not showing on iOS. Any sheets you archived are safe, it just wasn't visible in the folders list<br>
  {% endupdate %}

{% update date="2026-06-22" %}

## 4.0

{% hint style="info" %}

* Soulver 4 is our first paid update in 7 years with **50+ new features**
* Soulver is now a **universal purchase** (Mac, iPad & iPhone)
* Owners of Soulver 3 are invited **to upgrade to Soulver 4** **at 50% off** on the App Store
  {% endhint %}

### What's new in Soulver 4?

[Detailed release notes](/whats-new-in-soulver-4)

#### Trip planning

* Plan out the date ranges for a trip by specifying the days or nights you'd like to spend in each place
* Specify a trip end date and Soulver will alert you when you've exceeded your time budget

#### Tags workflow

* Tag lines with hashtags (#work, #home, etc) and add up or average lines that include the tag

#### Line highlighting

* Highlight important lines in color to make them stand out
* Create dividers to add extra structure to sheets

#### Definition sheet

* Define new units & global variable in a dedicated Soulver sheet
* Support for new unit types (like "widgets", "operations", etc)

#### Functions & units

* **Science:** additional units for physics & chemistry, electrical calculations & vehicle related calculations
* **Geography**: calculations (distance between places, DMS)
* **Money:** sales tax, income tax, inflation
* **Music**: midi & pitch
* **Change over time:** linear & exponential change + file transfer functions

**+** functions for woodworking, pace and percentage ratios.

#### New calendar calculation features

* Improved work hour & work day calculations
* Do calculations involving cultural events (Christmas, Ramadan, Chinese New Year, etc)
* Format dates using format patterns

#### Sheet pinning & archiving

* Pin sheets to the top of folders
* Archive sheets once you're done editing them but want to keep them around

#### Redesigned settings

* Inspired by the macOS system settings
* 20+ additional settings to further customize your Soulver experience, including answer column alignment & background color

#### HTML emailing service

* Free service that lets you share your Soulver sheets as beautifully styled HTML emails

#### iPhone cursor pad

* Navigate your sheets on iPhone more easily with the new cursor pad
* Hold down on the 9 key to activate the pad

#### Agent friendly CLI

* The soulver command line interface can now edit Soulver sheets & sheetbook files
  {% endupdate %}

{% update date="2026-05-16" %}

## 3.16.2

**Sunrise & Sunset**

* Get sunrise, sunset, and daylight hours for a place — `sunrise in Tokyo`, `sunset in Paris on Dec 21`, `daylight hours in Reykjavik`

**Quarters**

* Support for expressions using “quarter”, like `next quarter`, `this quarter`, `last quarter` (e.g. `days until next quarter`)

**Superscripts**

* Support for superscript exponent characters: `100²` → `100^2`

**Bug Fixes**

* Fixed an issue with some non-English language input methods (thanks Kai-Chieh)
* Improved the accuracy of one particular exponent-related calculation (thanks Harry)
  {% endupdate %}

{% update date="2026-05-01" %}

## 3.16.1

**Mac**

* Selection subtotals now work for non-contiguous selections (when you command-click non-consecutive lines to select them).

**iOS**

* Improved Sheets & Syncing settings pane
  * Added a "Sync Control" section that lets you see the sync console and take sync troubleshooting steps
  * Fixed a short hang when the pane opened if you have a lot of backups

**Calculator**

* The rates for Euro-pegged currencies are now more accurate: XOF, XAF, KMF, CVE, BAM & BGN.
* Fixed an issue with π in Greek words behaving incorrectly (thanks, Alexander).
* Fixed an issue with the “min of 3 and 4” function in variable declarations (thanks, Nihaal).
  {% endupdate %}

{% update date="2026-04-13" %}

## 3.16

**Languages**

* Added Japanese, Korean, & Italian localizations
* Soulver's documentation is now translated into all languages

**Calculator**

**Screen Density Calculations**

* Added PPI/DPI units
* Convert between physical length and pixels at a given density, for example `1 cm in px @ 326 ppi` or `40 px to cm at 96 dpi`
* Added a screen density function like `ppi of 15" screen at 1024x768`

**Trigonometry**

* Added cotangent & cosecant trigonometry functions (cot, csc) and their hyperbolic, inverse, and degree variants (coth, csch, acot, acsc, cotd, cscd, acotd, and acscd)

**Units**

* Added rates for the Uniswap (UNI) cryptocurrency

**Functions**

* Added an "is x prime" function: `is 59 prime` (= true)

**Statistics**

* Added standard deviation: `standard deviation of 20, 30 and 40` (= 10)
* Added "avg" as a synonym for "average" (`avg of 3, 4, 5`)

**Calendar & Timezone Calculations**

* Added a shorthand time difference function: `time difference Paris` (interpreted as "what is the time difference between here and Paris"), also `time diff paris` & `diff paris`
* Added a "years to" function (`years to 2029`)

**Percentage Phrases**

* Percentage phrases now support arbitrary comment words in more cases. For example: `20% discount off $500`, `5% gratuity on $95`, `40% of 90`

**United States Customary Units**

* US customary units are now returned in certain cases when the input uses US customary units
* Added support for compound feet-and-inches expressions using "and" (e.g. `5 feet and 3 inches in cm`)
* Added additional feet/inches aliases

**Cities and Airports**

* Added 119 additional tourist-destination cities and airports

**Bug Fixes**

* Fixed an issue with rounding functions and lap times (thanks Jasper)
* Fixed an issue with line dp settings not applying to feet & inches (thanks Jon)
* Fixed an issue with locales that use a dot as a decimal separator and space as the thousands separator
* Fixed an issue with adding clock-formatted times around daylight savings change boundaries

**Mac**

**General**

* Minor improvements to the Calculator settings window
* Floating total no longer shrinks unnecessarily when over empty lines
* Nicer drag image when dragging an answer from the answer column
* Updating currencies no longer clears the undo state for a sheet

**Bug Fixes**

* Fixed an issue with the Quicklook Plugin not working in the App Store version
* Fixed an issue where the calculate anywhere services were not respecting the default formatting settings
* Fixed an issue with the automatic variable rewrite feature not working in some cases

**iOS**

* Additional cases in which the previous line will be inserted on a new line, including starting a line with a currency, a percentage phrase, "to", and other specifiers
* Added a setting under Styling to select whether a line reference token shows the referenced result (the default), or the line number of the referenced line
  {% endupdate %}

{% update date="2025-12-30" %}

## 3.15.2

**iOS**

* Fixed an issue with multi-page printing on iOS 26 cutting off on the edges (thanks Joshua)
* Fixed an issue with the statistic not being included in PDF exports when selected (thanks Christian)
* Keypad optimized for iPhone Air

**iPad**

* Fixed a visual issue with the sheets sidebar in compact mode on iPadOS 26
* Added a setting to completely disable the floating number pad on iPad (helpful for customers with magic keyboards)

**Mac**

* Fixed an issue with sheet search (⌘⌥-F) not working correctly on macOS Tahoe
* Fixed an issue where Soulver could unexpectedly come to the forefront after being hidden during iCloud account sign in/outs (thanks Ryan)
* Fixed an issue with the [Alfred](https://alfred.app/) workflow not working correctly with certain subtraction operations. You can also download the updated workflow directly from [here](https://soulver.app/alfred)

**Calculator**

* Fixed an issue with sheets with multiple variables containing periods (like "yearly" & "monthly") (thanks Mark)
* Fixed an issue with certain variable names in Chinese not automatically updating dependent lines (thanks Jiang)
  {% endupdate %}

{% update date="2025-09-17" %}

## 3.15.1

* Fixed a bug that was causing to Soulver crash on launch for users on macOS 13
  {% endupdate %}

{% update date="2025-09-15" %}

## 3.15

Soulver is ready & optimized for the new iOS, macOS & iPadOS 26.

**Mac**

* Added icons for the menu bar on macOS Tahoe
* Added a dedicated menu item to create a new sheetbook file
* Added a dedicated "Import" menu item, which also adds the ability to merge multiple sheetbooks into your current sheetbook
* Minimum supported macOS is now macOS 13.5 Sonoma

**iPad**

* Support for the new windowing system & menu bar
* Additional export options are now presented when using the share button after a swipe on a sheet

**Calculator**

* Additional built-in constants: phi (the golden ratio) and tau (2π)
* Support for date + plain number type expressions, assuming either days or hours. For example: "August 5 + 5" \[assume days], or "3:45pm + 5" \[assume hours]
* Support for "hourly", "daily", "weekly", "monthly", "quarterly" and "yearly" as both the compounding interval and interest interval in the compound interest formula. For example: "hourly interest on $1k for 3 years at 4% compounding quarterly"
  {% endupdate %}

{% update date="2025-09-01" %}

## 3.14.4

**Mac**

**General**

* General interface improvements for the soon-to-be-released macOS 26
* The backups window now shows the number of sheets in each backup

**Bug fixes**

* Fixed an issue where the cursor could sometimes stay as the "resize" column indicator when already over the text area

**iOS**

**Contextual Menu**

* The contextual menu on a sheet now lets you print, export into PDF and send styled emails and include preview stage to customize the appearance
* Copy lines with answers (as plain text) is now available on the contextual menu on a sheet too

**Custom keys**

* The custom key settings pane now shows you the standard keyboards that you can use for inspiration to quickly setup your custom keyboard how you want
* Keys added to the custom keyboard that match the title of a standard key will now get automatic additional popup options (when available). For example, if you name a key "today", you'll automatically get "tomorrow" and "now" available as extra options

**Calculator**

**Improvements**

* Support for Python style trailing comments on the end of lines (# this is a comment)
* Support for expressions like "USD1K" (without spaces).
* "1K" (uppercase K) is once again interpreted as one thousand (with "1 K" being 1 kelvin, with a space)

**Bug fixes**

* Fixed an issue with the wrong default currency symbol location for Swedish Kroner
* Fixed an issue with arithmetic related to stock tickers not working correctly in some cases (thanks Sami)
* Fixed an issue with numbers were being auto-formatted in multi-hash Markdown headings (###)
* Fixed an issue with "oct" clashing with the octal conversion function in an expression like "oct 1 2024 to jun 1 2025"
  {% endupdate %}

{% update date="2025-05-06" %}

## 3.14.3

**Inline Knowledge Assistant**

* The default provider for inline knowledge queries is now [Wolfram|Alpha](https://wolframalpha.com/).
* Wolfram|Alpha is the most reliable data source for live and accurate data, and it supports natural language queries.
* If Wolfram|Alpha cannot process your query (for example, if you use a language other than English), the knowledge assistant will direct your query to the latest AI model from OpenAI.

**Availability**

* The Setapp version, or the optional data subscription in the App Store version, is required to use the inline knowledge assistant.
* The direct download version continues to have access to inline Wolfram|Alpha (but you must provide your own Wolfram App ID).

**Large currency notation**

This update adds support for additional symbols representing large currencies (commonly used as shorthands in finance and journalism):

* Millions: $1M, $2m, or $3mn
* Billions: $1B, $2b, or $3bn
* Trillions: $1T, $2t, or $3tn

Currency results at these magnitudes will automatically use the new currency notation symbols.

* Which symbols are used depends on your region: for example, uppercase "$K, $M, $B, $T" are used in the US, and longer form "$k, $mn, $bn, $tn" are used in the UK.

**Misc improvements**

* New lines now automatically inherit the formatting settings of the previous line (this behaviour matches Soulver 2), rather than the default formatting settings.
* 'yr' and 'mo' are now supported as aliases for 'years' and 'months'.
* Support for "weather in place in a month of the year" style weather queries, like "weather in Tokyo in June" (advanced data subscription or Setapp required).
* Modernised currency codes for Mauritanian Ouguiya (MRO → MRU) and Venezuelan bolívar (VEF → VES).
* A slightly more accurate definition for the density of corn.

**Bug fixes**

* Fixed an issue with the automatic number formatter when formatting negative numbers with a fractional component after adding a space between the minus sign and number.
* Fixed an issue where the iPhone version could sometimes take a few seconds to launch during periods of low network coverage.
  {% endupdate %}

{% update date="2025-01-29" %}

## 3.14.2

**Non-decimal bases**

* Support for unit expressions in bases other than decimal, like "0xF days in minutes"
* Added support for base 8 (octal) numbers: 123 as octal (= 0o173)
* Added support for converting into other bases using a phrase "as base x", like "0b101101 as base 16" (= 0x2D)
* Added support for converting into other bases using functions: bin(), hex(), int() and oct() (inspired by Python)

**Expression Formatting**

**Auto-spacing division slashes**

* Soulver will now automatically insert spaces around slash division characters in certain cases, like in "500 / 40"
* There are still many cases where it's not preferred, like when working with fractions (1/3), rates (10 km/h), and Soulver will continue to not auto-space the division slash in these cases.

**Thousands separators**

* Soulver will now delete unnecessary thousands separators when deleting digits from the end of a number (i.e. "1,000" will now become "100" when deleting the final zero)

**Financial Functions**

**Investment required for return**

* This function is useful for when you have a specific return on investment you'd like to achieve from an investment (like a bank deposit)
* Specify a target dollar amount you wish you receive over a given period of time in interest and the interest rate
* Soulver will tell you how large your initial bank deposit needs to be

Examples:

* "investment required for $10k/month at 5%" (= $2.4M)
* "deposit needed for $42k/year at 7.5%" (= $560k)

**Daily mortgage payment functions**

* daily payment on $1M over 30 years at 6.5% (= $207.67)
* daily interest paid on $1M over 30 years at 6.5% (=$116.40)

**Totals & Sub-totals**

* Support for adding up numbers and percentages on different lines in subtotals
* For example you could type $500 on one line, and 10% on the next line. The total will now show $550.
* The floating total is smarter in some cases when adding up subtotal lines (thanks Sasha)

**Other**

**Clamp function**

* "clamp 26 between 5 and 25" (= 25)
* "clamp 4 from 5 to 25" (= 5)

**Bug Fixes**

* Fixed an issue with certain rounding phrase syntaxes that broke after the previous update, like "$110.00 USD in AUD to 2 digits" (thanks Ian & Mark)
* Fixed an issue where global currency variables were being rounded to 2 dp (thanks Shai)
* Fixed a bug where QuickSoulver would sometimes not respect editing setting changes (thanks Marcin)
* Fixed a bug where the floor() function wasn't working correctly with degree units (thanks Markus)
* Fixed an issue with very small numbers displaying as zero with notation disabled (thanks Eli)
  {% endupdate %}

{% update date="2024-12-16" %}

## 3.14.1

**Rounding Numbers Up and Down to Nearest Interval**

* Added phrases to round numbers up or down to a specific interval
* For example, "round 21 up to nearest 5" (= 25), "round down 20 to nearest 8" (= 16)

**Time to Decimal Conversions**

* Support for converting times to decimal: for example, "10:15 to decimal" (= 10.25)

**Millisecond Unix Timestamps**

* Added support for converting millisecond timestamps into dates, like "1733823083000 to date"

**Timezones**

* You can now include "time" as a commenting word in time zone conversions, like "3pm Sydney time to Lisbon time"
* "10am to London" will now be interpreted as "10am here to London"

**General**

* When copying out multiple lines of text with expressions & answers that include subtotal lines, these will now be included on their own line

**Bug fixes**

* Fixed an issue with sheets written in certain locales that use space as a thousands separator being incorrectly interpreted after syncing (thanks Øyvind & Edgar)
* Fixed an issue with auto-converting quantities in brackets in QuickSoulver (thanks Chris)
* Fixed a crash with the factorial function (when doing an expression like "fact(9999999.3)")
* Fixed an issue where an expression like "1.6 fl oz/acre to mL/ha" would return an error instead of converting correctly
* An expression like "Monday 5pm-7pm" now correctly returns the interval of time specified (2 hours in this example)

**Localizations**

* Minor improvements to the Russian localization
* Fixed an issue with the Chinese translation of Soulver not working correctly
  {% endupdate %}

{% update date="2024-12-10" %}

## 3.14

**iPad**

**Floating Number Pad**

* Hide/show the system keyboard using a button in the floating number pad — helpful on smaller iPads in landscape
* Added a larger floating number pad option with larger key sizes and the handy accessory bar
* The keyboard accessory bar provides many useful keys for various workflows, including currency conversions, working with variables, percentages, and date & time calculations
* You can customize the keyboard accessory bar with your own keys
* Toggle between the larger and compact floating number pads, depending on your needs

**iOS**

**General**

* Added parentheses ( ) as a popup option on the multiplication key
* Added move cursor left/right keys to the general accessory keyboard
* Added a Control Center control button that opens Soulver on iOS 18+
* Support for large & small icon styles on iPad, and dark & tinted icons on iOS 18+

**Bug Fixes**

* Fixed a crash on first launch on iPhone after starting the trial
* Fixed an issue with using the number pad alongside third-party keyboards (like SwiftKey from Microsoft, or Gboard from Google)
* Fixed an issue where pasting copied text containing line reference tokens into other apps wasn't working
* Fixed an issue where the variable accessory keyboard could show an out-of-date variable state for a line
  {% endupdate %}

{% update date="2024-11-06" %}

## 3.13.1

**Mac**

* Fixed an issue with the command line utility (& Alfred workflow) not being able to use currency rates
* Fixed a crash on macOS Sequoia for some non-English users

**iOS**

* Fixed an issue with the \[% of] button missing a space
  {% endupdate %}

{% update date="2024-10-17" %}

## 3.13

This update introduces additional settings and options for further personalizing the way currencies are formatted.

For data service subscribers on the App Store (and Setapp users), there are also new improvements to the weather feature, including the ability to perform weather queries for smaller places around the world and conduct historical weather queries.

**Currency Formatting**

**Use currency codes instead of symbols**

* In the **Calculator** settings under **Currency Symbols**, you can now choose to always use currency codes (like EUR) instead of currency symbols (in this case, €).

**Hide trailing zeros on currencies**

* In the **Calculator** settings under **Currency Symbols**, you can now choose to hide trailing zeros on currencies. With this setting off (the default), $1 is rendered as $1.00. With this setting on, the trailing zeros will be hidden.

**Settings**

**New sheet/file on launch**

* In the **General** settings, you can now choose to create a new sheet or Soulver file on launch.

**Tab for variable autocomplete**

* In the **Formatting** settings, you can now select Tab instead of Escape as the key that invokes variable autocomplete.

**Advanced Weather (requires Setapp or data services subscription on the App Store)**

**Historical weather queries (macOS 15+)**

* Look up the average, high, and low temperatures, as well as rainfall, in a place on a particular date.
* Data is available back to August 1, 2021.

**Historical averages by month (macOS 15+)**

* Perform weather queries for the average high/low temperatures and rainfall in a place in a given month.
* For example, "high in New York in June."
* Note that these are historical averages based on weather records going back to the 1970s (not maximum/minimums).

**Weather & time zone queries for small places**

* Soulver can already perform weather and time zone queries for approximately 500 of the largest cities on Earth.
* New in this update is the ability to look up weather for any place on Earth, including smaller places.
* For example, you can now type "weather in Ubud, Bali," or "temperature in Assisi, Tuscany."
* This feature also works for time zone queries using "time in (place)": "time in Inverness, Scotland," "time in Wollongong, NSW."
* And when working out time differences: "time difference between Kemer, Turkey, and Mill Valley, Marin County."

**Bug Fixes**

* Fixed an issue where a zero currency (like $0) could have unnecessary decimal places with certain decimal point settings (thanks, Nevan).
* Fixed an issue where subtotals were not respecting custom currency formatting settings (thanks Anssi).
* Fixed an issue with larger/smaller functions and negative currencies (thanks Ian).
* Fixed an issue introduced in 3.12 where certain variable lines needed to be manually edited to make them update (thanks Suvil & Andy).
* Fixed an issue in the Setapp version on macOS 15 where Soulver would unnecessarily prompt for access to "data from other apps" when opening Soulver Mini.
  {% endupdate %}

{% update date="2024-09-17" %}

## 3.12

**Support for latest operating systems**

This release adds support for the latest versions of Apple's operating systems:

* macOS 15 (Sequoia)
* iPadOS 18
* iOS 18

**iOS**

**Devices**

* Added support for the new iPhone 16 Pro screen sizes.

**Editor**

* The title of the current sheet will be displayed in the navigation bar (if it has one)
* Note that a "title" in Soulver refers to when you begin a sheet with a "#"

**Quick actions**

* Tap the answer of the line you're editing to quickly copy it to the clipboard
* Tap an empty line to quickly make a subtotal of lines above on that line

**Currency Keyboard**

* You can now pin select currencies to the start of the list (hold down on the currency code button, and choose "Pin" or "Unpin")

**Sharing**

* PDF is now the default file format for sharing a sheet.

**Bug fixes**

* Fixed a bug where the "( )" button would not wrap a text selection in brackets (thanks Evgeny)

**Mac**

**Quick Copy Action**

* Double-click the answer of the line you're editing to copy it to the clipboard
* Hold down option and double-click an answer of another line to quickly copy to the clipboard
* The default action for double-clicking other answers continues to be inserting a reference to the answer

**Quick Add Subtotal Action**

* Double-click an empty line to quickly make a subtotal on this line

**Alfred Workflow**

* The Soulver Alfred workflow has been updated (v1.5) and now lets you specify the trigger keyword (previous versions used "u").
* A bug introduced in the last update of the Soulver CLI has been fixed that prevented the Alfred workflow from working correctly with the Setapp & Mac App Store versions.

**Bug fixes**

* Fixed an issue with scrubbing negatively from $0 (thanks James)

**Calculator**

**Units & Conversions**

* Added cubic micrometer & square nanometer units
* Support for conversion from & into imperial volume units explicitly, like "1 liter in imperial pints"
* Added support for unit expressions with a fractional value, like "1 1/2 pounds"
* More flexible unit conversion for ostensibly incompatible units: "3 mph to minutes" (convert to miles/minute), "10 cubic centimeters to meters" (convert to cubic meters)
* Support for automatic conversion of units without explicit value: "usd eur" will be interpreted as "1 usd in eur"
* Units in rates will now be preserved rather than cancelling out when converting to an alternative form: "8g/2 lb as grams/lb (= 4 g/lb)"

**Stock Tickers**

* Added Nvidia (NVDA) as a built-in stock ticker (along with the existing support for the tickers of Apple, Microsoft, Google, Amazon, Meta, Tesla, AirBnB, & Netflix)

**Cryptocurrencies**

* Switched to using "POL" as the symbol for the Polygon token (previously "MATIC")

**Time zones**

* Support for "ct" (central time), "pt" (pacific time), "mt" (mountain time) and "et" (eastern time)

**Subtotals**

* When starting a new line with an operator (±) inside a subtotal, Soulver will no longer insert the previous line as a reference. This is helpful for doing running subtotals.

**Financial functions** You can now work out compound interest compounding monthly and quarterly:

* "interest on $100 after 3 years at 10% compounding monthly"
* "interest on $100 for 3 years at 10% compounding quarterly"

**General**

* Support for larger inputs to combination and permutation functions
* Support for min/max functions with percentages (thanks Eemil)
* Power phrase function: "3 to the power of 9", "2 exponent 4", "4 raised to 2"
* Added additional trigonometry functions that take their parameter in degrees: "asind", "acosd", "atand" and "tand"

**International**

* Support for full width parenthesis characters ( commonly used in China, Korea & Japan)

**Bug fixes**

* Fixed an issue where "1.003.020" was incorrectly being interpreted as a date (thanks @infolinux)
* Fixed an issue with summing multiple decimal rates in the quick total or subtotals (like 3.4/day, 5.9/day, etc) (thanks Devin)
* Fixed an issue with certain unit multiplications not returning in the most ideal form: "3 min × 15 mph" now returns "0.75 mi" rather than 1,207 m
* Fixed an issue with feet units that are written with a trailing apostrophe, like 30.334'
  {% endupdate %}

{% update date="2024-05-20" %}

## 3.11.3

**Soulver Studio**

* Turn sheets into stand-alone Mac apps that can be shared with others (compatible with macOS 12+)
* Select a sheet, go to the "Sheet" menu and choose "Build App from Sheet"
* Choose from 7 fun icon colors

**App creation details**

* Mac apps built from sheets are [sandboxed](https://developer.apple.com/documentation/security/app_sandbox/protecting_user_data_with_app_sandbox) for security and sent to Apple for "notarization"
* Notarization is a process that makes an app [Gatekeeper](https://support.apple.com/guide/security/gatekeeper-and-runtime-protection-sec5599b66df/web) compatible, so they can be installed on other Macs
* This process generally takes less than 5 minutes
* Apple restricts us to building 75 apps per day this way. You might find the service is unavailable for a time if we run out of capacity
  {% endupdate %}

{% update date="2024-05-17" %}

## 3.11.2

**Calculator**

**Bitwise Operators** Support for bitwise operators, including:

* Bitwise AND (&), bitwise OR (|), bitwise XOR (xor)
* Bitwise left shift (<<) and bitwise right shift (>>)

**Permutations & Combinations**

* "10 permutation 3" (= 720)
* "25 combination 3" (= 2,300)

Or, alternatively, use a clearer syntax:

* "3 permutations of 10 (= 720)
* "3 combinations of 25" (= 2,300)

**Financial Functions**

* Added a compound interest function that gets just the interest earned (without the principal), i.e.:
* "interest on $35k after 3 years at 4.5%" (= $4,941)

**Crypto-currencies**

* Support for "Gwei" and "Wei" (sub-dominations of Ethereum)

**iOS**

**Number Pad**

* Added ETH, BNB and SOL as popup options on the BTC button (thanks John)
* You can now quickly convert a currency result on a new line: add a new line (after a line with a currency result), then tap a currency code. This will insert a reference to the previous line, and conversion to the inserted currency.
* Operators & return/delete keys in the number pad are now visible to VoiceOver (thanks Scott)

**Settings**

* Added a setting to control what happens on app launch: either open the previous sheet, or create a new sheet on launch (but only after 5 minutes of inactivity)
* Added a sync troubleshooting section: this includes a button to manually reload your sheetbook file (rarely required, but can be helpful sometimes)
* Minor layout improvements to the sheet settings pane

**Bug Fixes**

* Copying & pasting lines that contain line references now works correctly (thanks Tony)
* Fixed an issue with opening .slvr files from the Files app not working correctly on iPhone (thanks Alexander)

**Calculator**

**Bug Fixes**

* Fixed an issue where certain date interval phrasings could cause a crash
* Fixed an issue with 0.9M being incorrectly formatted by the thousands separator insertion feature (thanks Matteo)
* Fixed an issue with dash separated dates (like 04-05-2020) incorrectly having spaces inserted around the dashes while typing (thanks Dr. Dishant)

**Mac**

**Bug Fixes**

* Made it clearer that the Monospaced System Font option only applies to digits (thanks John)
* Fixed an issue with the delete button in the sheet view not during mouse movement after cancelling a drag (thanks Jasper)
* Fixed an issue with the syntax coloring of variable declarations on subtotal lines in HTML/PDF output (thanks Jason)
  {% endupdate %}

{% update date="2024-04-26" %}

## 3.11.1

**iOS**

**General**

* Added a contextual menu (via a long press) on answer tokens to turn them into plain text, or show the line they reference
* When importing Soulver 2 files (.soulver), the file name is no longer automatically inserted as the sheet heading (#) if the file is named Draft or Untitled
* Soulver longer automatically shows the keyboard on iPhone when switching to another sheet (this behavior matches the Notes app)
* Improved the Soulver launch screen

**Bug Fixes**

* Fixed an issue where some users were not able to get past the launch screen due to iCloud hanging while downloading an existing sheetbook onto your device when requested
* Fixed a crash on iPhone when showing the custom keyboard editor while editing an external sheet (.slvr)
* Fixed an issue where the open sheet URL action was only cosmetically selecting the requested sheet
* Fixed a bug with the "New Sheet" home screen action (on iPad) not working when the app had not yet been launched
  {% endupdate %}

{% update date="2024-04-15" %}

## 3.11

Soulver 3 is now available for iPhone.

**iOS**

**Availability & Pricing**

* Soulver 3 for iOS is available [on the App Store](https://soulver.app/ios/). It's just $14 (or complementary for our [Setapp](https://soulver.app/setapp) users).
* It's still a one time purchase (separate from Mac & iPad versions), and family sharing is included
* This is the first paid update to Soulver on iOS since the original Soulver for iOS in 2009 (which received more than 10 years of updates & support)

**Number Pad**

* We've designed a wonderful number pad make doing calculations on-the-go fast
* Switch between the system keyboard and the number pad with a conveniently located switch at the bottom of the keyboard
* It comes with a number of accessory keyboards across the top that you can choose from for your particular calculations
* The number pad is supported on all iPhones with a rounded display (all iOS 16 supporting iPhones except the iPhone SE)
* You can disable the number pad in the settings if you require

**Additional Options on Keys via Popups**

* Many keys have additional options available on a popup menu. Press down on a key for a second to see additional options
* For example, the "0" key offers "k", "M", and "G" number scalars
* For example the "." key offers headings "# " and comment "// " characters. The ABC keyboard will be selected automatically for you to type your heading or comment.
* Hold down on the delete key and slide your finger left to delete the current line or clear the entire sheet

**Currency Accessory Keyboard**

* Always shows your home currency & the currency of your current location (based on your timezone, not your GPS location)
* This is helpful for quickly converting back to your home currency when travelling.

**Variable Accessory Keyboard**

* Shows any global & local variables in your sheet (this saves you typing out the whole variable name every time you want to reference it).

**Custom Accessory Keyboard**

* Design your own custom accessory keyboard with whatever functions & phrases you find yourself using most commonly

**Sheet Management**

* Compact sheet view mode
* A contextual command to move a sheet into a folder (like the Notes app). Previously only drag-and-drop moving was supported

**Other**

* Check out the [Tips & Tricks](https://documentation.soulver.app/documentation/tips-and-tricks-ios) to learn about some handy hidden features, including a gesture for answer column resizing, quick subtotal creation, and quickly switching between keyboards
  {% endupdate %}

{% update date="2024-04-09" %}

## 3.10.3

Soulver now requires macOS 12 Monterey or higher

**CSS Units**

* CSS units (em, rem & px) will now always be formatted without spaces and using a standard US decimal character (.) so they can be immediately pasted into CSS files

**Volume units**

* Added slightly more accuracy to volume & substance calculations in certain cases
* Rates of liters/meters^2 are now resolved to a unit of meters

**Natural language functions**

* You can now use "@" as a synonym for "at" in natural language phrases, like in compound interest "$5k after 3 years @ 7.5%" (= ($6,211))

**Conditionals**

* Support for "if x then…" in addition to if x == true then…", where x is a boolean
* Fixed a bug where natural language functions were not working in the "then" position in conditionals (thanks Ian)

**Timezones**

* Added timezones for French territories: Mauritius, French Guiana, Martinique, La Réunion, & Guadeloupe

**Functions**

* Support for specifying the value of a unit using a function, like "sin(30) radians", or "abs(-40) meters"

**Line references**

* Support for adding a SI scalar to a line reference, for example "\[123]k EUR", where \[123] is a token reference to a previous line

**Specifiers**

* Support for "dec" as a shorthand for "decimal", like "0x123 to dec" (thanks Nasco)

**Calendar calculations**

* The "days left in 2024" function now returns a whole number of days (rather than fractional)
* Support for converting timespans into "months and days"

**Localizations**

* Diacritics are now ignored in unit and function names in the Spanish localization (use either "días" or "dias" for example) (thanks Carlos)

**Bug fixes**

* Fixed an issue where the log() function was not working with hex and binary numbers (thanks Emile)
* Fixed a very obscure bug where Soulver could use excessive CPU in the background when a list of fractions similar to dates was present in a heading comment in a US locale (thanks Jon)
* Fixed a hang when performing lcm with a list of numbers that included 0 (thanks Daniel)
* Fixed a bug where a line reference could lose its referent when deleting multiple lines above its referent's line
* "tonne" now maps to metric ton, rather than short tons.
  {% endupdate %}

{% update date="2024-03-10" %}

## 3.10.2

* Fixed a few bugs that popped up in 3.10.1 (thanks Andre, Rob & Guillermo for the speedy reports)
  {% endupdate %}

{% update date="2024-03-08" %}

## 3.10.1

**Pounds & Ounces**

* Added support for "pounds & ounces" as a composite result format. This will be the new default for expressions using pounds (lb), such as "13.5 lb" (= 13 lb 8 oz)
* Pounds & ounces conversions can manually be done using the converter "in pounds & ounces" or "in lb oz"
* You can still use "in lb/pounds" to express the result as decimal pounds.

**Date & Time Zone Calculations**

* Added support for interval calculations involving years and formats like "1953 − today"
* Added support for dates in the format "13 March 23" (Year assumed to be 23 here)
* Added support for time zone calculations in the "time in Copenhagen 3 hours (from now/ago)" format

**Timespans**

* Support for double unit timespans like "in minutes and seconds", "in hours and minutes" and so on
* Soulver uses timespans more frequently in operations on single quantities of time. For example, "25 min / 12" = (2 min 5 seconds), "1h20m + 45m" = (2 hours 5 mins)
* When "as timespan" is explicitly specified for the result of a date interval calculation, fixed time units are used, not variable ones
* Added "time span" as an alternate expression for "timespan"

**Number Formatting**

* Numbers in SI notation will now conform to your decimal point settings. Formerly, they were formatted to 3 dp regardless
* Added support for SI symbols (k, M, G) to line references
* Crypto currencies will no longer round to two decimal places by default.

**Lists**

* Added support for expressions inside parentheses in lists like "max (100 \* 2) 50 100" (= 200)

**Bug Fixes**

* Fixed an issue with single letters not acting as custom prefix currency symbols, such as R100 for South African Rand (thanks to Hein)
* Fixed an issue where custom currency symbols were not applied without a further application restart after changing your number format
* Fixed an issue where a single currency symbol in parentheses was interpreted as a comment, such as ($100) (thanks to Andre)
* Fixed an issue where a short month name in parentheses could cause a comment not to be correctly recognised (thanks to Markus & Nigameash).
* Fixed a problem with raising volume units to the power of a third (thanks to Daniel)
* If multiple variables shared the same name, only one was included in the quick total. This issue has now been fixed (thanks TJ)
* Fixed an issue with "February 29" without a year component not being recognized as a valid date (😪, thanks Patrick)
* Fixed an issue with defining the decimal point of several lines with variable dependencies
* Fixed an issue related to a peculiar symbol that could cause the application to crash when pasted (thanks to Jason)
* Fixed an issue that caused a crash when executing `sinh(10000)`
  {% endupdate %}

{% update date="2024-01-16" %}

## 3.10

**List operation improvements**

Support for "min", "max", "gcd" and "lcm" on lists of numbers.

For example:

* "min 5, 3, 7" (= 3)
* "max 50, 20, 10" (= 50)
* "gcd 10, 20, 5" (= 5)
* "lcm of 210, 40, 8" (= 840)

**Time ago/from now in location**

* New "time ago/from now in location" phrase

For example:

* "3 hours ago in London"
* "30 min from now in Sydney"

**iPad**

This update includes a number of improvements to the iPad version, including:

**Advanced Weather & AI Assistant**

* Support for subscribing to the "AI Assistant, Live Stocks & Weather" subscription

**Menu Bar Improvements**

* New sheet button has a contextual menu to create a sheet starting with a heading, or duplicate the existing sheet
* Dedicated import sheets button

**Automatic Variable Renaming**

* When you edit a variable name, lines referencing the previous name will be automatically updated to use the new name
* This feature must be enabled in Soulver's `Editing` settings

**Variable Value Peeking**

* Select a variable in the text area to see its value in the text menu

**Contextual Actions**

* Added contextual actions on answers (to quickly copy results)
* On total (so you can quickly hide it, or switch to average)

**Easier Subtotal Creation**

* A blank cell will always be added below your last line. Long press on it and choose "Make Subtotal" to quickly sum up the previous lines

**Fonts & Font Size**

* Added support for custom fonts on your device
* Added a mode to use the (adaptive) system font size, rather than an explicit font size

**Fill Screen with Answer**

* Long press on an answer and choose "Fill Screen" to fill your display with the answer

**Bug Fixes**

* Fixed an issue with Chinese pinyin and other "multi-stage" input methods not working correctly

**Services**

New data services available, including an AI Assistant (powered by GPT-4) & advanced weather metrics (from  Weather)

Providing these services generates ongoing costs for us. We offer them as an optional subscription service to keep Soulver itself a one-time purchase.

**Inline AI Assistant (powered by GPT-4)**

* Query the AI assistant inline using " = ?"
* For instance, "distance to the moon = ?". After a short delay, the question mark will be replaced by the answer

**Advanced Weather Metrics (from  Weather)**

* 20 additional metrics for weather queries, including humidity, pressure, visibility, UV index, snow & rainfall, wind and more
* See the entire list in the [documentation](https://github.com/zcohan/SoulverGitbookDocs/blob/main/url/README.md)

**Availability**

* These services are available in the [App Store](https://apps.apple.com/us/app/soulver-3/id1508732804?ls=1) versions (Mac & iPad) as an optional subscription. They are complementary for our [Setapp](https://soulver.app/setapp) users.
* Subscribers also get access to **live & historical stock data** (150,000+ stock tickers across 70 exchanges worldwide). "Soulver Stocks" subscribers are automatically migrated to the new subscription at no additional cost until next renewal.
  {% endupdate %}

{% update date="2023-10-30" %}

## 3.9.2

**Assertions**

* Added an assert() function that you can use to verify an expected variable condition is true
* For example, assert(expenses < $400), if you expect expenses to always be less than $400
* The answer column will show red exclamation marks & the variable value to bring your attention to a line with a failing assertion

**Scientific Notation**

* Explicitly format answers in scientific notation using "in scientific notation" or "in sci": i.e "10500 in sci" (= 1.05e4)

**Bug fixes**

* Fixed a bug that could sometimes cause a crash on launch
* Fixed a bug with certain expressions involving a currency conversion followed by a division not working correctly (thanks Anton)
* Fixed a bug where clock times that use dot instead of colon could fail to work correctly in interval calculations (thanks Raphael)
* Fixed a bug that could produce unwanted duplicate lines in a duplicated document (thanks Felipe)
* Fixed an issue with laptimes not summing with unit expressions of time in subtotals (thanks Jasper)
* Multiplying incompatible units now produces an error (thanks Oliver)
* Fixed an issue with the "fraction of x" phrase inside a variable declaration (thanks Max)
* Improved QuickSoulver behaviour across multiple displays (thanks Stefan)
* Numbers with ordinal prefixes (1st, 2nd, 3rd, 4th, etc) are now ignored as comments, and won't affect results (thanks Frank)
* Logical operators (&& and ||) now have lower precedence than addition and subtraction operators (previously they had the same precedence)
  {% endupdate %}

{% update date="2023-09-29" %}

## 3.9.1

* Restored compatibility with macOS 11 Big Sur by removing reliance on an incompatible 3rd party library
* Reduced the size of the Soulver application by almost 40%

**Bug fixes**

* Fixed an issue where a comment consisting of multiple words in parentheses was interfering with previously typed math expressions (thanks Ted)
* Addressed an issue where expressions and answers could be misaligned on launch
  {% endupdate %}

{% update date="2023-09-13" %}

## 3.9

**Platforms**

* Support for macOS 14 Sonoma & iPadOS 17

**Automatic Conversions in QuickSoulver**

* Common unit conversions are automatically performed for you for single unit expressions
* For example, "500 s" (= 8 minutes 20 seconds), "21 miles" (= 33.8 km), "31 C (= 87.8 F)", etc
* Hex & binary numbers are automatically converted to decimal
* Foreign currencies are automatically converted into your Mac's local currency

**Editor**

* The editor can now automatically convert numbers with foreign number formats into your preferred number format when pasting
* New preference to replace the backtick (\`) with the plus operator (+). If you rarely use backtick, you'll find this a much more convenient key to use for +.
* When hovering over a reference to a line that declares a variable, hold shift to show a popup with the variable's name

**Currency Conversions**

* You can now specify an explicit rate you'd like used for a particular currency conversion:
* Example: "50 EUR in USD at 1.05 USD/EUR"
* Or use the shorter version: "50 EUR in USD @ 1.05 USD"

**Time & Date Calculations**

* Add up clock times in subtotals (i.e 04:30, 19:29). Without a seconds component, these are interpreted as hours and minutes.
* Numbers that look like recent years are now ignored when typed in brackets after a currency, like "$550.00 (2022)"
* Do time zones conversions with the states/territories of the US, Canada, UK & Australia. Both the full names of states/territories and abbreviations are supported.
* Support for "time since date", "time to date" phrases

**Financial Functions**

* Added a quarterly variant to the compound interest function: "$1,000 for 3 years at 7% compounded quarterly" (= "$1,231.44)

**Trigonometry**

* Added "sind()" and "cosd()" functions that take a value in degrees (or alternatively "sin(45 degrees)", "cos(60º)")

**Mac**

**Bug Fixes**

* Fixed an issue where QuickSoulver would stop showing on the active space when summoned (thanks Mick & Kacper!)
* Fixed a bug where the scroll position was not being remembered when switching between sheets (thanks Ravi!)
* Fixed an issue where you could not perform weather queries in English, when using a non-English system localization (thanks Yimin!)
* Fixed a bug with the empty trash alert when suppressed (thanks Bruno!)
* Fixed an issue with local variable refactoring where your preferred mode was not being remembered after dismissing the dialog (thanks Sasha & Philip)!
* Fixed an issue where the x quick operator was not working correctly
* Fixed a bug where the editor would lose its text selection after a currency rate update
* Fixed an issue where the sidebar would not scroll to the active sheet on launch

**iPad**

**Bug Fixes**

* Fixed a bug where opening a sheetbook file selected manually from Files was not working
* Fixed an issue with the automatic parenthesis insertion feature and selected text not working correctly in certain cases
* Fixed an issue with typing using the Chinese pinyin keyboard
* Fixed an issue where the title of a renamed folder did not immediately update
* Fixed a rare crash that could occur when opening a folder
* The `Calculate with Soulver` shortcut action will now show its result in a dialog when invoked from Spotlight

**Calculator**

**Bug Fixes**

* Fixed an issue with variable definitions not being recognised when a variable name ended with an underscore followed by a unit symbol (thanks Chris & Peter!)
* Fixed an issue with incorrect units being shown in rate multiplications used in fuel milage calculations (thanks Silvo & Dan!)
  {% endupdate %}

{% update date="2023-04-07" %}

## 3.8.2

* Added French & Spanish localizations
  {% endupdate %}

{% update date="2023-03-31" %}

## 3.8.1

**Soulver 3 is now available for iPad on the** [**App Store**](https://apps.apple.com/us/app/soulver-3/id1508732804?ls=1)**.**
{% endupdate %}

{% update date="2023-03-21" %}

## 3.8

**Live Weather**

* Get real-time weather data for most locations on Earth (thanks to  Weather on macOS Ventura)
* Simply type "weather in (city or airport code)" for the current temperature and weather conditions. Lines with weather queries will live-update during the day
* You can also query for "temperature/temp", "feels like/apparent temperature", "high" and "low"
* Weather queries depend on place names already recognized by Soulver (this includes most large cities around the world)
* You can add additional places for weather queries in the Calculator > Additional Places settings

**Sheets & Sync**

* New "Keep on Top" option under the Window menu for sheets
* Soulver matches the behavior of the Notes app where you can go Window > Open Sheet in New Window and then Window > Keep on Top to make a particular sheet (or Soulver file) always float above other windows on your Mac
* New option to automatically resolve sync conflicts by selecting the most recently edited version of a sheet

**Date & Time Calculations**

* Support for lowercase timezone abbreviations (gmt, aest, pst, etc)
* A couple of new date calculation functions: "days until April", "days left in March"
* Dates formatted in ISO8601 are now recognized in expressions
* "Sept" can now be used to refer to September (in addition to "Sep")
* "SIN" can be used to refer to Singapore now (in the past this conflicted with the sin() trigonometry function)

**Misc**

* Added a menu item under the Help menu to reset suppressed warnings
* You can now suppress the dialog offering to automatically rename variables for you after changing a variable's name

**Bug fixes**

* Fixed an issue with auto-complete and variables beginning with "total" (thanks Bill!)
* Fixed a bug with an incorrectly identified comment in a variable declaration (thanks Russ!)
* Fixed an issue with the next/last/this weekday function returning inaccurate answers in some cases
* Fixed an issue where automatic variable renaming was triggering unnecessarily when clicking away from a variable declaration line
* Fixed a crash that could occur for some users on macOS Ventura 13.1+ after variable renaming
  {% endupdate %}

{% update date="2023-01-11" %}

## 3.7.1

**Specifier Shorthands**

* Added some short form specifiers for quicker conversions:
* Use "num" for number ("35% as num" = 0.35)
* Use "bin" for binary ("123 as bin" = 0b1111011)
* Use "iso" for the iso8603 date format ("today as iso" = 2022-11-24T12:00:00+03:00)

**Wolfram|Alpha**

* Your Mac's preferred unit system is now respected in Wolfram|Alpha queries
* Your preferred number format is now respected in Wolfram|Alpha queries
* Wolfram|Alpha queries may now be performed in QuickSoulver
* It can take a few minutes for newly created Wolfram|Alpha AppIDs to be activated. This is now better communicated in Soulver's settings

**Misc**

* Multi-word variables are now automatically formatted with non-breaking spaces
* Alfred workflow has been updated and now works with Soulver installed in non-standard locations
* Some minor bug fixes & various general improvements to the calculation engine
  {% endupdate %}

{% update date="2022-10-24" %}

## 3.7

Soulver 3 is optimized for macOS 13 Ventura and now requires **macOS Big Sur** or later

**System integration**

* New "Calculate with Soulver" action for Shortcuts (macOS 13+)
* Improved Quick Look previews of Soulver files (macOS 12+)
* Alfred workflow updated for Alfred 5

**Wolfram|Alpha integration**

* Query Wolfram|Alpha directly from Soulver
* Type a query followed by "= ?", like "distance to the moon = ?"
* If Wolfram|Alpha knows the answer to your query, the "?" will be replaced with the answer
* This feature requires some setup in the Settings > Calculator > Wolfram|Alpha pane

**General Improvements**

* New help popover
* Design improvements to the Settings
* Minor bug fixes
  {% endupdate %}

{% update date="2022-09-24" %}

## 3.6.2

**Underscore as Number Separator**

* You may now include underscores inside numbers, such as "1\_000\_000"
* And in separating binary and hex numbers: "0xCAFE\_F00D", "0b\_1100\_0001"

**Bug Fixes**

* Fixed a bug with sub-total selections introduced in 3.6.1
  {% endupdate %}

{% update date="2022-09-17" %}

## 3.6.1

**Editor**

* More easily "comment out" numbers by selecting text and pressing the quotation marks (") key. This will wrap the text in quotation marks the calculator will ignore it.
* Email addresses are now recognized (in addition to web URLs)

**Quick Total**

* The quick total now compresses to the right of the answer column during scrolling: this reduces overlap with other answers
* Median is supported as a quick statistic

**Statistics of Lists**

* Perform statistical operations on lists of lines, like "total of 3, 4, 5 7 and 9" = (28), or "average of 12, 30 and 90" (=44)
* Supported statistics include sum/total, average/mean, count, and median

**Units & Conversions**

* Feet and inches can now be specified using ' and ". For example: 3' 4" + 9' 2" = 12 feet 6 inches
* Added decimetres unit (dm)
* Added microgram unit (mcg)

**Rounding to Nearest x**

* Added "to nearest (x)" rounding function. Examples:
* "37 to nearest 10" (= 40)
* $490 rounded to nearest hundred (= "$500")
* 2,100 to nearest thousand (= 2,000)

**Multiples**

* Added additional functions for "multiple on" and "multiple off" (in addition to "multiple of"):
* 100 is what multiple of 50 (= 2x)
* 50 is what multiple off 100 (= 0.5x)
* 100 is what multiple on 50 (= 1x)

**Conditionals**

* Added an additional conditional syntax with a variable declaration: "profitable = true if income > expenses"
* "Unless" is now supported in conditionals: "profitable = true unless expenses > income"
* Support for "and" (&&) and "or" (||): "Overweight = BMI >= 25 and BMI < 30"

**Bug Fixes**

* Fixed an issue where Soulver could sometimes automatically disconnect from iCloud (thanks Sebastian)
* Fixed an issue with unexpected behaviour when typing Korean characters (thanks Daeok)
* Fixed an issue with doing business day calculations in parenthesis (thanks Tom)

**Misc**

* Percentage + number now gives a percentage (rather than a number): 50% + 0.5 = 100%
* SI symbols for large & small numbers (other than k, M, G and T) are no longer supported (as they were causing confusion)
* Soulver 3 now requires macOS 10.15 (Catalina) or later
  {% endupdate %}

{% update date="2022-08-04" %}

## 3.6

**iCloud Sync**

* iCloud is now the default location for sheetbooks in new installations of Soulver
* Global variables, custom units & additional places also sync via iCloud to other Macs
* Move an existing sheetbook into iCloud using the General preference pane
* If an existing sheetbook is already stored in iCloud, you will be offered the option of merging the sheetbook from your Mac with it

**Bug Fixes**

* Fixed an issue where variable value peeking was not working with global variables
* Fixed an issue with inaccurate rates in global variables defined in currencies other than USD (thanks Johanna)
* Fixed an issue where numbers with the form "09:05:03 P.M." were being recognised as laptimes rather than timestamps
* Fixed an issue that caused a crash in some rare cases
  {% endupdate %}

{% update date="2022-07-06" %}

## 3.5.9

* Support for date ranges in the form "March 12-15"
* Added an additional percentage function: "what percentage change is 10 to 15" (= 50%)
* Added a "divided by" function: "20 divided by 5" (= 4)
* Support for the use of "oz" as a synonym for "fluid oz" (rather than only mass) and for "pounds" as a unit of either mass or currency
* The XPF currency is now pegged to 119.332 EUR (thanks Ali!)
  {% endupdate %}

{% update date="2022-03-17" %}

## 3.5.6

**Dates & Times**

* Do calculations with a particular weekday next week/last week/this week: "Tuesday next week + 72 hours", "Friday last week 3pm + 4 days"
* Do calculations involving time with format "1:34 hour" (1 hour 34 min), "2:35 min" (2 min 35 seconds)

**Units & Conversions**

* You can now use "in" to refer to inches in conversions: "30 in to feet" (= 2.5 feet)
* Convert frequency to time, and vice versa: "20 Hz in s" = (0.05s), 40s to Hz (= 0.025 Hz)
* Added the microliter unit (µL)

**Currencies**

* Added the Tether cryptocurrency (USDT)
  {% endupdate %}

{% update date="2022-02-21" %}

## 3.5.5

**Timecode Calculations**

* Added support for timecodes, often used in video editing
* Timecodes have the format hh:mm:ss:frames followed by an "at" or "@" and the desired frame rate, i.e: "01:10:12:22 @ 30 fps"
* Get the number of frames from a timecode: "00:30:25:10 @ 30 fps to frames" (= 54,760 frames)
* Add/subtract frames: "00:03:01:00 @ 24 fps + 500 frames" (= 00:03:21:20)
* Add/subtract units of time: "3h 2m 25s 10 frames at 24 fps + 1 hour 12 minutes" (= 04:14:25:10)
* A default frame rate (24 fps) will be used if no frame rate is specified. You can override this default with a global variable. Set a global variable called "frame rate", and set to a fps value

**Units & Conversions**

* Added frame and frames per second (fps) units:
* "30 fps × 3 minutes" = (5,400 frames)
* "12k frames / 24 fps" = (500 s)
* Added a phrase to get the quantity of one unit in another:
* "seconds in a day" (= 86,400 s),
* "inches in a mile" (= 63,360 inches)
* Bahraini dinars (BHD) now round to 3 decimal places

**Rates**

* You can now convert a ratio of time into a simplified rate: "3 hours / 4 days to hours / day" (= 0.75 hours/days)
* Added another phrase for multiplying a rate by a quantity of time: "$24 a day for a year" (= $8,765.82)

**Time & Date Calculations**

* Added a phrase for getting the day of the week on a particular date: "day of the week on Jan 24, 1984" (= Tuesday)
* Second and millisecond components are now supported on datestamps: "March 12, 09:30:35.534"
* Laptimes now support an optional millisecond component after a decimal point: 01:04:35.534

**Timezones**

* GMT ± offsets are now supported in timezone expressions: "now in GMT-7", "3pm GMT+8 to Paris"
* Added a "date in timezone" function: "date in Germany", "date in Honolulu"

**Change between two numbers**

* Added additional phrases for calculating a change between numbers, for instance:
* "500 to 3000" (= 2,500)
* "40 to 60 as %" (= 50%)
* "20 to 40 as x" (= 2x)

**Other improvements**

* Added additional phrases for getting the exponent given an original and final number:
* "27 is 3 to what power" (= 3),
* "49 is 7 to the what" (= 2).
* Inverse trigonometry functions (asin, acos, atan) now return numbers with units rather than plain decimals: radians by default, or degrees (if the input is in degrees)

**Bug fixes**

* Fixed an issue with annoying alert sounds when typing Korean characters (thanks Yeontae)
* Fixed an issue with public holidays not working correctly in certain US jurisdictions (thanks Joe)
* Fixed an issue where text only lines were not being included in a multi-line copy expressions & answers (thanks Markus)
* Fixed a QuickSoulver answer truncating issue when system scrollbars are set to always visible (thanks Michal)
* Average & count (when selected) are now shown in exported/printed sheets (thanks Markus)
* A couple of misc bug fixes related to unit cancellation, and whitespace interpretation around operators (thanks Jasper & Daniel)
  {% endupdate %}

{% update date="2021-12-29" %}

## 3.5.4

**Cryptocurrencies**

* Added 6 additional popular cryptocurrencies: Solana (SOL), Avalanche (AVAX), Terra (LUNA), Polkadot (DOT), Polygon (MATIC) and Shiba Inu (SHIB)

**Services**

* Soulver's "Calculate Anywhere" services can process multiple lines of text
* The "Calculate & Copy/Replace" services can now sum a list of numbers

**Localizations**

* Improved Simplified Chinese localization (thanks Pluwen)

**Bug fixes**

* Public holidays are now taken into account when doing workday calculations from Alfred or the CLI (thanks Arthur)
* Fixed a bug where workday calculations involving variables would not take public holidays into account (thanks Cameron)
* Fixed a bug where certain numbers could be incorrectly parsed in locales using space as the thousands separator (thanks Juha)
* Fixed a regression in the last update where scroll position was not being remembered when switching between sheets (thanks Daniel)
* A few other misc. bug fixes and improvements
  {% endupdate %}

{% update date="2021-09-21" %}

## 3.5.1

* Fixed a few minor bugs introduced in version 3.5 (thanks Jasper, Trey, Tom, Bob, Alik & Imthath)
  {% endupdate %}

{% update date="2021-09-13" %}

## 3.5

This is a major update that includes 20+ new features and improvements, and a new icon for Big Sur.

**Live & Historical Stock Prices**

* Use live stock tickers in calculations: "10 AAPL", "TSLA × 30"
* Do historical stock price queries: "10 AAPL on January 9, 2007"
* You can also do historical queries for the actual (non-adjusted) closing price, and trading volume: "FB close on September 3, 2015", "AMZN volume on March 24, 2009"
* Prices are included for 8 popular tech companies: Apple (AAPL), Facebook (FB), Alphabet (GOOGL), Amazon (AMZN), Microsoft (MSFT), Netflix (NFLX), AirBnB (ABNB), and Tesla (TSLA)
* (App Store only) Subscribe to Soulver Stocks for access to 150k+ stock tickers across 70+ exchanges. Future iPhone & iPad versions of Soulver will also support this service

**Historical Currency Conversions**

* Support for historical currency conversions: "1 BTC in USD on March 8, 2019", "30 EUR to USD one year ago"
* Historical currency rates are available for all real-world currencies, back to 1999
* Rates are also available for Bitcoin (back to 2013)

**Text Editor**

* Align lines left, center, or right using the Format menu
* Additional font sizes, now up to a maximum of 72pt
* Scroll position is now retained when switching between sheets
* System dictation is now supported in the main text editor (thanks Keith!)

**Sheets & Sheetbooks**

* You can now open a sheetbook file (either from the Open dialog, or from Finder). Only one sheetbook can be edited at a time
* New, leaner sheetbook file format
* Sheetbooks created with previous versions of Soulver 3 will be automatically upgraded to the new format and will not be readable by previous versions of Soulver 3

**Exporting/Printing**

* Option to hide comments (//) & heading indicators (#) from exported/printed sheets
* Exported/printed sheets now respect heading & label colors
* Numerous styling improvements to exported/printed sheets

**Preferences**

* The "Tweak Engine" sheet been unified into the preferences in a "Calculator" preferences pane
* Added a new preference to choose what happens when ⌘N is typed: create a new sheet in the sheetbook (optionally in a new window), or a new file in Finder
* Improved Header styling window

**Cooking Calculations / Density Conversions**

* Volume to mass conversions for 200+ substances: "250 grams butter in cups", "10 liters olive oil in kg"
* Density of substance function: "density of white wine", "density of egg yolk"

**Hexadecimal & Binary**

* Convert between decimal, hex or hexadecimal (0x) and binary (0b): "35 in binary", "119 to hex", "0b01010 to decimal", "0xF34 to binary"

**Other Calculator Improvements**

* Public holidays in your country are taken into account when doing business/working day calculations
* Support for combined phrasal functions: "half of half of 30% of 90"
* Support for number words: "five minus three", "five hundred thirty three + two hundred and twelve", "1.4 million", etc
* Square root and cube root phrase functions: "square root of 9", "cube root of 27"
* Logarithm function with any base: "log 50 base 4"
* Added the option to use monthly rather than annual compounding for compound interest: "30k for 5 years at 4.5% compounding monthly"
* Scientific notation (rather than SI notation) is now used for numbers larger than a trillion, and smaller than a nano
* Scientific notation now works with numbers that contain decimal points: "3e5.5"
* Other misc. improvements
  {% endupdate %}

{% update date="2021-05-23" %}

## 3.4.18

**Bug Fixes**

* Fixed an issue where Soulver could unexpectedly quit during use (thanks to everyone who reported this)
* Fixed an issue with time stamps in the format 3m55s were not being recognised without an additional space (thanks Terry!)
* Fixed an issue where the incorrect sheet could be exported when using the File > Export to... menu command (thanks Cory!)
* Fixed a rare issue with rate multiplications, where an answer might not include a unit (thanks Tom!)
  {% endupdate %}

{% update date="2021-04-26" %}

## 3.4.17

**Calculator Improvements**

* Support for year range calculations: "1978 to 2021" (= 43 years)
* Support for conversions without a number to see the unit rate equivalence: "BTC to USD" (thanks Imthath!)
* Support for laptime-by-laptime division: "01:10:00 / 00:05:00" (= 14) (thanks Brad!)
* Support for implicit multiplication between a number and a function: "2sin(π/6)" (thanks Jasper!)

**Export Improvements**

* Variable declaration lines don't get an unnecessary answer appended when exported into plain text (thanks Marco!)
* Support for "Copy Lines & Answer as Image" in QuickSoulver (thanks Jasper!)

**Bug Fixes**

* Fixed an issue where line references could detokenize when they form an ambiguously formatted date (thanks Craig!)
* Fixed an issue where the HTML emailer would not quit after sending the email on Big Sur (thanks Yashodhan!)
* Fixed an issue where the HTML emailer would not send any lines present after an '&' character (thanks Yashodhan!)
* Fixed an issue where laptime by zero division could lead to a crash (thanks Brad!)
* Fixed an issue where rates did not respond to rounding to a specific decimal place (thanks Jasper!)
* Fixed an issue with variables that included a number followed by an underscore not being recognized correctly (thanks Baglan!)
* Fixed an issue with implicit multiplication inside function expressions (thanks Cool Jay!)
* Fixed an issue with labels with spaces in PDF/HTML export (thanks Burhan!)
* Fixed an issue where pressing ⌘N in external documents would not make a new sheet
  {% endupdate %}

{% update date="2021-03-18" %}

## 3.4.16

**Currencies**

* Added the Satoshi currency (one hundred millionth of a Bitcoin)
* Add custom units of currency defined in terms of any currency (not just USD)
* Do calculations with cents, euro cents, and (British) pence

**Bug fixes**

* Fixed an issue with certain calculations of inches not displaying the negative sign where required (thanks Matt!)
* Fixed an issue where some numbers were being incorrectly interpreted as dates in calculations with certain comments (thanks Chris, and Matthew!)
* Fixed a performance issue with long strings of repeating characters that could represent a unit (thanks Imthath!)
* Fixed an issue where a number might not have thousands separators inserted correctly following a line reference and a minus symbol (thanks Ravi!)
* Fixed an issue where the QuickSoulver global keystroke field was not visible to VoiceOver (thanks Scott!)
  {% endupdate %}

{% update date="2021-02-23" %}

## 3.4.15

**Dates, Times & Time Zones**

* You can now use 3-letter airport codes to do time zone calculations: '9am SFO to JFK', 'time at LHR'
* Support for military times: '1945h'
* Support for midday, noon & midnight as time aliases
* Dates that look like math/numbers are now supported in some cases: 'days until 9/12', '10.09 + 3 weeks'
* In an expression like '2021 - 33 years', 2021 will now be recognised as a year, rather than a regular number. The result will also be a year (and will not have thousands separators inserted).
* Get the midpoint between two dates: 'midpoint between March 12 and April 5', 'halfway between today and next Thursday'
* ISO8601 dates are now supported (provided they don't include spaces): '2020-01-19'
* Simplified Chinese AM/PM characters are now supported

**Bug Fixes**

* Hertz (and related units of frequency) now behave as rates in multiplications (thanks Erik!)
* Fixed a possible crash after local variable refactoring (thanks Jasper!)
* Fixed an issue with undoing a multiple selection edit (thanks Jasper!)
* Fixed an issue with recognising a.m./p.m. with dots, as used in the Irish region (thanks Michael!)
* Fixed an issue with certain rate divisions (thanks Tom!)
* Other minor fixes and improvements
  {% endupdate %}

{% update date="2021-01-16" %}

## 3.4.14

**General Improvements**

* Optimized for macOS 11 Big Sur & the new M1 Apple Silicon Macs
* You can now move sheets to other folders using "Move to…" in the Sheet menu, or the contextual menu on a sheet
* You can now specify a syntax color for labels
* 20% improvement in calculation performance

**Dates & Times**

* Improved the behaviour of the "time unit until date" phrase when the time on the date is not specified:
* Expressions with small units of time (like hours, minutes & seconds) will count up to the start of the requested date (like hours until tomorrow will count the number of hours until midnight tonight)
* Expressions with larger units of time (like days, months, weeks, years) will count up to the same time on the requested date (so days until tomorrow = 1 day).
* Support for clock times without a colon when followed by a timezone: "1900 PST to UTC"
* Added a phrase for getting the ISO 8601 week number on a certain date: "week number on March 12", "week number today"
* You can now use fractional years in interest calculation functions

**Fractions, Percentages Multiples**

* Fractions can now be used in all percentage word functions: "2/3 of 500", "50 is 1/5 of what", etc.
* "Per cent" can now be used as an alternative to the % symbol ("percent" and "percentage" are also supported)
* Added phrases for getting the multiple increase between numbers: "50 as x of 5" (= 10x), "2.5 as multiplier of 1" (= 2.5x)
* Added an additional percentage phrase for a % change between two numbers: "50 to 75 is what %" (= 50%)

**Text Editor Improvements**

* Improved copy/paste behaviour
* Improved undo/redo behaviour
* Improved variable auto-complete (press the escape key)
* Added a command to duplicate lines (⌘D)
* When starting a line with a comment (//), if a line reference was automatically inserted from the previous line, it will be deleted
* Deleting numbers with thousands separators now removes all superfluous separators when auto-thousands separators is enabled
* Scrubbing is now available in the contextual menu on a number
* Hover over a variable to see its value in a popup

**Bug Fixes**

* Fixed an issue with applying a currency symbol to an expression in parenthesis (thanks Jasper!)
* Fixed an issue with multi-word variables and capitalised single word variables and dependent lines (thanks Sascha!)
* Fixed a crash (thanks Max!)
* Fixed a couple of sheet management bugs
  {% endupdate %}

{% update date="2020-11-10" %}

## 3.4.10

**General improvements**

* Added two new operator aliases: \*\* (meaning to the power of ^), and % as the remainder of a division (modulo)
* Added a phrase for getting a particular weekday in the future ("Monday in 3 weeks")
* Added the ability to convert between number/time and hertz, and number/hertz and time
* You can now have labels without a trailing space, provided they don't end with a number
* Added a Sheetbook backups window that you can use to restore to a previous sheetbook, or manually make a backup
* Slightly improved the performance of the main editor

**Unit Conversions**

* Added a metric measurement system preference (for fluid units, like cup and teaspoon)
* Improved the accuracy of US customary fluid units.

**Other Improvements**

* Pressing return after selecting an answer inserts a new line below
* Minor bug fixes
  {% endupdate %}

{% update date="2020-10-15" %}

## 3.4.9

* Added "working days" and "business days" as synonyms for workdays
* Added an nth root function: "5 root of 2" (= 1.148698355)
* Improved German localization
* Minor bug fixes
  {% endupdate %}

{% update date="2020-09-25" %}

## 3.4.8

**Minor improvements**

* Added a "Copy Unformatted Answer" menu item to copy an answer to the clipboard without units or other formatting (like thousands separators)
* Added support for fractional seconds in timespans
* Added "payment" as a synonym for "repayment" in mortgage functions
* Minor bug fixes
  {% endupdate %}

{% update date="2020-08-25" %}

## 3.4.7

**Dates & calendar calculations**

* Use next/last phases: 'days until next year', 'hours till next week'
* Do calculations with month names omitting the day: 'June to September' (= 3 months), 'March 2013 + 3 months' (= June 2013)
* Find a quantity of a time in a given month or year: 'days in Feb, 2020' (= 29 days), 'workdays in Feb, 2020' (= 20 days), 'hours in June' (= 720 hours), 'days in 2020' (= 366 days)
* Support for financial quarters (Q1, Q2, etc): 'days in Q3', 'days until Q4', 'workdays in Q1, 2020'
* Do calculations with dates back to 50 AD, to up to 5000 AD (some people do need this!)
* Minor bug fixes
  {% endupdate %}

{% update date="2020-04-30" %}

## 3.4.0

**Financial functions**

* 10 new functions for doing common financial calculations, for example:
* Compound interest: "$5,000 after 10 years at 5%" (= $8,144.47)
* Monthly/annual/total mortgage payments: "monthly repayment on $10,000 for 6 years at 6%" (= $165.73)
* Monthly/annual/total interest: "monthly interest on $10,000 for 6 years at 6%" (= $26.84)
* Return on investment: "$500 invested $1,500 returned" (= 2x)
* Annual return on investment: "annual return on $1,000 invested $2,500 returned after 7 years" (= 13.99%)
* Present value of money: "present value of $1,000 after 20 years at 10%" (= $148.64)

**Sheets & Search**

* Quickly open sheets or folders via a Spotlight search from within Soulver using "Open Quickly" (Command-Shift-O)
* Added keystrokes to switch to the next/previous sheet in the sidebar

**Totals**

* Lines that form parts of a calculation on a subsequent line are now excluded from the quick total (i.e variable declarations, and lines referenced by line references)
* Added "count" as another quick statistic option (accessible by control-clicking on the quick total)

**Accessibility**

* If VoiceOver is enabled, it will now be read out the answer automatically after you stop typing
* Control the delay or disable this feature from the Accessibility window (under Soulver > Integrations > Accessibility)
  {% endupdate %}

{% update date="2020-04-10" %}

## 3.3.1

**Time zones**

* You can now use country names in time zone conversions (like "10am France to Japan", "time in New Zealand")
* For countries that span multiple time zones, the time zone of the country's capital city will be used

**Bug fixes**

* This update fixes some miscellaneous bugs introduced in 3.3
  {% endupdate %}

{% update date="2020-04-06" %}

## 3.3.0

Soulver has become even more useful in this release, with the addition of time zone conversions (by city or code), laptime support (HH:MM:SS), random number generation & if statements. This update also introduces "QuickSoulver" for doing quick calculations in Soulver, or anywhere in the system (via the menu bar, or global hotkey).

**QuickSoulver**

* Perform "throwaway" calculations in a Spotlight-like interface
* QuickSoulver floats above other windows, so you can use it from anywhere in macOS
* Access QuickSoulver from the menu bar (enable this in the QuickSoulver preference pane)
* Global hotkey (set the hotkey in the QuickSoulver preference pane)

Keystrokes:

* ⌘C (with no selection) copies the current line's answer & dismisses
* ⌘S saves as a new sheet

**Time zone conversions**

* Convert times between time zones using city names or standard 3 or 4 letter codes (e.g "6pm Sydney to Chicago", "2am PST to GMT")
* Added functions for getting the current time in a time zone: "Time in AEST", "PDT time", "Paris time", "Time in Tokyo"
* Added a function for getting the time difference between time zones: "time difference between Seattle and Moscow"
* 61 time zone codes & 500 city names are supported
* No internet connection required

**Laptimes**

* Do calculations in 'laptimes' (time in the format HH:MM:SS). I.e "03:45:32 + 01:22:19" (= 05:07:51).
* Laptimes can also be converted to/from regular units of time, and timespans.
* Milliseconds (after a final dot) can be omitted. Hours and minutes must still be specified (e.g 32 seconds will be '00:00:32'). This is necessary to distinguish a lap time from a clock time.

**Random numbers**

* New random number generating function: "random number between 1 and 10" to select a random integer in the given range
* To generate a random floating point number, do: "random number between 0 and 1" (the answer will be something like 0.1273981722)

**Multipliers**

* Added a multiplier specifier (e.g "4/2 as multiplier" = 2x)

**ISO8601 date formatting**

* Added an ISO8601 specifier for dates and timestamps (e.g "1583398800 as iso8601" = 2020-03-05T09:00:00Z)

**If statements**

* Added conditionals to Soulver. The syntax is "if x then y else z". The else component is optional. See the online documentation for more detailed examples.
* Added standard comparison operators (==, !=, <, >, <=, >=) and a boolean type ('true' or 'false')

**Files & sheets**

* Making a new Soulver file no longer requires the file to be saved to disk before editing
* You can now open Soulver 2 files using the Open dialog (⌘O). As a result the import menu item has been been removed. You still import from the Open dialog, by clicking "Options" and ticking the checkbox

**Totals**

* When totalling lines with incompatible types, the bottom-most summable lines will be added and shown in the final total
* The quick total now respects your chosen font, rather than using the system font

**URL Schemes**

* Added a new URL to open a specific sheet. To make a URL for opening a sheet, control-click on the sheet in the sidebar, and choose "Copy Link", or from the "Sheet" menu.

**Localizations**

* Improvements to the Russian & German localizations (thanks Michael & Matthias!)
  {% endupdate %}

{% update date="2020-03-20" %}

## 3.2.3

**Minor improvements**

* You can now omit the "to/as" in unit conversions. I.e: "10 USD CAD" will now work
* In addition & subtraction with mixed units, where the units share a common base unit, the answer will now be in terms of the larger unit rather than the last unit. I.e "10 km + 100 m" (= 10.1 km)
* Added support for numbers in scientific notation "e" syntax . I.e: "1e3" (= 1,000)
  {% endupdate %}

{% update date="2020-02-22" %}

## 3.2.2

**New Languages**

* Added a German localization (thanks Matthias!)
* Added a Russian localization
  {% endupdate %}

{% update date="2020-01-28" %}

## 3.2.1

**Improvements**

* Variable declaration lines are now included in the grand total
* Text copied out of the editor will now keep its syntax colors & styling when pasted into environments that support rich text
* Added additional calendar math phrases: "2 weeks from today", "9 days after February 12"
* Minor bug fixes
  {% endupdate %}

{% update date="2020-01-22" %}

## 3.2

This update includes 30+ improvements to Soulver's math engine, including better performance. It also features also improved printing & PDF exporting, and styled email sending and HTML exporting.

**Line Numbers**

* Added line numbers
* Use the keystrokes (⌘1 - ⌘9) to quickly insert a reference to the corresponding line
* Make references in plain text. For example, type "line1" to insert a reference to line1

**Printing, Styled Emails & Exporting**

* You can now customize the appearance of printed sheets & PDFs (font & font size). They can also optionally include line numbers, the total, and a centred heading
* Sub-total lines are now properly indicated as such in printed sheets & PDFs
* Added an HTML as an export option
* Added the macOS share sheet, and an option to copy an exported file directly to the clipboard
* You can now send styled (HTML) emails (this requires macOS 10.15+). These can also be customized in the Export sheet
* Soulver will launch a helper app to do the actual emailing. The standard macOS Mail app must be configured with at least one valid email account to send a styled email

**Calendar Math**

* "Now" can be used to get the current time: "now + 3 hours 15 minutes"
* Do calculations with workdays/weekdays: "10 March to 17 March in workdays" (= 5 workdays)
* New syntaxes for working out date intervals: "Days between 12 March and 31 December", "days from 12 March to 31 December", or "days in March 12 to 31 December"
* New syntaxes for working out intervals from the present up to a certain point in time: "days until December 25", "days before December 25", "days to December 25"
* New syntax for working out intervals from a point in the past, to the present: "days since December 1"
* Proper calendar months are now used when doing time intervals calculations (rather than Gregorian average months). Eg. "February 10 to April 10" now equals 2 months exactly (rather than 1.9 months, where a month was defined as \~30.44 days)
* Control/right-click on a date answer to see what day of the week it falls on

**Specifiers**

Use specifiers to convert between different types, and set the output of an expression

* Fraction: "0.2 as fraction" (= ⅕). This replaces the old "fractionize where possible" formatting option
* Fraction symbols (like '½') are used where possible in fraction output for fractions
* Percentage: "0.5 as percentage" (= 50%). - "As percent" or "as %" also supported
* Plain number: "50 km as number" (= 50)
* Timespans: "5.5 minutes as timespan" (= 5 minutes 30 seconds)
* Unix Timestamps: March 12 as timestamp (= 1583974800). Timestamps will format correctly in the answer column by default (without notation or thousands separators). To create a new unix timestamp, use "new timestamp". The previous syntax (simply "timestamp") is no longer supported

**Rounding Specifiers**

You can now round numbers using the following specifies.

* 0.5 rounded up (= 1.0)
* 0.5 rounded (= 1.0)
* 0.5 rounded down (= 0.0)
* "1/3 to 3 dp" (= 0.333). "to 3 digits" is also supported

**Units & Conversions**

* Re-designed the custom units pane to group custom units by type
* Choose your preferred measurement system for volume units (like teaspoon) in the new region preference pane
* A unit's symbol (rather than it's full name) are now used in answers. To see the full name of the unit used in the answer, control/right-click on the answer
* Added an alternative syntax for unit conversion: "days in 3 weeks" (= 21 days)
* CSS units (px, em, pt) can now be converted into other units of length (like inches)
* Like Soulver 2, "last unit wins" in mixed unit arithmetic. For example: 3 km + 3 m = 3,003 m. Prior versions of Soulver 3 used "first unit wins"
* Compound units like "kg liters" are no longer supported
* Scientific units (electricity, pressure, magnetism, force, luminosity) are not currently supported

**Currencies**

* You can now customize currency symbols, letting you set which currency should used for the $ and ¥ symbols, for example. You can also add your own symbols for any currency, and select whether the symbol is displayed in front of, or after the currency (with optional spaces)
* Convert currencies by symbol ($, €, ¥), eg. "30 USD in €" (previously the 3-letter currency code was always required)
* For totals involving currencies, a currency's rounded answer (usually to 2 dp) is now used, rather than its raw, maximum accuracy answer

**Rates**

* New syntaxes for working with rates: "30 hours at $30/hour (= $900)", or "$900 at $30/hour" (= 30 hours)
* Rates of different (but compatible) units are now included in totals

**Other changes**

* Soulver 3 no longer uses [Math.js](https://mathjs.org)
* Consequently Soulver 3.2 is up to 4x faster than Soulver 3.1 at number crunching. It loads long sheets almost instantaneously. An issue where typing performance was sluggish in long sheets with a lot of variables has also been resolved
* Like Soulver 2, quotation marks can be used to comment out parts of an expression
* The main window now remembers its size and position, even if you manually close it

**Bug fixes**

* Fixed an issue with slash comments followed by Chinese Hanzi characters
* Fixed an issue where only the second # in a multi-# heading was receiving syntax coloring with a custom color specified
* Fixed an issue where clicks in the text area's margin were not highlight the nearest line
* Fixed an issue related to automatic thousands-separator insertion
* Fixed an issue where labels took precedence over comments
  {% endupdate %}

{% update date="2019-11-20" %}

## 3.1.3

The primary focus of this update is interface improvements.

**Interface Improvements**

* Page up/page down, dragging selections, and 'Select All' in the text editor scroll correctly
* Smaller minimum window size
* Other misc interface improvements
  {% endupdate %}

{% update date="2019-10-07" %}

## 3.1.2

The primary focus of this update is ensuring sheetbook files work correctly in synced folders, like Dropbox and iCloud Drive.

**Other improvements**

* A sheetbook recovery feature will now help you recover from a backup if Soulver cannot read your sheets
* Your chosen font size now applies during printing
* Added an “Internet Access Policy” file to Soulver that provides information on the various internet services used by Soulver (like for currency rate refreshes). This information used by apps like “Little Snitch”, which help you make an informed decision on which outgoing connections should be allowed
  {% endupdate %}

{% update date="2019-09-03" %}

## 3.1.1

**Improvements**

* Soulver 3 has been notarized (this is required to run on 10.15 Catalina)
* You can now choose a custom font from the standard macOS font panel
  {% endupdate %}

{% update date="2019-07-10" %}

## 3.1

The most significant new features are:

**Create and edit Soulver files (.slvr) in place.**

* The integrated sheets manager is a convenient default for most users, but it is also helpful to be able to save and edit Soulver files in the traditional way in Finder too. Go to `File > New > External Document` to make a new external soulver document.

**Default formatting options.**

* You can now set your preferred default formatting options for answers. Go to `Edit > Tweak Engine… > Answers`. This is helpful if you want to always turn notation off by default or set a different default precision. You can always override the defaults for a line by setting any formatting option manually, either through the `Line > Formatting Options` menu, or in the line's contextual menu.

**Fraction support**

* This update brings a new formatting option: `Fractionize where possible`. The default is off, but when you turn this on for a line (or in the default formatting options), then Soulver will convert your answer into a fraction when it makes sense to do so. For example, `1.75` will be formatted as `1 3/4`.
  {% endupdate %}
  {% endupdates %}


# What's new in Soulver 3?

Soulver 3 adds 80+ new features, including date & time math, subtotals, an integrated sheets manager, QuickSoulver, and a redesigned user interface.

{% hint style="info" %}
For the latest improvements to Soulver 3, please see the [Change log](/changelog).
{% endhint %}

### Interface

* Redesigned user interface. Soulver now manages sheets for you in a sidebar.
  * You can still use the classic "Save documents in Finder" workflow if you prefer.
* Select light mode, dark mode or system defaults from the General preferences.
* Redesigned settings
* An app icon by [Matthew Skiles](https://www.matthewskiles.com/)

### Calculator

* Support for calendar calculations, for example:
  * March 12 + 3 weeks 2 days (4 April)
  * Days between April 3 and June 12 (70 days)
  * August 14 + 3 workdays (August 19)
  * today + 3 weeks
* Support for time calculations, for example:
  * 3:30pm + 2 hours 15 minutes (5:45 pm)
  * 01:02:03 + 01:09:54 (02:11:57)
  * now + 3 hours 25 minutes
* Time zone conversions, for example:
  * Time in New York
  * Time difference between Chicago and Paris
  * 3:30am Moscow to Japan
  * 2am PST to GMT
  * You can use countries as well as common city names (in cases where a country spans multiple timezones, the timezone of the capital city will be used)
* Proportion/'rule of three' functions, for example:
  * 10 is to 20 as 50 is to what (100)
  * 15 is to 30 as what is to 80 (40)
* Functions with multiple parameters, for example:
  * midpoint between 5 and 10 (7.5),
  * 'greater/lesser of', 'remainder of'
* Unix time calculations ('new timestamp', 'march 12 3pm as timestamp')
* ISO8601 date formatting
* Financial functions for compound interest, loan repayments, & return on investment
* Better support for working with rates ('30 hours at $30/hour', '$900 at $30/hour')
* More intuitive syntax for some percentage operators ('50 is 25% of what')
* if/then/else statements
* Random number generator:
  * Random number between 1 and 10

### **Organization**

* Create folders for managing sheets.
* Trash for recovering recently deleted files.
* Drag sheets out of the sidebar to export a .slvr file
* Spotlight search integration, within the app and from the system Spotlight
* Sort sheets by date edited, date created or title
* Import Soulver 2 or Soulver 3 files by dropping them on the dock icon.
* Open specific sheets via URLs

### QuickSoulver

* Perform quick calculations from a Spotlight like interface
* Save your calculations to Soulver as a sheet (⌘S)
* Access a "QuickSoulver" from within Soulver, or the menu bar, or global hotkey

### **Totals & Subtotals**

* Designate a line a subtotal, which will add up all lines above it (up to the next subtotal or heading)
* Smarter total will ignore variable declarations & referenced lines automatically

### Variables

* Variables can now include multiple words
* Auto-complete support for variables (hit the escape key)
* Shift-hover over a variable to see its actual value on that line
* Variables can now be redeclared with new values.

### Editing

* Scrubbable numbers (shift hover over a number to show the scrubber)
* Auto-thousands separator insertion (1000 becomes 1,000)
* QuickOperators (1p1 becomes 1 + 1, etc)
* Keystrokes to insert labels & variable declarations
* Touch Bar support with quick access to operators, sheet defined variables, and line references.
* A preferences to start sheets with a heading or a comment
* Use # for headings, rather than @. Multiple #'s are supported.
  * Customize the color of the # part of a heading in the Styling Preferences

### Units & Currencies

* User definable custom units
* More scientific units
* Better answer formatting of time & imperial lengths
* Support for 22 popular cryptocurrencies
* Better handling of unit calculations in many cases than in Soulver 2.
* All real-world currencies now enabled by default (no need to add them manually)
* Customize currency symbols (i.e choose whether ¥ refers to JPY or CNY)

### Lines & References

* Rearrange & delete lines & via the answer column
* Bump lines up/down using keystrokes
* Reference insertion mode (hit ⌘L, then type the number of the line you want to insert a reference to)

### Files & Locales

* Automatically convert documents created in foreign locales into your preferred locale
* Soulver now uses a JSON based file format (.slvr) rather than XML based (.soulver)
  * You can import your old Soulver 2 files into Soulver 3.

### macOS & Third Party Integrations

* Use Soulver from Terminal with the new CLI
* System-wide "Calculate Anywhere" text services
* A Shortcuts action
* Improved VoiceOver support, with the option of reading out a line's answer after editing
* Search your sheets from Spotlight & get a QuickLook Preview. QuickLook is also supported in Finder.
* Touch Bar support with quick access to operators, sheet defined variables, and line references.
* URL schemes for creating sheets, opening sheets, and doing calculations


# What's new in Soulver 5?

2027-2028

50+ new features · 50% off upgrade pricing · universal (one time) purchase

Soulver 4 <mark style="color:purple;">**Availability & Pricing**</mark>

Soulver 4 will be **$59** on the [**App Store**](https://apps.apple.com/us/app/soulver-3/id1508732804) and will be a <mark style="color:green;">**single universal purchase**</mark> (<mark style="color:$info;">for</mark> <mark style="color:$info;">Mac, iPad, iPhone</mark>)

* All Soulver 3 users will be invited to upgrade at a **50% discount** to the universal version of Soulver 4

Also available

* Soulver 4 for **Mac & Windows** will be available as a direct download on [our website](https://soulver.app/download) for **$39**
* Soulver 4 will be available on [Setapp](https://soulver.app/setapp) (<mark style="color:$info;">Mac, iPad, iPhone + data services included in a Setapp subscription</mark>)

#### **12. Native&#x20;**<mark style="color:red;">**Windows**</mark>**&#x20;version** 🪟

* Soulver 4 now has a **native Windows version**
  * Crafted with the same care that we bring to each platform
  * Available as a direct download (multi-platform license option available)
  * Also available from the Microsoft Store
* Sync your sheets with Windows from Mac/iPhone/iPad by storing your sheetbook file in a cross-platform synced folder like Google Drive or Dropbox

## Totals offcuts

Grand totals

* After adding 2 or more subtotals to a sheet, control click on a blank line to add a grand total that adds up the previous subtotals.

## What's new in <mark style="color:purple;">Soulver 5</mark>?

#### **Advanced&#x20;**<mark style="color:red;">**sheet management**</mark>**&#x20;features** 📑

* **Sheet versions**: create read-only previous versions of a sheet, so you can **track changes to a sheet over time**
* Use the sheet inspector to see the **creation date, modification date & editing device** of a sheet
* **Customize accessories** (floating statistics & line numbers) on a **per-sheet basis** (via the new sheet inspector)

### 7. Advanced <mark style="color:purple;">sheet management</mark> features

#### Get sheet Info

* Use the new sheet inspector to see more information about a particular sheet, including (new) its creation date and on what device it was last edited

#### Sheet versions

* Using the new sheet inspector, you can create (read-only) versions of a sheet, that you can refer back to in the future if necessary
  * Versions are named with the current date & time by default, but you can also give versions a custom title for clarity

#### Customize view options per sheet

* With the new sheet inspector, you can customize the visibility of line numbers and answer column statistics for each sheet individually,
  * You can also select which statistic to display in the floating total on a per-sheet basis

### 8. New units for <mark style="color:green;">science & engineering</mark>

This update includes a big upgrade to the unit engine, with nearly 100 additional units for physics, chemistry, electrical engineering & vehicles.


# Getting Started

Just type out your problem like you'd write it on a piece of paper.

Soulver is a notepad for working through problems that involve calculations.

Type a calculation into the text area and its answer will appear in the **answer column** on the right:

```
3 × 3                                | 9
120 + 30%                            | 156
30% of 700                           | 210

June 12 + 3 weeks                    | 3 July
7:45am - 4:20pm                      | 8 hours 35 min
Time in Chicago                      | 7:45pm

100 EUR in USD                       | US$109.74
$30/day is what per year             | $10,957.28/year
```

Whenever you change a line of text, its answer recalculates automatically (no equals press required).

#### Mixing words & calculations

Soulver lets you add context to your calculations, so that they will make sense later.

```
$19 for breakfast + $22 for the uber         | $41.00
```

If you want Soulver to ignore certain numbers in your text, use a [comment](/syntax-reference/headings-and-comments).


# Totals & Subtotals

By default, Soulver displays a total of all your lines in the bottom right hand corner.

<div align="center"><img src="/files/ayBo6uq5k1dZezhhYKRE" alt="A floating quick total appears in the bottom right of your sheet (by default)" width="375"></div>

### Subtotals

#### Making a subtotal on Mac

Add a blank line and then press ⌘T (or double-click the empty answer).

A subtotal line will add up all lines above back up to the next subtotal, or heading (#).

<div align="left"><figure><img src="/files/2IHWo1cuN0tNeiO2QxQB" alt="" width="375"><figcaption><p>Double click the answer on an empty line to turn it into a subtotal</p></figcaption></figure></div>

#### Making a subtotal on iPad & iPhone

Hold down on an empty line and choose `Make Subtotal Line`:

![Subtotals in Soulver 3 for iPad](/files/IQlTi3V6uBDHXuPGSAbS)

Alternatively, tap the empty space below the last line.

## Subtotal tasks

#### Assigning a subtotal to a variable

You can create a variable on a subtotal line using "variable = " and leaving the value blank:

<img src="/files/wa690fwbRQV8p5RwYayY" alt="Declare a variable without a value on a sub-total line" data-size="original">

#### Adding a percentage (like a sales tax) to a subtotal

Add a percentage line to your subtotal to have this applied to the final result.

<figure><img src="/files/d57UDQ6vkdYpzrDlgHlL" alt="" width="375"><figcaption><p>A percentage in a subtotal will apply to the final result</p></figcaption></figure>

## Customizing the floating total

#### Showing/hiding the floating total

If the total is not helpful in your particular workflow, you can hide it by hovering over it and clicking `Hide`.

To show the total again, go to the `View` menu and choose `Show Total`.

<figure><img src="/files/07t6IrrPXPBTmqYEw3F9" alt=""><figcaption><p>Additional floating total options are available from the View menu</p></figcaption></figure>

#### Changing the statistic type

You can also show the average, count and median of your lines by control-clicking on the floating total and choosing an alternative statistic.

<figure><img src="/files/XjHpYFn0dPWVgUto0bhT" alt=""><figcaption><p>Choosing an alternative statistic for the floating total via the contextual menu</p></figcaption></figure>


# Line References

Doing calculations using previous answers (like in a spreadsheet)

Soulver lets you reference previous lines' answers in your calculations, like a spreadsheet.

You can go back and edit a previous line, and any lines that refer to it will recalculate automatically.

#### To reference a previous line:

1\. Drag in the answer from the line you want to reference:

<div align="left"><img src="/files/-LgXWv8zRdBtNVIMs1NI" alt="Dragging in a previous line to make a line reference"></div>

{% hint style="info" %}
You can also just double click the answer to insert a reference to it
{% endhint %}

2\. Type an operator (like +) immediately after typing return to start a new line:

<div align="left"><img src="/files/-LgXXNW491ZyEhldheck" alt="Typing an operator after return to make a line reference."></div>

You can also insert a reference to the previous line using the keystroke ⌘\\.

{% hint style="warning" %}
Note: you can only reference a line **above** your current line.
{% endhint %}

{% hint style="info" %}
If you want to disable a reference, but keep an expression in its current state, you can right-click on a reference and choose 'Unlink'.
{% endhint %}


# Variables

### Declaring variables

Declare a variable with the equals symbol '='.

```
discount = 10%                         | 10%
cost = $550                            | $550
cost - discount                        | $495.00  
```

A variable can be a single word, or an entire phrase.

### Global variables

To declare variables that works across all sheets, go to `Settings > Calculator > Global Variables` and add a new variable by clicking the plus button.

### Redefining variables

A variable can be redefined by giving it a new value.

The most recently defined value will be used on subsequent lines.

```
monthly rent = $1,900 // 2018      | $1,900
monthly rent = $2,150 // 2019      | $2,150                                   
monthly rent / 4 people            | $537.50
```

#### Variables can be added to and subtracted from

Use the `+=` and `-=` operators to modify the value of a variable

![](/files/T23woYPq0aIxqzN8XM6e)

## Tips for working with variables

#### Peeking at a variable's value

On Mac, peek at a variable's value by holding down the shift key, and hovering over the variable.

<figure><img src="/files/v8nfSpgSjoR2tSRn3S0e" alt="" width="158"><figcaption><p>Peeking at a variable value on Mac</p></figcaption></figure>

On iPad & iPhone, select a variable to peek at its value.

<figure><img src="/files/rouYILf7QJETc6gwVK3O" alt="" width="359"><figcaption><p>Peeking at a variable value on iPad &#x26; iPhone</p></figcaption></figure>

#### Auto-completing variable names

Instead of typing out a long variable name, you can press the **escape** key and then press **return** to quickly insert the entire variable name.

![Press escape to autocomplete long variable names](/files/-LgXbGIw24ybhnbSEBGq)

### Variable renaming

Soulver can automatically update any lines that reference a variable when you rename it.

This is off by default — turn on **Automatically rename local variables** in Settings > Variables. With it enabled, rename a variable on its declaration line and move the cursor to another line; the referencing lines update to the new name automatically.

## Things to note about variable declarations

#### Variables must be declared before use

You can't reference a variable *before* it has been declared.

This behaviour is consistent with how variables work in programming languages (but differs from Soulver 2).

#### Currency rounding does not apply to variable declaration lines

When you declare a variable in a currency, it will be displayed **without rounding** so it's unambiguous what the actual value stored in the variable is.

When used on subsequent lines, currency rounding will apply like usual.

<figure><img src="/files/UlpLRVJ8YOVqxBQ5FqpD" alt="" width="563"><figcaption><p>It's clear what the actual value of "cost per day is"</p></figcaption></figure>

#### Variable declarations can be excluded from the floating total

Use the View > Total options menu to configure whether the floating total should include or exclude variable declaration lines

<figure><img src="/files/j6aeyZ877cS5X6tbKsRg" alt="" width="563"><figcaption></figcaption></figure>


# Trip Planning

**Time point lines**

To begin a trip, mark a line with a **date** or **time** result as a "time point" (via the contextual menu on an answer, or press ⌘-T).

A time point might be the **start of a trip**, or the **end of a trip** (whatever is appropriate in your case).

Here are some examples of how Soulver can assist you in trip planning when using time points:

1. **A trip with a start date only**

<div align="left" data-full-width="false"><figure><img src="/files/LRPIDS9gduVWFeIbLpfC" alt="" width="375"><figcaption><p>Planning a holiday with trip planning in Soulver</p></figcaption></figure></div>

Here we've marked the "2 July" line as a **time point** line.

Subsequent lines display the date intervals for each city we want to visit.

2. **A trip with an end date, or deadline**

<div align="left"><figure><img src="/files/lmfHovAposeTjFdlP4zm" alt="" width="375"><figcaption><p>Planning getting to the airport on time with trip planning in Soulver</p></figcaption></figure></div>

Here we've marked the final line with "8:35am" as a **time point** line.

Previous lines will show date intervals relative to it, and we can see that we need to be up at 4:45am in order to make our flight.

3. **A trip with both start and end dates**

If you have both a start date, and an end date for your trip or project, Soulver can also help ensure the amount of time you have allocated meets your deadline.

<div align="left"><figure><img src="/files/Y6mf5p0K9HB7oH8dMeog" alt="" width="375"><figcaption><p>A trip with both start and end dates</p></figcaption></figure></div>

Mark the start and end dates as **time point** lines and the end date line will display a warning (if necessary).


# Formatting

Soulver gives you control over how numbers, text, and answers are displayed in your sheets.

* [Number Formats](/documentation/formatting/region-settings) — configure decimal points, thousand separators, and regional number formats
* [Text Styling](/documentation/formatting/appearance-and-styles) — customize syntax highlighting colors and font options
* [Answer Formatting](/documentation/formatting/answer-formatting-options) — control how answers are displayed in the answer column


# Number Formats

Should Soulver interpret . as a decimal point or a thousand separator?

By **default**, Soulver uses the settings from your device's **Language & Region** system settings.

<figure><img src="/files/tmcplQTffa8UnVjD76GO" alt=""><figcaption><p>macOS System Settings inform Soulver of the number format to use based on your region</p></figcaption></figure>

### Choose your number format settings

You can also select a different number format in Soulver's **Calculator** > **Number Formatting** settings

<div align="left"><figure><img src="/files/jX2n8EVCGYeSQPmuk8yV" alt="" width="361"><figcaption><p>Select one of three standard regions in addition to the system region</p></figcaption></figure></div>

| Format         | Thousand separator | Decimal Point |
| -------------- | ------------------ | ------------- |
| North America  | ,                  | .             |
| Western Europe | .                  | ,             |
| Eastern Europe | (space character)  | ,             |

{% hint style="info" %}
Either `.` or `,` may be used as the decimal point in the Eastern Europe region
{% endhint %}

### Automatically inserting thousand separators when typing

Tick **Format numbers with thousand separators** in the **Editing** settings pane,

10000 will be automatically formatted as 10,000 (in North America, for example)

<figure><img src="/files/saXW923q60yxQ8PrYtOk" alt=""><figcaption><p>Soulver can automatically insert thousands separators into your numbers as you type</p></figcaption></figure>

### Converting numbers from foreign formats when pasting

Tick **Convert foreign numbers when pasting** to automatically convert numbers in foreign formats to your chosen number format when pasted into your sheet.

{% hint style="info" %}
Sheets using foreign number formats will be automatically converted into your chosen number format when opened.
{% endhint %}

### Using underscore as thousands separator

You may use an underscore character to separate numbers.

This is commonly supported in programming languages, so you can easily copy and paste numbers between Soulver and your code

```
1_000_000 + 2_000                 | 1,002,000
0b_1100_0001 to decimal           | 193
0xCAFE_F00D to decimal            | 3.406G
```


# Text Styling

Soulver draws inspiration from programming language editors by automatically highlighting various parts of your expression (numbers, variables, operators, etc) in different colors.

{% hint style="info" %}
Like programming languages & markdown, sheets in Soulver are saved as plain text.

This means you cannot manually adjust the styling attributes of specific selections of text like you would in Pages or Microsoft Word.
{% endhint %}

### Customizing highlighting colors

Customize the colors Soulver used to indicate the various parts of your expression in the **Styling** settings pane:

<figure><img src="/files/6k62D4xayJwupqCYWgdU" alt=""><figcaption><p>Soulver's styling settings in the Mac version</p></figcaption></figure>

### Monospaced digits

From the **Font** popup list, select **System Default (monospaced digits)**

<figure><img src="/files/Sh02RAMriK4rsHzwb8IO" alt="" width="375"><figcaption><p>Number in the monospaced digits system font</p></figcaption></figure>

<figure><img src="/files/2b3xbbfT6IFfGTefKCjF" alt="" width="375"><figcaption><p>Number in the default system font</p></figcaption></figure>


# Answer Formatting

Soulver includes a number of different formatting options for answers.

### Default Formatting

You can set the default formatting preferences by going `Settings > Calculator > Number Formatting` or customize an individual line's formatting through the contextual menu (control-click on the answer), or with the `Format` menu.

{% hint style="info" %}
If you manually set formatting options on a line, it will no longer "sync" with the default formatting options. You can reset a line's formatting to match & sync with the defaults by going`Format > Reset to Defaults`
{% endhint %}

### Decimal Places (dp)

Change the number of decimal places shown in an answer using the `Format` > `Precision` menu, or with the contextual menu:

![Setting decimal places via the contextual menu](/files/-MF8ZGqTK2LBBFra5CzP)

{% hint style="warning" %}
Rounding formatting is only *cosmetic.* The maximum accuracy **unrounded** answer will be used in subtotals and line references.
{% endhint %}

### Large Number Notation

Soulver uses [SI Notation](https://en.wikipedia.org/wiki/Metric_prefix).

For example, 1,700,000 is expressed as 1.7M to make the number clearer.

If you need to see the entire number, you can disable this feature for a single line in the contextual menu on an answer. Or disable it completely for all lines in the `Calculator > Number Formatting` settings.

### Currency Rounding

With currency rounding on (the default), currencies will be auto-rounded to their preferred number of decimal places. For most currencies this is 2 dp, though there are currencies like Japanese Yen that round to 0 dp.

{% hint style="warning" %}
Unlike regular lines, the **rounded answer** of currencies is used in subtotals and line references. This matches how money works in the real world.

You should disable currency rounding if you need sub-cent accuracy.
{% endhint %}

![See the 1 cent difference in the subtotals with currency rounding off?](/files/-MC6d5W5I2EMxGW_5uHc)

{% hint style="warning" %}
An exception to this is when using variables, which always use **unrounded answers**, even of currency lines.

You may want to manually round a currencies in a variable as shown below, or use a line reference instead.
{% endhint %}

![Line references use the rounded currency value, variables do not.](/files/-MC6iavy821iHWLtP_F1)


# Sheets & Files

Soulver organizes your work into sheets, which are grouped into sheetbooks. You can also export and share your work as Soulver files.

* [Sheets](/documentation/sheets-and-files/untitled-1) — creating, organizing, and managing sheets and folders
* [Sheetbooks](/documentation/sheets-and-files/sheetbooks-and-syncing) — working with sheetbooks and syncing via iCloud
* [Soulver Files (.slvr)](/documentation/sheets-and-files/soulver-files-.slvr) — opening, sharing, and working with Soulver file format


# Sheets

Like the Notes app, Soulver organizes your sheets for you – there's no need to keep track of files yourself in Finder or Files.

There's also no need to manually save, as Soulver automatically saves changes for you.

#### Making new sheets

Click "New Sheet" in the sidebar or press ⌘N.

{% hint style="info" %}
You can have new sheets open in a new window by setting the preference for ⌘N behaviour in the **General** settings
{% endhint %}

#### Making new folders

By default, new sheets are saved in the **General** folder, but you can make your own folders too.

Hover over the `General` folder and click the little `+`. A new folder starts with a blank sheet by default.

#### Renaming folders

Double click a folder in the sidebar and type your preferred name. Folders are sorted alphabetically.

#### Moving sheets into folders

Drag and drop sheets from the list into the folder, or use the Sheet menu (**Move Sheet To…**) or the contextual menu on a sheet in the sidebar.

#### Deleting sheets & folders

Hover over a sheet or folder in the sidebar and click the little red cross, or click a sheet and press the delete key. To delete the current sheet while editing it, press control-⌘-delete.

{% hint style="warning" %}
Deleted sheets are moved into the **Trash**.

To empty the trash, hover over it and choose **`Empty Trash`**

When you delete a sheet from the Trash, or empty the Trash it will be permanently deleted. You may be able to recover it from a backup (File > Backups).
{% endhint %}

## Sheet Tips

### Searching Sheets

You can search your sheets on Mac by going to the Edit menu > Find > Sheet List Search (or press Option-⌘-F) and typing your search query:

![Spotlight searching in Soulver](/files/-MjFy04yD7JWggqreIIO)

### **Sorting sheets**

You can choose to sort sheets by date modified, creation date or title (the first line of the sheet) in Soulver's **General** settings.

{% hint style="info" %}
You can also optionally have new sheets start with a # heading, or a // comment
{% endhint %}

### Opening sheets in new windows

Double click a sheet in the sidebar to open it in a new window.

{% hint style="info" %}
Swipe left/right on your Mac's trackpad or Magic mouse to toggle the sidebar opened and closed.
{% endhint %}


# Sheetbooks

Soulver saves your sheets into a single library file called a "sheetbook" (with the .sheetbook file extension).

### Syncing a sheetbook between devices

In Soulver's settings, choose "iCloud" as the sheetbook location to sync sheets between Soulver for iPad, iPhone and Mac.

### **Opening a different sheetbook**

Soulver can only open one sheetbook file at a time, so if you open another sheetbook file, your previously open sheetbook will be closed.

You can open a sheetbook by double-clicking a sheetbook file in Finder, or through the Open dialog.

### Sheetbook Backups

Soulver makes daily backups of your sheetbook, just in case. To restore from a backup, go `File > Backups`, select a backup and click "Restore from Backup".

{% hint style="info" %}
You can manually create a backup from the backups window by clicking "Make Backup Now"
{% endhint %}


# Soulver Files (.slvr)

If you prefer working with files saved in Finder, you can create a Soulver File.

`File > New > File`

![Create either a sheet or a file from the File menu](/files/-MjFwsr8hQtXPppH9HNP)

{% hint style="info" %}
You can customize the behaviour of ⌘N to create a file rather than a sheet in your sheetbook
{% endhint %}

![⌘N behaviour in the general preferences](/files/-MjFx8uI0q8NcsxsdwGb)


# Live Data

Soulver can pull in live data from the internet and use it directly in your calculations. Lines with live data queries update automatically.

* [Weather](/documentation/live-data/weather) — access live weather data for locations around the world
* [Stock Prices](/documentation/live-data/live-and-historical-stock-prices) — use live and historical stock prices in calculations
* [Wolfram|Alpha](/documentation/live-data/knowledge-assistant) — ask questions and get answers inline


# Weather

Data provided by Apple Weather

You can access live weather data for most locations on Earth:

```
weather in sydney                      | 19 °C (mostly cloudy)
temperature in batumi                  | 9 °C
feels like in tokyo                    | 14 °C
```

Lines with weather queries will automatically update during the day.

{% hint style="info" %}
Weather queries work for all places built into Soulver, including airport codes.

You can also add additional places in Soulver's settings (Settings > Calculator > Custom timezones).
{% endhint %}

### Supported Weather Metrics

| Name                 | Aliases                   |
| -------------------- | ------------------------- |
| weather conditions   | weather                   |
| temperature          | temp                      |
| apparent temperature | feels like, apparent temp |
| high temperature     | high temp, high           |
| low temperature      | low temp, low             |

## Advanced weather metrics

We offer an optional subscription ($26/year) that gives you access to the following 12 additional weather metrics:

| Metric name        | Aliases             |
| ------------------ | ------------------- |
| rainfall           | rain, precipitation |
| chance of rain     |                     |
| snowfall           | snow                |
| humidity           |                     |
| cloud cover        |                     |
| visibility         |                     |
| wind speed         |                     |
| wind direction     | wind                |
| dew point          |                     |
| UV index           |                     |
| pressure           |                     |
| pressure direction |                     |

And the following 6 astrological metrics:

| Metric name | Aliases |
| ----------- | ------- |
| sunrise     |         |
| sunset      |         |
| moonrise    |         |
| moonset     |         |
| moon phase  | moon    |

{% hint style="success" %}
The "Knowledge Assistant, Live Stocks & Advanced Weather" subscription is available in the [**Mac App Store**](https://apps.apple.com/us/app/soulver-3/id1508732804?ls=1) and is complimentary for our [**Setapp**](https://soulver.app/setapp) users\*\*.\*\*

By offering these costly data services as an optional subscription to just the users who need them, we're able to continue offering Soulver as a single purchase.
{% endhint %}


# Stock Prices

Soulver 3 ships with 9 popular tech stocks. Additional stocks are available as part of an optional data services subscription.

**Free Tech Stocks**

| Company Name | Stock Ticker |
| ------------ | ------------ |
| AirBnB       | ABNB         |
| Alphabet     | GOOGL        |
| Amazon       | AMZN         |
| Apple        | AAPL         |
| Meta         | META         |
| Microsoft    | MSFT         |
| Netflix      | NFLX         |
| Nvidia       | NVDA         |
| Tesla        | TSLA         |

Use stock tickers as part of calculations. Stock rates are updated automatically every hour.

```
10 AAPL                      | $1,500.80
NFLX × 30 stocks             | $18,196.80
MSFT                         | $298.66
```

{% hint style="info" %}
You can set an alternative name for a stock (like 'Apple' instead of AAPL).

To do this, customize the stock symbol for use in calculations by double-clicking the stock in Settings > Calculator > Stocks.
{% endhint %}

### Historical stock prices

```
10 AAPL on April 12, 2005    | $13.10
AMZN one year ago            | $3,175.11
```

{% hint style="info" %}
The [**adjusted price**](https://www.investopedia.com/terms/a/adjusted_closing_price.asp) is used in historical stock price queries as this is typically more useful.
{% endhint %}

You can also perform actual (non-adjusted) price and trading volume historical queries on stocks:

```
AAPL close on Jan 9 2007             | $92.57
GOOGL volume on March 10 2015        | 2.004M
```

### **Adding additional stocks**

To add additional stocks, go to Settings > Stocks, click the + button and type the name of a company, or its stock ticker, then click add.

![Adding additional stocks in the App Store version of Soulver 3, with an optional data services subscription](/files/-MjG3Vgqa8dHkR3P9y7d)

## Access to additional stock data

We offer an optional subscription ($26/year) that gives you access to 150k+ stock tickers across 70 stock exchanges with a 15-20 minute delay.

The subscription also includes advanced weather data, and an inline knowledge assistant.

{% hint style="success" %}
The "Knowledge Assistant, Live Stocks & Advanced Weather" subscription is available on the [**App Store**](https://apps.apple.com/us/app/soulver-3/id1508732804?ls=1) for $26/year and is complimentary for our [**Setapp**](https://soulver.app/setapp) users\*\*.\*\*

By offering these costly data services as an optional subscription to just the users who need them, we're able to continue offering Soulver as a single purchase.
{% endhint %}


# Wolfram|Alpha (knowledge assistant)

Bringing the world's data points directly into your Soulver sheet

{% hint style="success" %}
We offer high quality data services like Wolfram|Alpha as an **optional subscription**, so we're able to continue offering Soulver itself as a single purchase.

**Access by version**

[**App Store**](https://apps.apple.com/us/app/soulver-3/id1508732804?ls=1) **–** subscribe to "Knowledge Assistant, Live Stocks & Advanced Weather" ($26/year)

[**Setapp**](https://soulver.app/setapp) **–** complimentary for all users

[**Direct download**](https://soulver.app/download) **–** set your own [Wolfram|Alpha App ID](https://developer.wolframalpha.com/access) to enable the knowledge assistant
{% endhint %}

[Wolfram|Alpha](https://www.wolframalpha.com/about) offers expert, real-time, verifiable answers for knowledge queries and supports natural language queries.

You can submit inline queries to fetch factual figures, and solve one line problems.

#### Querying Wolfram|Alpha

Type your query followed by = ?

```
distance to the moon = ?
```

After a moment an answer from Wolfram|Alpha will be inserted:

```
distance to the moon = 365,519 kilometers
```

{% hint style="warning" %}
Wolfram|Alpha supports only queries in English at this time.
{% endhint %}

#### Fall back on OpenAI models

If Wolfram|Alpha does not have an answer for your query (for instance, if your query was not expressed in English), knowledge assistant will fall back to the latest model from OpenAI instead.

Control/right-click on an answer from knowledge assistant to see its source:

<figure><img src="/files/M2OS0qSzN1rNrDpmegmw" alt=""><figcaption><p>A non-English query being handled by OpenAI's latest large language model</p></figcaption></figure>

{% hint style="danger" %}
The OpenAI's large language model we use may "hallucinate" factually incorrect information and cannot obtain real-time information from the internet.
{% endhint %}


# Wolfram|Alpha integration

{% hint style="warning" %}
Wolfram|Alpha integration is available in the [direct download](https://soulver.app/download) version of Soulver.

Apple does not allow App Store apps to request API keys from users ("additional functionality must be unlocked via an in-app purchase" to quote App Review).
{% endhint %}

Wolfram|Alpha is a web service whose goal is to provide access to all objective data. You can try it [here](https://www.wolframalpha.com/).

{% hint style="info" %}
Setup Wolfram|Alpha integration in Soulver's settings (Settings > Calculator > Wolfram|Alpha).

You must provide Soulver with a valid Wolfram|Alpha "App ID" which you can create for free [here](https://developer.wolframalpha.com/access).
{% endhint %}

You can use Wolfram|Alpha from Soulver to look up specific pieces of numeric data. Just type the name of the metric followed by = ?

```
distance to the moon = ?
```

After a second, Soulver will insert the metric if it's available via Wolfram|Alpha

```
distance to the moon = 365,519 kilometers
```


# Exporting

Soulver supports several ways to share and export your work.

* [PDF & Printing](/documentation/exporting/sharing-and-printing) — export sheets as PDFs or print them
* [Soulver Studio](/documentation/exporting/soulver-studio) — share interactive Soulver sheets on the web


# PDF & Printing

### Supported Export Formats

| File Type  | File Extension |
| ---------- | -------------- |
| Soulver    | slvr           |
| Plain text | txt            |
| CSV        | csv            |
| PDF        | pdf            |
| HTML       | html           |

In the Mac version, to export, go `File` > `Export` > `(Choose your desired format)`

Or customize the export formatting using `File` > `Export`

### Customizing HTML & PDF output

HTML & PDF files and printed documents will use the visual options from your settings (syntax coloring, font size, etc).

However you may wish to customize the printed or exported document further. This can be done from the **Export Sheet (**`File` > `Export`).

This sheet lets you specify font, font size, syntax coloring, and whether line numbers & the total are visible before exporting. There is an option to hide comments (text following '//') and heading indicators (#) from the printed/exported output.

### Quick PDF Export on iPad & iPhone

Take a screenshot and choose "Full Page" to quickly create a PDF of your sheet.


# Soulver Studio

Share Soulver sheets as stand-alone Mac apps 🤯

### What is Soulver Studio?

Soulver Studio is a feature that turns your Soulver sheets into stand-alone apps that can be installed on any Mac running macOS 12+.

<figure><img src="/files/wjFqSad5N5zpra9eQqKG" alt="Soulver Studio icons" width="375"><figcaption><p>7 fruity icons to choose from for your cool new calculator app</p></figcaption></figure>

### Why would I want to do this?

* Use Soulver Studio to share a sheet of calculations (presumably with some variables and line references) with people who don't have Soulver installed.
* You might use it as an alternative to sending someone an Excel/Numbers spreadsheet, for example.

### How do I use it?

1. Select a sheet and then go to the **Sheet** menu > **Build app from Sheet**.
2. Provide some details about your new app: give it a memorable name, set the version number (1.2.3, etc) and provide a unique identifier that will stay constant across new builds of your app (an identifier is required by macOS for all Mac apps).
3. Choose your preferred icon from 1 of 7 colorful options available.
4. Click **Upload and Build**.
5. Your new app will be ready for download in (typically) less than 5 minutes. It will be around 7 MB zipped, and 15 MB unzipped.

<figure><img src="/files/yicouWbwoNeEmrqDXb2p" alt="Soulver Studio setup screen" width="563"><figcaption><p>It really is this easy to turn a Soulver sheet into a stand-alone app.</p></figcaption></figure>

### What happens after my sheet is uploaded?

* After your sheet is uploaded to our servers, it is turned into a Soulver-like Mac app.
* The app is then [sandboxed](https://developer.apple.com/documentation/security/app_sandbox/protecting_user_data_with_app_sandbox). Sandboxing is an optional security measure on macOS to makes apps technically unable to access your files (for extra peace-of-mind).
* The app is then dispatched to Apple's for a process called [notarization](https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution). This is a necessary step to make the app installable on other Macs (see [Gatekeeper](https://support.apple.com/guide/security/gatekeeper-and-runtime-protection-sec5599b66df/web)). It typically takes a few minutes, but can take up to an hour if Apple is having a busy day.
* Your app will be deleted from our servers within 24 hours of completion. If you want to share your app with others, you'll need to host it somewhere yourself.

### Limitations

* Soulver Studio apps cannot make new lines. We recommend you set up your sheets with variables & line references to make them useful as standalone apps.
* Soulver Studio apps cannot access live stock prices or do weather queries (but they do have access to live currency rates).
* We are limited by Apple to building [75 apps per day](https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution/customizing_the_notarization_workflow#3561440). When this limit is reached, Soulver Studio will be unavailable for some period of time.


# Integrations

Soulver integrates with other tools and workflows on your Mac, iPad, and iPhone.

* [Alfred & Raycast](/documentation/integrations/alfred-and-raycast) — use Soulver as a calculation engine in launcher apps
* [macOS Services](/documentation/integrations/macos-services) — calculate selected text from any app
* [URL Schemes](/documentation/integrations/url-schemes) — open Soulver and perform actions via URLs
* [Terminal (CLI)](/documentation/integrations/command-line-tool-automator-and-services) — use Soulver from the command line


# Alfred & Raycast

### Alfred Workflow

[Alfred](https://www.alfredapp.com) is a popular Spotlight replacement for Mac that's been available for many years.

We offer [a workflow](https://www.soulver.app/alfred) that lets you perform calculations using Soulver from Alfred.

{% hint style="info" %}
The Alfred workflow uses the Soulver CLI located inside Soulver’s bundle.

The workflow expects Soulver to be installed at:

`/Applications/Soulver.app/Contents/MacOS/CLI/soulver`

If you move Soulver to a different location, or rename it, make sure to modify the ‘installpath’ variable in the workflow’s settings accordingly.
{% endhint %}

### Raycast Extension?

[Raycast](https://www.raycast.com) is a modern launcher & productivity tool that ships with a [powerful natural language calculator](https://www.raycast.com/core-features/calculator) out-of-the-box.

A dedicated Soulver extension would be redundant because you can invoke the Raycast calculator by simply typing a math expression.

You'll be pleasantly surprised to find that Raycast supports many of the natural language phrases you're familiar with from Soulver.


# macOS Services

Use Soulver to evaluate text anywhere in macOS via services.

Select some text in any app, right/control-click and navigate to **Services** > **Calculate with Soulver**.

Six services available:

| Service Name        | Action                                 |
| ------------------- | -------------------------------------- |
| Calculate & Copy    | Copies result to clipboard             |
| Calculate & Replace | Replaces text with result              |
| Calculate & Append  | Appends result to the original text    |
| Insert Total        | Appends the total of a list of items   |
| Insert Average      | Appends the average of a list of items |
| Insert Count        | Appends the count of a list of items   |

![Soulver services in TextEdit](/files/-Lgc6hyznpx7ej1GzCOc)

{% hint style="info" %}
Using the **macOS** **keyboard shortcut system settings**, you can assign a keystroke to these services.
{% endhint %}


# URL Schemes

Interacting with sheets via URLs

Soulver implements the x-callback-url specification, allowing you to trigger calculations via URLs.

### To open a specific sheet

To generate a URL to open a specific sheet, control/right-click on the sheet in the sidebar and choose `Copy Local Link to Open Sheet`.

![](/files/-MjEYTqvko-fkEYRd7zr)

The URL has the following form

`x-soulver://x-callback-url/open?&id=23C644E9-1A57-4BC9-AF0E-1787ACDDBE0E`

### To create a new document and evaluate an expression

`x-soulver://x-callback-url/create?&expression=1+1`

### To evaluate an expression and put the result onto the clipboard

`x-soulver://x-callback-url/calculate?&expression=1+1&to_clipboard=true`

### To append an expression to a specific sheet

`x-soulver://x-callback-url/append-line?&id=FD4A6E87-A74A-4BCF-94CE-AEAE4134AC5D&expression=1+1`


# Terminal (CLI)

You can use the `soulver` command in Terminal to perform calculations using [Soulver's math engine](https://soulver.app/core):

```
$ soulver June 20 + 3 weeks
11 July
```

To install it, go to `Soulver > Integrations > Terminal (Command Line Interface)`

We add the 'soulver' alias in `/usr/local/bin/` to the command line tool inside the main Soulver app bundle.

#### Currency conversions

Currency conversions are supported using the latest rates pre-downloaded by the main Soulver app:

```
$ soulver '$100 in EUR'
€60.46
```

Note that if you want to use the "$" symbol from Terminal, you must **single quote** your expression. This is because the $ symbol is used for variable expansion in the command line

{% hint style="warning" %}
Other live data services such as weather, historical currency conversions, stock rates & knowledge assistant, are **not available** from the command line tool
{% endhint %}

### [Standalone CLI](https://github.com/soulverteam/Soulver-CLI)

We also offer a free standalone CLI that does not require Soulver to be installed.

The easiest way to install it is via homebrew:

`brew install soulver-cli`

More details about this tool are available on [GitHub](https://github.com/soulverteam/Soulver-CLI).

{% hint style="warning" %}
The Soulver Mac app is required to update currency rates for the standalone CLI too.
{% endhint %}


# Tips & Tricks

Handy tips and hidden features to help you get the most out of Soulver.

* [Mac](/documentation/tips-and-tricks/tips-and-tricks-mac) — tips for Soulver on macOS
* [iPad & iPhone](/documentation/tips-and-tricks/tips-and-tricks-ios) — tips for Soulver on iOS and iPadOS


# Mac

### Variable autocomplete

Press escape to show a menu of long variable names, then press return to auto-complete it

![Press escape to autocomplete long variable names](/files/-MjPqIs_jSnFrFOtJmOg)

### Hover for variable value

![Hover your mouse over a variable to see its value](/files/-MjPqcH7MJPggXvaMn0q)

### Scrubbable numbers

Control-click on a number and choose **Scrub** to show the scrubber. Drag left or right on the slider to scrub the number's value up or down.

{% hint style="info" %}
Scrubbing is only available in the Mac version
{% endhint %}

![Number scrubbing in Soulver 3](/files/-MjPrviuaalFxFBZE5d9)

### **What day of the week was it on a particular day?**

Control-click on a date in the answer column to see what date of the week it was or will be on

![Getting the day of the week from a date](/files/-MjPqwkVhmSgr4Wdi7Ua)

### Quickly copying an answer

Hold down the option key, and double click on an answer to quickly copy it to the clipboard.

<div align="left"><figure><img src="/files/clt7JnChTkbAR1dMg5Dg" alt="" width="368"><figcaption><p>Hold down option and double-click on an answer to copy it to the clipboard</p></figcaption></figure></div>

### Copying lines & answers as an image

A quick way of sharing calculations is as an image.

Select some lines and go `Edit > Copy > Copy Lines & Answers` as image. This will place an image onto the clipboard that you can then paste into Messages, Mail, etc.


# iPad & iPhone

### Swipe to switch keyboard (iPhone)

Swipe left/right in the empty text area below the bottom line to quickly switch keyboards.

### Extra keys available via popups (iPhone)

Many keys on the Soulver number pad have popups with additional options.

Press down on the 0 key, for example, for access to k (thousand), M (million) and G (billion) scalars.

<figure><img src="/files/gQGPjZCttR7YZTdPuQdE" alt="" width="375"><figcaption><p>Most keys on the Soulver number pad offer additional options via a popup (hold down for a second on the key to show)</p></figcaption></figure>

### Quick clear line/clear sheet

Hold down on the delete key and pan left to clear the current line, or the current sheet.

<figure><img src="/files/n506AHZlTnWmQu5fblwA" alt="A screenshot of the clear line/sheet popup button" width="375"><figcaption><p>Hold down on the delete key to show the clear popup</p></figcaption></figure>

### Pin currencies in the currency keyboard

By default the currency lists puts your home currency code and the currency code of your current time zone at the start of the list.

To move another currency to the beginning of the list, hold down on the key and choose "Pin".

<div align="left"><figure><img src="/files/cEbKpvZgHbo0GsFZ6iGj" alt="" width="348"><figcaption><p>Pinning frequently used currencies to the start of the list</p></figcaption></figure></div>

### Resize the answer column

Hold down for a second on the answer column (below your last line, but above the floating total) and then drag left/right to expand/contract the answer column.

{% hint style="info" %}
Try this in a new blank sheet – this gesture is recognized when you press down on an empty part of the answer column (not when you press down on an answer cell).
{% endhint %}

### PDF export via contextual menu

Long press on a sheet in the sidebar and choose "Share" to create and share a PDF of the sheet.

<div align="left"><figure><img src="/files/eoGCAQ4yzV7IwVWrOxHs" alt="" width="375"><figcaption><p>Long press on a sheet and choose "Share" to share as a PDF (or a .slvr file)</p></figcaption></figure></div>

### Quick PDF export via screenshot

Take a screenshot and choose "Full Page" to quickly produce a PDF of your open sheet.

### Quickly make a subtotal

Tap the cell under the bottom line to quickly make a subtotal.

<figure><img src="/files/hp3ebxfe1ohlyt6lX7bF" alt="" width="375"><figcaption><p>An empty cell is always present under your final line that lets you quickly insert a subtotal</p></figcaption></figure>

### Quickly copy an answer

Move your cursor to the line whose answer you wish to copy, then tap the answer.

### Quickly insert a variable

Tap the answer of a variable declaration line to quickly insert the variable's name.

### Variable value peeking

Select a variable in the text area to see its value on that line in a popup.

<figure><img src="/files/eZTaLTrjhBUYayvplbRO" alt="" width="375"><figcaption><p>Peeking at a variable value by selecting it</p></figcaption></figure>

### New sheet with heading

Hold down on the + button to make a new sheet with a # heading. The keyboard will conveniently switch to the ABC keyboard, so you can type a heading for your new sheet.

<figure><img src="/files/fzlBWuh9S36XrrqQQPkh" alt="" width="375"><figcaption><p>Make a new sheet with a heading, or duplicate the existing sheet, using a popup menu on the + button</p></figcaption></figure>

### Select previous/next sheet (iPhone)

Hold down on the back button to show a popup menu with options to select the previous sheet.

<figure><img src="/files/OS1avjLsiYYXGn0HWWFh" alt="" width="375"><figcaption><p>Select the previous/next sheet quickly via a popup menu on the back button</p></figcaption></figure>


# General

Core mathematical operations and functions supported in Soulver.

* [Operators](/syntax-reference/general/operators) — arithmetic operators, exponents, and order of operations
* [Rounding](/syntax-reference/general/number-rounding) — round numbers to specific decimal places or increments
* [Averages & Median](/syntax-reference/general/averages-and-median) — calculate averages and medians
* [Logarithms & Roots](/syntax-reference/general/logarithms-and-roots) — logarithms, square roots, and nth roots
* [Trigonometry & Constants](/syntax-reference/general/trigonometry) — trigonometric functions and mathematical constants
* [Conditionals](/syntax-reference/general/conditionals-and-comparisons) — if statements, comparisons, and boolean logic
* [Miscellaneous](/syntax-reference/general/general) — additional functions and features


# Operators

### Operator Symbols

| Operator  | Behaviour                                                 |
| --------- | --------------------------------------------------------- |
| +         | Adds numbers together                                     |
| –         | Subtracts the second number from the first                |
| × or \*   | Multiplies numbers together                               |
| / or ÷    | Divides the first number by the second number             |
| ^ or \*\* | Raises the first number to the power of the second number |
| % or mod  | Gives you the remainder after a division                  |

### Operator Phrases

```
30 plus 20                   | 50
3,000 minus 12               | 2,988
3 multiplied by 4            | 12
1,000 divided by 200         | 5
3 to the power of 2          | 9
remainder of 21 divided by 5 | 1
```


# Rounding

Specify the amount of decimal places to round an answer to. This will override the line's default precision settings.

```
# Rounding to a particular number of decimal places
1/3 to 2 dp                     | 0.33
π to 5 digits                   | 3.14159

# Rounding up and down
5.5 rounded                     | 6
5.5 rounded down                | 5
5.5 rounded up                  | 6

# Rounding to nearest x
37 to nearest 10                | 40
$490 rounded to nearest hundred | $500
2,100 to nearest thousand       | 2,000

# Rounding up and down to nearest x
21 rounded up to nearest 5      | 25
17 rounded down to nearest 3    | 15
```

Or use one of the following functions:

| Function | Name          | Behaviour                                        |
| -------- | ------------- | ------------------------------------------------ |
| round()  | Integer round | Rounds a number to the nearest integer           |
| ceil()   | Ceiling       | Rounds a number up to the nearest whole number   |
| floor()  | Floor         | Rounds a number down to the nearest whole number |


# Averages & Median

Soulver supports performing quick statistical operations on a list of numbers on a single line

<table><thead><tr><th>Statistic</th><th>Example</th><th data-type="number">Answer</th></tr></thead><tbody><tr><td>Total/sum</td><td>total of 3, 4, 7 and 9</td><td>23</td></tr><tr><td>Average/mean</td><td>average of 36, 42, 19 and 81</td><td>44.5</td></tr><tr><td>Count</td><td>count of 1, 2, 3, 4, 5</td><td>5</td></tr><tr><td>Median</td><td>median of 10, 20 and 30</td><td>20</td></tr></tbody></table>


# Logarithms & Roots

### Square & Cubed Root

| Function | Name        | Behaviour                                    |
| -------- | ----------- | -------------------------------------------- |
| sqrt()   | Square Root | Returns the square root of a number (also √) |
| cbrt()   | Cube Root   | Returns the cube root of a number            |

```
sqrt(16)          | 4
cbrt(343)         | 7

square root of 81 | 9
cube root of 27   | 3
```

### Nth root

```
root 5 of 100 | 2.5118864315
```

### Logarithms

| Function       | Name              | Behaviour                                                                                                                 |
| -------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------- |
| exp()          | Exponential       | Calculates the value of e to the power of x, where e is the base of the natural logarithm. exp(1) returns Euler's number. |
| ln()           | Natural logarithm | The natural logarithm of a number is its logarithm to the base of the mathematical constant e.                            |
| log2()         | Base 2 logarithm  | Calculate the base 2 logarithm of a value                                                                                 |
| log(), log10() | Base 10 logarithm | Calculate the base 10 logarithm of a value                                                                                |

### Log to any base

```
log 20 base 4 | 2.1609640474
```

You can also use more natural phrases for this operation:

```
81 is 9 to what power     | 2
27 is 3 to the what power | 3
```

### Factorial & Absolute Value

| Function | Name           | Behaviour                                                                     |
| -------- | -------------- | ----------------------------------------------------------------------------- |
| abs()    | Absolute value | Returns the absolute value of a number (i.e makes a negative number positive) |
| fact()   | Factorial      | Returns the factorial of a given number.                                      |


# Trigonometry & Constants

### Mathematical constants

| Name                   | Value           |
| ---------------------- | --------------- |
| Pi or π                | 3.1415926536…   |
| Tau (2pi)              | 6.2831853072... |
| Phi (the golden ratio) | 1.6180339887... |

### Trigonometric functions

| Function | Name                                           |
| -------- | ---------------------------------------------- |
| sin()    | Calculate the sine of a value                  |
| sinh()   | Calculate the hyperbolic sine of a value       |
| asinh()  | Calculate the hyperbolic arcsine of a value    |
| cos()    | Calculate the cosine of a value                |
| cosh()   | Calculate the hyperbolic cosine of a value     |
| acosh()  | Calculate the hyperbolic arccos of a value     |
| tan()    | Calculate the tangent of a value               |
| tanh()   | Calculate the hyperbolic tangent of a value    |
| atanh()  | Calculate the hyperbolic arctangent of a value |

{% hint style="info" %}
Trigonometric functions take a value in radians by default.

If you want to use degrees, specify this in the parameter, or append "d" to the function name:

sin(90 degrees) = 1.0

sind(90) = 1.0
{% endhint %}

### Inverse trigonometric functions

| Function | Name                                     |
| -------- | ---------------------------------------- |
| asin()   | Calculate the inverse sine of a value    |
| acos()   | Calculate the inverse cosine of a value  |
| atan()   | Calculate the inverse tangent of a value |

{% hint style="info" %}
Inverse trigonometric functions return a value in radians by default.

If you want to use degrees, specify this in the parameter, or append "d" to the function name:

asin(0.5 degrees) = 30º

asind(0.5) = 30º
{% endhint %}


# Conditionals

Like many programming languages, Soulver supports conditionals, (sometimes called "if statements").

In Soulver, a conditional is expressed on a single line:

```
earnings = $45k                                 | $45,000.00

if earnings > $30k then tax = 20% else tax = 5% | 20%

My tax paid: earnings × tax                     | $9,000.00
```

**Declare a variable using a conditional**

```
income = $35k
expenses = $21.5k

profitable = true if income > expenses     | true
insolvent = false unless expenses > income | false
```

**Using "and" and "or" in conditionals**

```
BMI = 24
Underweight = BMI < 18.5                  | false
Healthy Weight = BMI >= 18.5 and BMI < 25 | true
Overweight = BMI >= 25 and BMI < 30       | false
Obese = BMI >= 30                         | false
```

{% hint style="info" %}
&& and || are also supported
{% endhint %}

#### Comparison operators & booleans

Soulver supports standard ["C" style](https://en.wikipedia.org/wiki/C_\(programming_language\)) comparison operators.

A boolean value (`true` or `false`) is returned.

| Name                     | Operator |
| ------------------------ | -------- |
| Equal to                 | ==       |
| Not equal to             | !=       |
| Greater than             | >        |
| Less than                | <        |
| Greater than or equal to | >=       |
| Less than or equal to    | <=       |

You may assign a variable a boolean value directly

```
cost = $500                                 
discount = true                        
if discount then cost = cost - 10%
cost | $450.00
```

You can also use comparison operators outside if statements

```
20km == 20,000 m   | true
11:30 am < 9:30 am | false
```


# Miscellaneous

### Stripping a unit or percentage from a number

To strip the unit, rate or percentage from a number, convert it to a `number` (or decimal)

```
$100 as number    | 100
40/day to decimal | 40
20% as dec        | 0.2
```

### Proportions / Rule of three

Known as the [rule of three](https://en.wikipedia.org/wiki/Cross-multiplication#Rule_of_Three), these phrases help you find the number required to maintain a proportion.

```
6 is to 60 as 8 is to what  | 80
5 is to 10 as what is to 80 | 40
```

These phrases also work with units:

```
5 km is to 500m as 5 cm is to what                | 5 mm
30 minutes is to 3 hours as what is to 60 seconds | 10 seconds
```

### Comparing numbers

min() and max() in Soulver

```
larger of 100 and 200  | 200
greater of 100 and 200 | 200
                                                     
smaller of 5 and 10    | 5
lesser of 5 and 10     | 5
```

### Midpoint

```
half of 175                  | 87.5
midpoint between 150 and 300 | 225
```

### Random numbers

To generate a random integer in a specified range:

```
random number between 1 and 10 | 7
```

To generate a random floating point number, use the range 0 to 1

```
random number between 0 and 1 | 0.4793193723
```

### LCM & GCD

Lowest common multiple and greatest common divisor

```
gcd of 20 and 30 | 10
lcm of 5 and 8   | 40
```

### Permutations & Combinations

```
10 permutation 3 | 720
25 combination 3 | 2,300
```

Or alternatively use a slightly clearer syntax:

```
3 permutations of 10 | 720
3 combinations of 25 | 2,300
```

### Clamp

```
clamp 26 between 5 and 25 | 25
clamp 4 from 5 to 25      | 5
```


# Percentages

Because who can remember if it's times or divide?

#### Getting a percentage of a number

```
10% of 200 | 20
25% × 200  | 50
```

#### Adding a percentage to or taking a percentage off a number

```
200 + 10%   | 220
10% on 200  | 220

200 - 10%   | 180
10% off 200 | 180
```

#### One number as a percentage of/on/off another number

```
20 is 10% of what   | 200
180 is 10% off what | 200
220 is 10% on what  | 200
```

#### Getting the change from one number to another, as a percent

```
50 to 75 is what %    | 50%
40 to 90 as %         | 125%

180 is what % off 200 | 10%
180 is what % on 150  | 20%

20 is what % of 200   | 10%
20 as a % of 200      | 10%

20/200 as %           | 10%
20/200 %              | 10%
```

#### Converting numbers and fractions to percentages

Note that 0.5 is 50%, 2 is 200%.

```
0.35 as %      | 35%
2/5 as percent | 40%
```

### Calculations with mixed percentages & decimals

You can do calculations with pure percentages:

```
10% + 20% | 30%
90% − 40% | 50%
```

And you can add/subtract decimals & fractions to/from percentages. 1.0 is equivalent to 100%.

```
30% + 0.4      | 70%
100% - 1/2     | 50%
100% + 2 + 30% | 330%
```

Note that when multiplying a percentage by a number, the answer will always be a number (not a percentage), regardless of order:

```
50% × 30 | 15
30 × 50% | 15
```

## **Fractions**

You can convert a decimal or a percentage to a fraction:

```
2/10 as fraction | 1/5
50% as fraction  | 1/2
```

The percentage in any of the [percentage](/syntax-reference/percentages) functions can also be replaced with a fraction:

```
2/3 of 600        | 400
50 is 1/5 of what | 250
```

## Multipliers

Format a percentage (or fraction) as a multiplier:

```
20/5 as multiplier | 4x
```

The percentage in any of the [percentage](/syntax-reference/percentages) functions can also be replaced with a multiplier.

Use "x", "multiple" or "multiplier":

```
50 as x of 5         | 10x
2 as multiplier of 1 | 2x
2 as multiplier on 1 | 1x
1 as x off 2         | 0.5x
```

Getting the change from one number to another as a multiplier

```
50 to 75 is what x | 1.5x
20 to 40 as x      | 2x
```


# Units & Conversions

Soulver supports more than 200 units of measurement and 170+ currencies, with natural language conversion between them.

* [Converting Units](/syntax-reference/units-and-conversions/units) — how to convert between units
* [Unit Reference](/syntax-reference/units-and-conversions/unit-reference) — full list of supported units
* [Converting Currencies](/syntax-reference/units-and-conversions/currencies) — live currency conversions
* [Currency Reference](/syntax-reference/units-and-conversions/currency-reference) — full list of supported currencies
* [Rate Calculations](/syntax-reference/units-and-conversions/rates) — working with rates like $/hour or km/day
* [Cooking Calculations](/syntax-reference/units-and-conversions/cooking-and-volume-calculations) — weight-to-volume conversions for cooking


# Converting Units

Use `to` or `in` or `as` to convert into a particular unit.

```
10 km in m                    | 10,000 m
5 hours 30 minutes to seconds | 19,800 seconds
100 pounds in kg              | 45.36 kg
```

Or alternatively:

```
meters in 10 km  | 10,000 m
days in 3 weeks  | 21 days
seconds in a day | 86,400 s
```

{% hint style="success" %}
As a shorthand, you can also type two unit names without values to see the conversion:

"km m" (= 1,000 m)
{% endhint %}

Soulver uses unit symbols (rather than its full name) in the answer column.

Control-click on an answer to see the full unit name

![](/files/RUAGRy1mknHwAZeGI8E4)

## Notes on Units

#### **Mixing Units & Plain Numbers**

When mixing plain numbers with units, the nearest unit will be used automatically. This is called **unit assimilation**.

```
300 + 20 km | 320 km
$20 + 30    | $50.00
```

#### **Adding & Subtracting Mixed Units**

When doing calculations with mixed unit types, **the larger unit wins**:

```
1km + 1,000m | 2 km
```

When units don't share a common base unit, the **last used unit wins:**

```
$200 + €200 | €308.84
```

#### **Multiplying Units**

Soulver only supports units that have been pre-defined in its math engine, not compound units that do "not exist":

```
10m × 10m       | 100 m² // area, a supported unit type
3 kg × 3 liters | // Not "9 kg liters", this unit does not exist
```

Soulver will make an implicit rate when a supported unit cannot be created through multiplication:

```
$30 × 4 days | $120.00
// the above is interpreted as $30/day × 4 days
```

#### **Creating Custom Units**

You can add additional units to Soulver in the `Calculator > Custom Units` settings.

{% hint style="info" %}
Custom units are defined in terms of an existing units.

You cannot add new unit categories to Soulver (yet).
{% endhint %}


# Unit Reference

Soulver supports more than 200 common units of measurement.

### General Units

{% tabs %}
{% tab title="Time" %}

| Name         | Symbol | Definition        |
| ------------ | ------ | ----------------- |
| Nanoseconds  | ns     | 1 second = 1G ns  |
| Microseconds | µs     | 1 second = 1M µs  |
| Milliseconds | ms     | 1 second = 1k ms  |
| Second       | s, sec | Base unit of time |
| Minute       | min    | 60 seconds        |
| Hour         | h, hr  | 60 minutes        |
| Day          | day    | 24 hours          |
| Week         | wk     | 7 days            |
| Month        | mo     | 30.436875 days    |
| Year         | yr     | 365.2425 days     |
| {% endtab %} |        |                   |

{% tab title="Length" %}
**Metric**

| Unit Name   | Unit Symbol | Definition                                   |
| ----------- | ----------- | -------------------------------------------- |
| Nanometers  | nm          | One billionth of a meter                     |
| Micrometers | µm          | One millionth of a meter                     |
| Millimeters | mm          | One thousandth of a meter                    |
| Centimeters | cm          | One hundredth of a meter                     |
| Decimeters  | dm          | One tenth of a meter                         |
| Meters      | m           | The base unit of length in the metric system |
| Kilometers  | km          | 1000 meters                                  |

**Imperial**

| Unit Name | Unit Symbol | Definition            |
| --------- | ----------- | --------------------- |
| Furlongs  | fur         | 1 furlong = 220 yards |
| Miles     | mi          | 1 mile = 1,760 yards  |
| Yards     | yd          | 1 yard = 3 feet       |
| Feet      | ft or '     | 1 foot = 12 inches    |
| Inches    | "           |                       |

**Space & Sea**

| Unit Name      | Unit Symbol | Definition                                                                                                                                       |
| -------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| Fathoms        | ftm         | A unit of length equal to 6 feet (1.8288 meters), commonly used to measure the depth of water.                                                   |
| Nautical Miles | NM          | A unit of distance used in maritime and air navigation, equal to one minute of latitude or approximately 1.15078 miles (1.852 kilometers).       |
| Light Years    | ly          | A unit of astronomical distance equivalent to the distance that light travels in one year, about 5.88 trillion miles (9.46 trillion kilometers). |
| {% endtab %}   |             |                                                                                                                                                  |

{% tab title="Area" %}
**Metric**

| Unit Name          | Unit Symbol    | Definition                                     |
| ------------------ | -------------- | ---------------------------------------------- |
| Square nanometers  | nm², nm^2, nm2 | Area of a square with sides of one nanometer.  |
| Square micrometers | µm², µm^2, µm2 | Area of a square with sides of one micrometer. |
| Square millimeters | mm², mm^2, mm2 | Area of a square with sides of one millimeter. |
| Square centimeters | cm², cm^2, cm2 | Area of a square with sides of one centimeter. |
| Square meters      | m², m^2, m2    | Area of a square with sides of one meter.      |
| Square kilometers  | km², km^2, km2 | Area of a square with sides of one kilometer.  |

**Imperial**

| Unit Name     | Unit Symbol          | Definition                                                      |
| ------------- | -------------------- | --------------------------------------------------------------- |
| Square Inches | in², sqin, in^2, in2 | A unit of area equal to a square measuring 1 inch on each side. |
| Square Feet   | ft², sqft, ft^2, ft2 | A unit of area equal to a square measuring 1 foot on each side. |
| Square Yard   | yd², sqyd, yd^2, yd2 | A unit of area equal to a square measuring 1 yard on each side. |
| Square Mile   | mi², sqmi, mi^2, mi2 | A unit of area equal to a square measuring 1 mile on each side. |

**Land**

| Unit Name    | Unit Symbol | Definition                                                                  |
| ------------ | ----------- | --------------------------------------------------------------------------- |
| Ares         | a           | A metric unit of area equal to 100 square meters.                           |
| Hectare      | ha          | A metric unit of area equal to 10,000 square meters.                        |
| Acre         | ac          | A unit of area commonly used in the US and UK, equal to 43,560 square feet. |
| {% endtab %} |             |                                                                             |

{% tab title="Volume" %}
**Metric**

| Unit Name         | Unit Symbol | Definition                            |
| ----------------- | ----------- | ------------------------------------- |
| Milliliters       | mL          | 1 mL = 1e-3 liters                    |
| Liters            | L           | Base unit for measuring liquid volume |
| Kiloliters        | kL          | 1 kL = 1e3 liters                     |
| Megaliters        | ML          | 1 ML = 1e6 liters                     |
| Cubic Micrometers | µm³         | 1 µm³ = 1e-18 cubic meters            |
| Cubic Millimeters | mm³         | 1 mm³ = 1e-9 cubic meters             |
| Cubic Centimeters | cm³         | 1 cm³ = 1e-6 cubic meters             |
| Cubic Kilometers  | km³         | 1 km³ = 1e9 cubic meters              |
| Cubic Meters      | m³          | Base unit for measuring volume        |
| Metric Cups       | cup         | 1 cup = 250 milliliters               |

**Imperial**

| Unit Name    | Unit Symbol             | Definition                                                       |
| ------------ | ----------------------- | ---------------------------------------------------------------- |
| Cubic Inches | in³, in3, in^3          | A measure of volume equivalent to a cube with edges of one inch. |
| Cubic Feet   | ft³, cuft, ft3, ft^3    | A measure of volume equivalent to a cube with edges of one foot. |
| Cubic Yards  | yd³, cuyd, yd3, yd^3    | A measure of volume equivalent to a cube with edges of one yard. |
| Cubic Miles  | mi³, mi3, mi^3, miles^3 | A measure of volume equivalent to a cube with edges of one mile. |

**US Customary**

| Unit Name    | Unit Symbol | Definition                                   |
| ------------ | ----------- | -------------------------------------------- |
| Gallons      | gal         | A unit of liquid capacity equal to 4 quarts. |
| Quarts       | qt          | A unit of liquid capacity equal to 2 pints.  |
| Tablespoons  | tbsp        | A unit of volume equal to 3 teaspoons.       |
| Teaspoons    | tsp         | A unit of volume often used in cooking.      |
| Cups         | cup         | A unit of volume equal to 8 fluid ounces.    |
| Pints        | pint        | A unit of volume equal to 16 fluid ounces.   |
| Fluid ounces | fl oz       | A unit of volume used for liquid measures.   |

{% hint style="info" %}
In Soulver's Region Settings you can choose whether US customary or imperial measurements are used for these volume units.

Note that a "cup" is always the US customary cup. Use "metric cup" for the cup unit commonly used in Australia, NZ and Canada (250ml).
{% endhint %}

**Other**

| Unit Name    | Unit Symbol | Definition                                                                                                                               |
| ------------ | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| Bushels      | bsh         | A unit of volume typically used for dry goods                                                                                            |
| Acre feet    | af          | A volume unit, typically used for large-scale water resources, defined as the volume of one acre of surface area to a depth of one foot. |
| {% endtab %} |             |                                                                                                                                          |

{% tab title="Mass" %}
**Metric**

| Unit Name   | Unit Symbol | Definition                                                       |
| ----------- | ----------- | ---------------------------------------------------------------- |
| Nanogram    | ng          | A unit of mass equal to one billionth of a gram.                 |
| Microgram   | mcg         | A unit of mass equal to one millionth of a gram.                 |
| Milligram   | mg          | A unit of mass equal to one thousandth of a gram.                |
| Gram        | g           | A unit of mass equal to one thousandth of a kilogram.            |
| Kilogram    | kg          | The base unit of mass in the International System of Units (SI). |
| Metric Tons | t           | A unit of mass equal to 1,000 kilograms.                         |

**Imperial**

| Unit Name  | Unit Symbol | Definition                                                                     |
| ---------- | ----------- | ------------------------------------------------------------------------------ |
| Ounces     | oz          | A unit of weight equal to 1/16th of a pound (lb).                              |
| Pounds     | lb          | A unit of weight by which various items are measured, equal to 16 ounces (oz). |
| Stones     | st          | A unit of weight equal to 14 pounds (lb).                                      |
| Short Tons | ton         | A unit of weight equal to 2,000 pounds (lb).                                   |

**Precious Metals**

| Unit Name    | Unit Symbol | Definition                                                                                 |
| ------------ | ----------- | ------------------------------------------------------------------------------------------ |
| Ounces Troy  | oz t        | A unit of imperial measure used for weighing precious metals, equivalent to 31.1035 grams. |
| Carats       | ct          | A unit of mass used for gemstones, equivalent to 200 milligrams or 0.2 grams.              |
| {% endtab %} |             |                                                                                            |

{% tab title="Speed" %}

| Unit Name           | Unit Symbol | Definition                                                                  |
| ------------------- | ----------- | --------------------------------------------------------------------------- |
| Meters per second   | m/s         | A unit of speed describing the distance in meters traveled in one second.   |
| Miles per hour      | mph         | A unit of speed expressing the number of statute miles covered in one hour. |
| Kilometers per hour | km/h        | A unit of speed defining the number of kilometers traveled in one hour.     |
| Knots               | kn          | A unit of speed equal to one nautical mile per hour.                        |
| {% endtab %}        |             |                                                                             |
| {% endtabs %}       |             |                                                                             |

### Math & Science Units

{% tabs %}
{% tab title="Angle" %}

| Unit Name | Unit Symbol | Definition                                                                                                 |
| --------- | ----------- | ---------------------------------------------------------------------------------------------------------- |
| Radians   | rad         | The angle subtended at the center of a circle by an arc whose length is equal to the radius of the circle. |
| Degrees   | °           | A unit of angle measurement equal to 1/360 of a full rotation.                                             |

{% hint style="info" %}
Note that trigonometric functions assume radians by default.

sin (90) = 0.8939966636

sin (90 degrees) = 1
{% endhint %}
{% endtab %}

{% tab title="Temperature" %}

| Unit Name    | Unit Symbol                 | Definition                                                                      |
| ------------ | --------------------------- | ------------------------------------------------------------------------------- |
| Fahrenheit   | °F, ºF, F, degF, fahrenheit | A temperature scale where water freezes at 32 degrees and boils at 212 degrees. |
| Celsius      | °C, ºC, C, degC, celsius    | A temperature scale where water freezes at 0 degrees and boils at 100 degrees.  |
| {% endtab %} |                             |                                                                                 |

{% tab title="Frequency" %}

| Unit Name    | Unit Symbol | Definition                                       |
| ------------ | ----------- | ------------------------------------------------ |
| Nanohertz    | nHz         | One billionth of a hertz, or 1/1,000,000,000 Hz. |
| Microhertz   | µHz         | One millionth of a hertz, or 1/1,000,000 Hz.     |
| Millihertz   | mHz         | One thousandth of a hertz, or 1/1,000 Hz.        |
| Hertz        | Hz          | One cycle per second                             |
| Kilohertz    | kHz         | One thousand hertz, or 1,000 Hz.                 |
| Megahertz    | MHz         | One million hertz, or 1,000,000 Hz.              |
| Gigahertz    | GHz         | One billion hertz, or 1,000,000,000 Hz.          |
| Terahertz    | THz         | One trillion hertz, or 1,000,000,000,000 Hz.     |
| {% endtab %} |             |                                                  |

{% tab title="Energy" %}

| Unit Name      | Unit Symbol | Definition                                                |
| -------------- | ----------- | --------------------------------------------------------- |
| Terawatt hours | TWh         | Equal to 1 trillion watt hours or 10^12 watt hours.       |
| Gigawatt hours | GWh         | Equal to 1 billion watt hours or 10^9 watt hours.         |
| Megawatt hours | MWh         | Equal to 1 million watt hours or 10^6 watt hours.         |
| Kilowatt hours | kWh         | Equal to 1,000 watt hours or 10^3 watt hours.             |
| Watt hours     | Wh          | A unit of energy equal to one watt of power for one hour. |
| Watt minutes   | W m         | Equal to 60 watt seconds.                                 |
| Watt seconds   | W s         | Basic unit of energy, equal to 1 joule.                   |
| Kilocalories   | kCal        | Approx. equal to 4.184 kilojoules.                        |
| Calories       | cal         | Approx. equal to 4.184 joules.                            |
| Gigajoules     | GJ          | Equal to 1 billion joules or 10^9 joules.                 |
| Megajoules     | MJ          | Equal to 1 million joules or 10^6 joules.                 |
| Kilojoules     | kJ          | Equal to 1,000 joules or 10^3 joules.                     |
| Joules         | J           | The SI unit of work or energy                             |
| {% endtab %}   |             |                                                           |

{% tab title="Power" %}

| Unit Name     | Unit Symbol | Definition                               |
| ------------- | ----------- | ---------------------------------------- |
| Horsepower    | hp          | A unit of power equivalent to 746 W      |
| Milliwatts    | mW          | A unit of power equivalent to 0.001 W    |
| Watts         | W           | The base unit of power in the SI system. |
| Kilowatts     | kW          | A unit of power equivalent to 10³ W      |
| Megawatts     | MW          | A unit of power equivalent to 10⁶ W      |
| Gigawatts     | GW          | A unit of power equivalent to 10⁹ W      |
| Terawatts     | TW          | A unit of power equivalent to 10¹² W     |
| {% endtab %}  |             |                                          |
| {% endtabs %} |             |                                          |

### Computer-related Units

{% tabs %}
{% tab title="Data Storage" %}
{% hint style="info" %}
Units like GB, MB, kB, etc are in base 10 (1 GB = 1000 MB)

Units like GiB, MiB, KiB, etc are in base 2 (1 GiB = 1024 MiB)

See [here](https://en.wikipedia.org/wiki/Gigabyte) for more information on the SI standard with regards to units of data storage.
{% endhint %}

* Bytes (B)
* Bits (bit)
* Yottabytes (YB)
* Zettabytes (ZB)
* Exabytes (EB)
* Petabytes (PB)
* Terabytes (TB)
* Gigabytes (GB)
* Megabytes (MB)
* Kilobytes (kB)
* Yottabits (Yb)
* Zettabits (Zb)
* Exabits (Eb)
* Petabits (Pb)
* Terabits (Tb)
* Gigabits (Gb)
* Megabits (Mb)
* Kilobits (kb)
* Yobibytes (YiB)
* Zebibytes (ZiB)
* Exbibytes (EiB)
* Pebibytes (PiB)
* Tebibytes (TiB)
* Gibibytes (GiB)
* Mebibytes (MiB)
* Kibibytes (KiB)
* Yobibits (Yib)
* Zebibits (Zib)
* Exbibits (Eib)
* Pebibits (Pib)
* Tebibits (Tib)
* Gibibits (Gib)
* Mebibits (Mib)
* Kibibits (Kib)
  {% endtab %}

{% tab title="Data Transfer" %}

* Bytes per second (Bps)
* Bits per second (bps)
* Yottabytes per second (YBps)
* Zettabytes per second (ZBps)
* Exabytes per second (EBps)
* Petabytes per second (PBps)
* Terabytes per second (TBps)
* Gigabytes per second (GBp)
* Megabytes per second (MBp)
* Kilobytes per second (KBp)
* Yottabits per second (Ybps)
* Zettabits per second (Zbps)
* Exabits per second (Ebps)
* Petabits per second (Pbp)
* Terabits per second (Tbp)
* Gigabits per second (Gbp)
* Megabits per second (Mbp)
* Kilobits per second (Kbp)
* Yobibytes per second (YiBps)
* Zebibytes per second (ZiBps)
* Exbibytes per second (EiBps)
* Pebibytes per second (PiBps)
* Tebibytes per second (TiBps)
* Gibibytes per second (GiBps)
* Mebibytes per second (MiBps)
* Kibibytes per second (KiBps)
* Yobibits per second (Yibps)
* Zebibits per second (Zibps)
* Exbibits per second (Eibps)
* Pebibits per second (Pibps)
* Tebibits per second (Tibps)
* Gibibits per second (Gibps)
* Mebibits per second (Mibps)
* Kibibits per second (Kibps)
  {% endtab %}

{% tab title="CSS" %}

* Pixel (px) - defined as 1⁄96 inch (0.26 mm)
* Em
* Pt

{% hint style="info" %}
Note that CSS units are units of length, so you can convert them to and from other units of length, like inches
{% endhint %}
{% endtab %}
{% endtabs %}


# Converting Currencies

To perform a currency conversion, use the currency's 3 letter code, and convert using `in` or `to` or `as`:

```
10 USD in EUR   | 8.88 EUR
20 GBP as AUD   | 36.29 AUD
1500 RUB to DKK | 110.07 DKK
```

Soulver automatically downloads the latest exchange rates every hour. You can manually trigger a rate refresh from the `Settings` > `Currencies` pane.

### Historical currency conversions

You can perform a historical currency conversion which uses the rates on a particular date in the past:

<pre><code><strong>10 USD in EUR on March 20                | €8.37
</strong>1 BTC in USD one year ago | $10,230.82
</code></pre>

{% hint style="info" %}
Historical currency rates are available for real-world currencies (back to 1999), and also for Bitcoin (back to 2013).
{% endhint %}

### Currency conversions with custom rates

You can manually specify the rate you'd like used in a currency conversion:

<pre><code><strong>50 EUR in USD at 1.05 USD/EUR            | $52.50
</strong>50 EUR in RUB @ 80 RUB/EUR | ₽4,000.00
</code></pre>

### **Currencies that use the dollar symbol ($)**

Soulver respects your Mac's region settings to determine which currency to use for the $ symbol.

For example, if you live in Australia, $ will be tied to "AUD", rather than the default ("USD").

The following abbreviations are also supported:

<table data-full-width="false"><thead><tr><th>Symbol</th><th>Code</th><th>Currency</th></tr></thead><tbody><tr><td>US$</td><td>USD</td><td>United States Dollars</td></tr><tr><td>NZ$</td><td>NZD</td><td>New Zealand Dollars</td></tr><tr><td>C$, CA$</td><td>CAD</td><td>Canadian Dollars</td></tr><tr><td>A$, AU$</td><td>AUD</td><td>Australian Dollars</td></tr><tr><td>S$</td><td>SGD</td><td>Singapore Dollars</td></tr><tr><td>NT$</td><td>TWD</td><td>Taiwanese Dollars</td></tr><tr><td>HK$</td><td>HKD</td><td>Hong Kong Dollars</td></tr><tr><td>R$</td><td>BRL</td><td>Brazilian Reals</td></tr></tbody></table>

{% hint style="info" %}
You can customize the symbols for every currency in

`Settings > Calculator > Currency Symbols`.
{% endhint %}


# Currency Reference

Soulver supports more than 190 real-world currencies, crypto-currencies & commodities

{% tabs %}
{% tab title="Real-world currencies" %}

<table><thead><tr><th width="296">Code</th><th>Name</th></tr></thead><tbody><tr><td>AED</td><td>United Arab Emirates Dirham</td></tr><tr><td>AFN</td><td>Afghan Afghani</td></tr><tr><td>ALL</td><td>Albanian Lek</td></tr><tr><td>AMD</td><td>Armenian Dram</td></tr><tr><td>ANG</td><td>Netherlands Antillean Guilder</td></tr><tr><td>AOA</td><td>Angolan Kwanza</td></tr><tr><td>ARS</td><td>Argentine Peso</td></tr><tr><td>AUD</td><td>Australian Dollar</td></tr><tr><td>AWG</td><td>Aruban Florin</td></tr><tr><td>AZN</td><td>Azerbaijani Manat</td></tr><tr><td>BAM</td><td>Bosnia-Herzegovina Convertible Mark</td></tr><tr><td>BBD</td><td>Barbadian Dollar</td></tr><tr><td>BDT</td><td>Bangladeshi Taka</td></tr><tr><td>BGN</td><td>Bulgarian Lev</td></tr><tr><td>BHD</td><td>Bahraini Dinar</td></tr><tr><td>BIF</td><td>Burundian Franc</td></tr><tr><td>BMD</td><td>Bermudan Dollar</td></tr><tr><td>BND</td><td>Brunei Dollar</td></tr><tr><td>BOB</td><td>Bolivian Boliviano</td></tr><tr><td>BRL</td><td>Brazilian Real</td></tr><tr><td>BSD</td><td>Bahamian Dollar</td></tr><tr><td>BTN</td><td>Bhutanese Ngultrum</td></tr><tr><td>BWP</td><td>Botswanan Pula</td></tr><tr><td>BYN</td><td>Belarusian Ruble</td></tr><tr><td>BZD</td><td>Belize Dollar</td></tr><tr><td>CAD</td><td>Canadian Dollar</td></tr><tr><td>CDF</td><td>Congolese Franc</td></tr><tr><td>CHF</td><td>Swiss Franc</td></tr><tr><td>CLF</td><td>Chilean Unit of Account (UF)</td></tr><tr><td>CLP</td><td>Chilean Peso</td></tr><tr><td>CNY</td><td>Chinese Yuan</td></tr><tr><td>COP</td><td>Colombian Peso</td></tr><tr><td>CRC</td><td>Costa Rican Colón</td></tr><tr><td>CUC</td><td>Cuban Convertible Peso</td></tr><tr><td>CVE</td><td>Cape Verdean Escudo</td></tr><tr><td>CZK</td><td>Czech Republic Koruna</td></tr><tr><td>DJF</td><td>Djiboutian Franc</td></tr><tr><td>DKK</td><td>Danish Krone</td></tr><tr><td>DOP</td><td>Dominican Peso</td></tr><tr><td>DZD</td><td>Algerian Dinar</td></tr><tr><td>EGP</td><td>Egyptian Pound</td></tr><tr><td>ERN</td><td>Eritrean Nakfa</td></tr><tr><td>ETB</td><td>Ethiopian Birr</td></tr><tr><td>EUR</td><td>Euro</td></tr><tr><td>FJD</td><td>Fijian Dollar</td></tr><tr><td>FKP</td><td>Falkland Islands Pound</td></tr><tr><td>GBP</td><td>British Pound Sterling</td></tr><tr><td>GEL</td><td>Georgian Lari</td></tr><tr><td>GGP</td><td>Guernsey Pound</td></tr><tr><td>GHS</td><td>Ghanaian Cedi</td></tr><tr><td>GIP</td><td>Gibraltar Pound</td></tr><tr><td>GMD</td><td>Gambian Dalasi</td></tr><tr><td>GNF</td><td>Guinean Franc</td></tr><tr><td>GTQ</td><td>Guatemalan Quetzal</td></tr><tr><td>GYD</td><td>Guyanaese Dollar</td></tr><tr><td>HKD</td><td>Hong Kong Dollar</td></tr><tr><td>HNL</td><td>Honduran Lempira</td></tr><tr><td>HRK</td><td>Croatian Kuna</td></tr><tr><td>HTG</td><td>Haitian Gourde</td></tr><tr><td>HUF</td><td>Hungarian Forint</td></tr><tr><td>IDR</td><td>Indonesian Rupiah</td></tr><tr><td>ILS</td><td>Israeli New Sheqel</td></tr><tr><td>IMP</td><td>Manx pound</td></tr><tr><td>INR</td><td>Indian Rupee</td></tr><tr><td>IQD</td><td>Iraqi Dinar</td></tr><tr><td>IRR</td><td>Iranian Rial</td></tr><tr><td>ISK</td><td>Icelandic Króna</td></tr><tr><td>JEP</td><td>Jersey Pound</td></tr><tr><td>JMD</td><td>Jamaican Dollar</td></tr><tr><td>JOD</td><td>Jordanian Dinar</td></tr><tr><td>JPY</td><td>Japanese Yen</td></tr><tr><td>KES</td><td>Kenyan Shilling</td></tr><tr><td>KGS</td><td>Kyrgystani Som</td></tr><tr><td>KHR</td><td>Cambodian Riel</td></tr><tr><td>KMF</td><td>Comorian Franc</td></tr><tr><td>KPW</td><td>North Korean Won</td></tr><tr><td>KRW</td><td>South Korean Won</td></tr><tr><td>KWD</td><td>Kuwaiti Dinar</td></tr><tr><td>KYD</td><td>Cayman Islands Dollar</td></tr><tr><td>KZT</td><td>Kazakhstani Tenge</td></tr><tr><td>LAK</td><td>Laotian Kip</td></tr><tr><td>LBP</td><td>Lebanese Pound</td></tr><tr><td>LKR</td><td>Sri Lankan Rupee</td></tr><tr><td>LRD</td><td>Liberian Dollar</td></tr><tr><td>LSL</td><td>Lesotho Loti</td></tr><tr><td>LTL</td><td>Lithuanian Litas</td></tr><tr><td>LVL</td><td>Latvian Lats</td></tr><tr><td>LYD</td><td>Libyan Dinar</td></tr><tr><td>MAD</td><td>Moroccan Dirham</td></tr><tr><td>MDL</td><td>Moldovan Leu</td></tr><tr><td>MGA</td><td>Malagasy Ariary</td></tr><tr><td>MKD</td><td>Macedonian Denar</td></tr><tr><td>MMK</td><td>Myanma Kyat</td></tr><tr><td>MNT</td><td>Mongolian Tugrik</td></tr><tr><td>MOP</td><td>Macanese Pataca</td></tr><tr><td>MRU</td><td>Mauritanian Ouguiya</td></tr><tr><td>MUR</td><td>Mauritian Rupee</td></tr><tr><td>MVR</td><td>Maldivian Rufiyaa</td></tr><tr><td>MWK</td><td>Malawian Kwacha</td></tr><tr><td>MXN</td><td>Mexican Peso</td></tr><tr><td>MYR</td><td>Malaysian Ringgit</td></tr><tr><td>MZN</td><td>Mozambican Metical</td></tr><tr><td>NAD</td><td>Namibian Dollar</td></tr><tr><td>NGN</td><td>Nigerian Naira</td></tr><tr><td>NIO</td><td>Nicaraguan Córdoba</td></tr><tr><td>NOK</td><td>Norwegian Krone</td></tr><tr><td>NPR</td><td>Nepalese Rupee</td></tr><tr><td>NZD</td><td>New Zealand Dollar</td></tr><tr><td>OMR</td><td>Omani Rial</td></tr><tr><td>PAB</td><td>Panamanian Balboa</td></tr><tr><td>PEN</td><td>Peruvian Nuevo Sol</td></tr><tr><td>PGK</td><td>Papua New Guinean Kina</td></tr><tr><td>PHP</td><td>Philippine Peso</td></tr><tr><td>PKR</td><td>Pakistani Rupee</td></tr><tr><td>PLN</td><td>Polish Zloty</td></tr><tr><td>PYG</td><td>Paraguayan Guarani</td></tr><tr><td>QAR</td><td>Qatari Rial</td></tr><tr><td>RON</td><td>Romanian Leu</td></tr><tr><td>RSD</td><td>Serbian Dinar</td></tr><tr><td>RUB</td><td>Russian Ruble</td></tr><tr><td>RWF</td><td>Rwandan Franc</td></tr><tr><td>SAR</td><td>Saudi Riyal</td></tr><tr><td>SBD</td><td>Solomon Islands Dollar</td></tr><tr><td>SCR</td><td>Seychellois Rupee</td></tr><tr><td>SDG</td><td>Sudanese Pound</td></tr><tr><td>SEK</td><td>Swedish Krona</td></tr><tr><td>SGD</td><td>Singapore Dollar</td></tr><tr><td>SHP</td><td>Saint Helena Pound</td></tr><tr><td>SLL</td><td>Sierra Leonean Leone</td></tr><tr><td>SOS</td><td>Somali Shilling</td></tr><tr><td>SRD</td><td>Surinamese Dollar</td></tr><tr><td>STD</td><td>São Tomé and Príncipe Dobra</td></tr><tr><td>SVC</td><td>Salvadoran Colón</td></tr><tr><td>SYP</td><td>Syrian Pound</td></tr><tr><td>SZL</td><td>Swazi Lilangeni</td></tr><tr><td>THB</td><td>Thai Baht</td></tr><tr><td>TJS</td><td>Tajikistani Somoni</td></tr><tr><td>TMT</td><td>Turkmenistani Manat</td></tr><tr><td>TND</td><td>Tunisian Dinar</td></tr><tr><td>TOP</td><td>Tongan Paʻanga</td></tr><tr><td>TRY</td><td>Turkish Lira</td></tr><tr><td>TTD</td><td>Trinidad and Tobago Dollar</td></tr><tr><td>TWD</td><td>New Taiwan Dollar</td></tr><tr><td>TZS</td><td>Tanzanian Shilling</td></tr><tr><td>UAH</td><td>Ukrainian Hryvnia</td></tr><tr><td>UGX</td><td>Ugandan Shilling</td></tr><tr><td>USD</td><td>United States Dollar</td></tr><tr><td>UYU</td><td>Uruguayan Peso</td></tr><tr><td>UZS</td><td>Uzbekistan Som</td></tr><tr><td>VEF</td><td>Venezuelan Bolívar Fuerte</td></tr><tr><td>VND</td><td>Vietnamese Dong</td></tr><tr><td>VUV</td><td>Vanuatu Vatu</td></tr><tr><td>WST</td><td>Samoan Tala</td></tr><tr><td>XAF</td><td>CFA Franc BEAC</td></tr><tr><td>XCD</td><td>East Caribbean Dollar</td></tr><tr><td>XDR</td><td><a href="https://en.wikipedia.org/wiki/Special_drawing_rights">IMF Special Drawing Rights</a></td></tr><tr><td>XOF</td><td>CFA Franc BCEAO</td></tr><tr><td>XPF</td><td>CFP Franc</td></tr><tr><td>YER</td><td>Yemeni Rial</td></tr><tr><td>ZAR</td><td>South African Rand</td></tr><tr><td>ZMW</td><td>Zambian Kwacha</td></tr><tr><td>ZWL</td><td>Zimbabwean Dollar</td></tr></tbody></table>
{% endtab %}

{% tab title="Crypto-currencies" %}

<table data-header-hidden><thead><tr><th width="209.57142857142856">Code</th><th>Name</th></tr></thead><tbody><tr><td>Code</td><td>Name</td></tr><tr><td>BTC</td><td>Bitcoin</td></tr><tr><td>Satoshi</td><td>One hundred millionth of a Bitcoin</td></tr><tr><td>ETH</td><td>Ethereum</td></tr><tr><td>Wei</td><td>0.000000000000000001 Ether</td></tr><tr><td>Gwei</td><td>0.000000001 Ether</td></tr><tr><td>ADA</td><td>Cardano</td></tr><tr><td>AVAX</td><td>Avalanche</td></tr><tr><td>BCH</td><td>Bitcoin Cash</td></tr><tr><td>BNB</td><td>Binance Coin</td></tr><tr><td>BSV</td><td>Bitcoin SV</td></tr><tr><td>DASH</td><td>Dash</td></tr><tr><td>DOGE</td><td>Dogecoin</td></tr><tr><td>DOT</td><td>Polkadot</td></tr><tr><td>EOS</td><td>EOS</td></tr><tr><td>ETC</td><td>Ethereum Classic</td></tr><tr><td>LTC</td><td>Litecoin</td></tr><tr><td>LUNA</td><td>Terra</td></tr><tr><td>POL (formally MATIC)</td><td>Polygon</td></tr><tr><td>NEO</td><td>NEO</td></tr><tr><td>SHIB</td><td>Shiba Inu</td></tr><tr><td>SOL</td><td>Solana</td></tr><tr><td>TRX</td><td>TRON</td></tr><tr><td>USDT</td><td>Tether</td></tr><tr><td>XLM</td><td>Stellar</td></tr><tr><td>XMR</td><td>Monero</td></tr><tr><td>XRP</td><td>Ripple</td></tr></tbody></table>
{% endtab %}

{% tab title="Commodities" %}

<table><thead><tr><th width="300">Code</th><th>Name</th></tr></thead><tbody><tr><td>XAG</td><td>Silver (troy ounce)</td></tr><tr><td>XAU</td><td>Gold (troy ounce)</td></tr></tbody></table>
{% endtab %}
{% endtabs %}


# Rate Calculations

First-rate rate handling

A rate is a quantity of one unit in relation to another

```
3 hours / day | 3 hours/day
$99 per week  | $99.00/week
```

Soulver also supports rates with no unit

```
30 bottles / week  | 30/week
30/week as / month | 130/month
```

You can add/subtract rates

```
$20/day + $300/week | $440.00/week
```

And convert them into other compatible forms

```
€30/day in €/month | €913.11/month
```

A simplified rate is also produced from a division of units of different kinds:

```
90 km / 3 day | 30 km/day
```

{% hint style="info" %}
Mathematics requires that units of rates in the same unit category cancel each other out when dividing:

3 hours / 3 days = 0.0416667

This is essentially the first number as a proportion of the second number (10,800 s / 259,200 s), expressed as a decimal.

It can be more helpful to simplify the rate without cancelling units. If you would rather express the proportion as a simplified rate, you can specify the format explicitly:

3 hours / 3 days as hour/day = 1 hour/day
{% endhint %}

### Multiplying rates

```
$50/week × 12 weeks  | $600.00
$24 a day for a year | $8,765.82
500/day to / year    | 182,621.25/year
```

### Handy rate-related phrases

Here are some convenient built-in phrases for doing calculations with rates

```
30 hours at $30/hour | $900.00
$500 at $20/hour     | 25 hours
```


# Cooking Calculations

### Cooking substance volume <> mass conversions

It's possible to convert between volume and mass if you know the density of the substance involved.

Soulver includes about 200 substances commonly used for cooking.

```
300g butter in cups         | 1.32 cup
10 cups olive oil in grams  | 2,160 g
100g nutella in tablespoons | 5.37 tbsp
```

### Measurement systems

Units of volume have different definitions depending on what country you're in. Soulver supports three systems of measurement:

* US Customary (the default),
* Imperial
* Metric

![Choose your preferred measurement system from the Region preferences](/files/-MjFF9mXHmZuIp9Rgn0P)

This setting affects volume units, such as pints, quarts, gallons, teaspoons, tablespoons, and fluid ounces (fl oz).


# Dates

Soulver understands dates in natural language and can perform a wide range of calendar calculations.

* [Calendar Calculations](/syntax-reference/dates/dates-and-times) — calculate differences between dates, add/subtract time from dates
* [Workdays & Weekdays](/syntax-reference/dates/workdays-and-weekdays) — calculate business days and weekday-only intervals
* [Timestamps & ISO8601](/syntax-reference/dates/timestamps-and-iso8601) — convert between dates, Unix timestamps, and ISO8601 format


# Calendar Calculations

No more counting days on a calendar!

### Adding or subtracting time from dates

```
10 June + 3 weeks                     | 1 July
April 1, 2019 − 3 months 5 days       | 27 December 2018

12/02/1988 + 32 years                 | 12 February 2020
01.05.2005 + 3 years 2 months 3 weeks | 22 July 2008

3 weeks after March 14, 2019          | 4 April 2019
28 days before March 12               | 12 February
2 months 3 days after June 5          | 8 August

yesterday - 8 weeks 3 days            | 12 July
Yesterday + 1 week                    | 11 June
```

### Getting a date relative to the present

```
today + 3 weeks | 1 October
now − 1 month   | 5 May

4 days from now | 14 September
3 days ago      | 7 September
```

### **Find the amount of time between two dates**

```
January 10 - February 5         | 3 weeks 5 days

3 March to 30 May               | 2 months 3 weeks 6 days

days since July 15              | 57 days
days till December 25           | 106 days
days between 3 March and 30 May | 88 days

1978 to 2021                    | 42 years

```

{% hint style="info" %}
Intervals of time are calculated from midday on the first date to midday on the last date in the interval.

Use the inclusive interval function if you want to include both the starting and ending date in the interval (see [below](#inclusive-intervals-of-time-1))
{% endhint %}

### Inclusive intervals of time between two dates <a href="#inclusive-intervals-of-time" id="inclusive-intervals-of-time"></a>

```
April 1 through April 30 in days | 30 days
```

### Week numbers (ISO 8601)

```
week of year                  | 36
week number on march 12, 2021 | 10
```

### **How many days in a month or quarter**

```
days in Q3            | 92 days
days in February 2020 | 29 days
```

### Find the midpoint between two dates

```
midpoint between March 12 and April 5   | 24 March
halfway between today and next Thursday | 13 September
```

## Notes on Ambiguity in Calendar Calculations

**Ambiguous months**

Unlike days and weeks, months are not clearly defined in terms of seconds. Soulver attempts to do the most logical thing given the expression. It's smart at taking into account leap years, and other calendar peculiarities:

```
Feb 28 + 1 month          | 28 March
January 31 2020 + 1 month | February 29 2020
```

**Dates with unspecified years**

A date without the year specified may use either the current year or the following year.

```
# In December 2019

// next year is assumed, as the nearest January is in the future
January 12 + 3 weeks | 2 February 2020

// this year is assumed, as the month is still recently in the past
November 1 - 5 days  | 27 October 2019
```


# Workdays & Weekdays

### Calculations with workdays

A workday (or weekday/business day) is Monday through Friday.

Saturday and Sunday are not counted as workdays/weekdays, and neither are public holidays (in your region).

```
workdays in 3 weeks               | 15 workdays
10 March to 17 March in workdays  | 5 workdays
workdays from April 12 to June 15 | 45 workdays
$500/workday × 4 weeks            | $10,000.00
```

### Public holidays are taken into account in workday calculations

December 25 (Christmas day) is a public holiday in many countries, and this is taken into account when doing workday calculations:

```
December 24 + 2 workdays | December 30
```

<div align="center"><img src="/files/-MjERTu_iC2Dy1vMsxG4" alt="Public holidays for a Soulver user in Australia" width="563"></div>

{% hint style="success" %}
Soulver automatically updates its list of public holidays for your country from the internet for the current and subsequent calendar years.

You can see the list of public holidays Soulver knows about in `Calculator > Region Settings > Public Holidays` in the Mac version.
{% endhint %}

### Getting the day of the week on a particular day

```
day of the week on January 24, 1984 | Tuesday
weekday on March 9, 2024            | Saturday
```

You can also control-click on a date answer to see what day of the week it was (or will be):

<div align="left"><figure><img src="/files/QRoc4fEjNkARf6eSvzwQ" alt="" width="375"><figcaption><p>The contextual menu on a date answer shows the day of the week</p></figcaption></figure></div>


# Timestamps & ISO8601

### **ISO8601**

[ISO8601](https://en.wikipedia.org/wiki/ISO_8601) is an international standard for formatting dates & times, often used by databases.

Use "as iso8601" to convert into this format:

```
April 1, 2019 3:30pm as iso8601 | 2019-04-01T15:30:00+11:00
```

Use "to date" to convert into a regular date format:

```
2019-04-01T15:30:00 to date | 1 April 2019 at 3:30 pm
```

### **Timestamps**

[Unix time](https://en.wikipedia.org/wiki/Unix_time) is a system for describing a moment in time, often used in programming. A timestamp is the number of seconds that have passed since the "reference date" (January 1st, 1970).

```
April 1, 2019 to timestamp | 1554109200
1559740303.48 to date      | 5 June 2019 at 11:11 pm
```

To get a timestamp for the present moment, use **current timestamp**

```
current timestamp | 1559740303.48
```

#### **Millisecond timestamps**

You can convert millisecond timestamps into dates as well

```
1733823083000 to date | 10 December 2024 at 8:31:23 pm
```


# Time

Soulver can work with clock times, time zones, time durations, and video timecodes.

* [Time Zone Conversions](/syntax-reference/time/time-zones-and-cities) — convert times between cities and time zones
* [Time Formats](/syntax-reference/time/timespans-and-laptimes) — work with durations and lap time formats
* [Clock Time Calculations](/syntax-reference/time/clock-time-calculations) — add and subtract clock times
* [Video Timecode & Frame Rates](/syntax-reference/time/video-timecode-and-frame-rates) — convert between timecodes and frame rates


# Time Zone Conversions

Convert between timezones using the names of cities (with large populations), or using standard timezone abbreviations (GMT offsets are also supported)

```
6pm Sydney in Chicago | 1:00 am
2am PST to GMT        | 10:00 am
3pm GMT+8 to Paris    | 8:00 am
```

Airport codes can also be used instead of city names in time zone conversions

```
7:30am LAX to Japan | 11:30 pm
```

{% hint style="info" %}
You can even use country names in time zone conversions. For countries that span multiple time zones, the time zone of the country's capital city is used.
{% endhint %}

### Current time in a city

Get the current time in a place using `time in timezone` or `timezone time`

```
time in Paris    | 6:30 pm
Tokyo time       | 2:30 am
time in Thailand | Tomorrow at 12:30 am
```

If you're interested in just the date in a particular timezone, you can request that too

```
date in Vancouver | 15 February
```

### Time difference between cities

To find the time difference between places or timezones

```
time difference between Seattle and Moscow | 10 hours
difference between PDT & AEST              | 17 hours
```

### Short US timezone abbreviations

Soulver supports the following short timezone abbreviations for the United States:

| Abbreviation | Timezone               |
| ------------ | ---------------------- |
| EST          | Eastern Standard Time  |
| EDT          | Eastern Daylight Time  |
| CST          | Central Standard Time  |
| CDT          | Central Daylight Time  |
| MST          | Mountain Standard Time |
| MDT          | Mountain Daylight Time |
| PST          | Pacific Standard Time  |
| PDT          | Pacific Daylight Time  |
| AKST         | Alaska Standard Time   |
| AKDT         | Alaska Daylight Time   |
| HST          | Hawaii Standard Time   |

You can also use named US timezones like "eastern time", "pacific time", "mountain time", and "central time".

{% hint style="info" %}
Timezone abbreviations are case-insensitive, so "PST" and "pst" work identically.
{% endhint %}


# Time Formats

{% hint style="success" %}
All time formats (units, timespans, laptimes & double time units) can be freely converted into each other
{% endhint %}

### Common Time Units

| Name   | Symbol | Definition        |
| ------ | ------ | ----------------- |
| Second | s, sec | Base unit of time |
| Minute | min    | 60 seconds        |
| Hour   | h, hr  | 60 minutes        |
| Day    | day    | 24 hours          |
| Week   | wk     | 7 days            |
| Month  | mo     | 30.436875 days    |
| Year   | yr     | 365.2425 days     |

### Timespans

A timespan is a quantity of time that displays multiple components (from the year down to the second)

```
5.5 minutes as timespan | 5 min 30 s
4.54 hours as timespan  | 4 hours 32 minutes 24 seconds
72 days as timespan     | 10 weeks 2 days
```

Timespans can be expressed and formatted in various ways

<pre><code>3 hours 5 minutes 10 seconds             | 3 hours 5 minutes 10 seconds
<strong>3h 5m 10s    | 3 hours 5 minutes 10 seconds
</strong>
3h 5m 10s in seconds | 11,110 s
</code></pre>

### Laptimes

A laptime is a quantity of time in the format HH:MM:SS.MS (hour:minute:second.millisecond), commonly used by timers.

```
5.5 minutes as laptime | 00:05:30
```

You can do arithmetic with laptimes:

```
03:04:05 + 01:02:03 | 04:06:08
00:12:05 − 00:04:09 | 00:07:56
```

{% hint style="info" %}
A laptime must include two colons so Soulver can distinguish it from a clock time.

For example, to specify a laptime of 1.5 seconds, use 00:00:01.5
{% endhint %}

You can convert between laptimes and timespans

```
03:04:05 as timespan                   | 3 hours 4 minutes 5 seconds
3 hours 4 minutes 5 seconds as laptime | 03:04:05
```

### Double Time Units

```
12.5 minutes in minutes and seconds | 12 min 30 s
1.4 weeks in hours and minutes      | 235 hours 12 min
4.5 weeks in days and hours         | 31 days 12 hours
```


# Clock Time Calculations

A clock time is a moment in time typically formatted with a colon (hh:mm)

### Adding or subtracting time from a clock time

<pre><code><strong>now + 3 hours 15 minutes                | 6:26 pm
</strong>9:45 am - 15 hours 10 minutes | Yesterday at 6:35 pm
16:00 + 3 hours 12 minutes             | 7:12 pm
</code></pre>

{% hint style="info" %}
Daylight savings is taken into account when doing clock time calculations, and you might find unexpected results on days in which daylight savings time switches over.
{% endhint %}

### Finding the interval between two clock times

```
7:30 to 20:45 | 3 hours 15 min
4pm to 3am    | 11 hours
```

### Ambiguity when using the minus (-) operator with clock times

Sadly, the minus operator can be ambiguous when it comes to clock times.

Many of us use it to indicate a ***range of time*** from the **first clock time** to the **second clock time** (which is in the future):

`5pm - 9pm` (5pm to 9pm)

But many of us also use it to express a ***subtraction*** of second clock time from the first clock time:

`5pm - 3pm` (5pm minus 3pm)

Soulver does its best to try and interpret what you mean given the particular clock times you choose:

<pre><code>/// Get the amount of time between these two clock times today
5pm - 7pm         | 2 hours
<strong>5pm - 2pm | 2 hours
</strong>
// This is interpreted as 4 pm today back to 3am earlier this morning
4pm - 3am         | 13 hours

/// This is interpreted as 3am earlier this morning to 4pm today
3am - 4pm         | 13 hours
</code></pre>

For the most predictable results, use the "to" operator as described in [Finding the Interval between two clock times.](#finding-the-interval-between-two-clock-times)


# Video Timecode & Frame Rates

A timecode is a quantity of time in the format hour:minute:second:frames, commonly used in video editing. You should specify your desired frame rate (fps) when creating a timecode.

You can add/remove units of time or frames from a timecode

```
03:10:20:05 at 30 fps + 50 frames                 | 03:10:21:25
00:10:20:50 @ 60 fps + 10 minutes                 | 00:20:20:50
3h 2m 25s 10 frames at 24 fps + 1 hour 12 minutes | 04:14:25:10
```

Or covert a timecode into a quantity of frames, or from a quantity of frames into a timecode

```
00:30:10:00 @ 24 fps in frames | 43,440 frames
43,440 frames @ 24 fps         | 00:30:10:00
```

Add timecodes together, and subtract them from each other

```
03:10:20:05 @ 30 fps + 03:10:20:010 | 06:20:40:15
03:10:20:05 at 12 fps - 00:20:35:00 | 02:49:45:05
```

{% hint style="info" %}
• When adding or subtracting timecodes, you only need to specify the desired frame rate for one of the time codes in the operation

• The other timecode will use the specified frame rate automatically
{% endhint %}

{% hint style="info" %}
• If you do not specify a desired frame rate when creating a timecode, a default frame rate of **24 fps** (commonly used in film production) will be used

• You can override the default frame rate by defining a **global variable** defined in terms of **fps**

<img src="/files/botFcfrgT2XQQwV49npD" alt="" data-size="original">
{% endhint %}

### Frames and fps

Perform calculations using frames and fps (frames/second) units

```
30 fps × 3 minutes    | 5,400 frames
15.6k frames / 24 fps | 650 s
```


# Money & Finance

Soulver includes financial functions for investments and loans.

* [Compound Interest & Investments](/syntax-reference/money-and-finance/investments) — calculate future value, interest earned, and investment growth
* [Mortgage/Loan Repayments](/syntax-reference/money-and-finance/mortgages) — calculate monthly payments and total interest on loans


# Compound Interest & Investments

Helpful functions for working with investments & compound interest

### Compound Interest

```
$1,000 after 3 years at 7% | $1,225.04
```

By default a yearly compounding interval is assumed, but you can also specify a monthly or quarterly compounding interval:

```
$1,000 for 3 years at 7% compounding monthly   | $1,232.93
$1,000 for 3 years at 7% compounding quarterly | $1,231.44
```

You can also get just the interest generated over a time period:

```
interest on $1,000 after 3 years @ 7%                      | $225.04
interest on $1,000 for 3 years at 7% compounding monthly   | $232.93
interest on $1,000 for 3 years at 7% compounding quarterly | $231.44
```

### Return on Investment (ROI)

```
$500 invested $1,500 returned                                  | 2x
annual return on $1,000 invested $2,500 returned after 7 years | 13.99%
```

### Present Value of Future Money

```
present value of $1,000 after 20 years at 10% | $148.64
```


# Mortgage/Loan Repayments

Helpful functions for repaying bank loans

### Principal + Interest

```
daily repayment on $10,000 over 6 years at 6%   | $5.45
monthly repayment on $10,000 over 6 years at 6% | $165.73
annual repayment on $10,000 over 6 years at 6%  | $1,988.75
total repayment on $10,000 over 6 years at 6%   | $11,932.48
```

### Interest Only

<pre><code>daily interest on $10,000 over 6 years at 6%          | $0.88
<strong>monthly interest on $10,000 over 6 years at 6% | $26.84
</strong>annual interest on $10,000 over 6 years at 6% | $322.08
total interest on $10,000 over 6 years at 6%           | $1,932.48
</code></pre>

{% hint style="info" %}

* For an [amortizing loan](https://www.thebalance.com/how-amortization-works-315522), the monthly interest decreases over time as you pay off the loan's principal.
* Typically an [amortization table](https://www.investopedia.com/terms/a/amortization_schedule.asp) is used for details about what you'll pay in a given month.
* The monthly interest function in Soulver indicates the average monthly interest paid over the lifetime of the loan.
  {% endhint %}


# Sales Tax

GST, VAT, etc

Soulver can help you calculate sales tax, such as determining how much sales tax was paid on a gross price and what the pre-tax price was before tax was added.

### Setup

Open Soulver's **Money** settings and ensure that the correct name for sales tax (VAT, GST, etc) is set, with the correct percentage for your country or state:

<figure><img src="/files/3NMyNWg6fTtGzEfuiJpU" alt="" width="268"><figcaption><p>Setting up sales tax in Soulver's regional settings</p></figcaption></figure>

{% hint style="info" %}
Soulver sets sales tax defaults for many countries, including Australia, NZ, the UK and EU countries based on your device's regional settings.

Our American users must set their sales tax settings manually, as sales tax varies state-by-state in the US (and we don't want to ask for your geolocation).
{% endhint %}

### Working with sales tax

{% hint style="info" %}
The examples below assume a sales tax (VAT) of 15%.
{% endhint %}

#### Adding sales tax to an amount

```
$300 + VAT  | $345.00
VAT on $300 | $45.00
```

#### Removing sales tax from a total

```
$300 - VAT   | $260.87
VAT off $300 | $260.87
```

{% hint style="info" %}
Note that "$300 - VAT" is not the same as simply subtracting 15% from $300. Soulver correctly calculates the pre-tax price by dividing by 1.15, giving $260.87 (not $255).
{% endhint %}

#### Extracting the tax amount from a total

```
VAT in $300   | $39.13
VAT of $300   | $39.13
VAT from $300 | $39.13
```

<div align="left"><figure><img src="/files/J9yUeQBMDh3cDrd5MaXa" alt=""><figcaption><p>Sales tax related functions in Soulver</p></figcaption></figure></div>


# Inflation Calculations

Soulver includes an inflation calculator based on the average yearly CPI change data published by the U.S. Bureau of Labor Statistics.

You can convert between currency amounts in various years, accounting for inflation, and predict the future value of an amount.

### Value of an amount from the past in today's dollars

```
what is $4.2k from 2003          | $6,795.58
$1 from 1997 is worth what today | $1.85
$10k from 1960 worth             | $102,877.00
value of $4.2k from 2003         | $6,795.58
```

### Today's dollars in a previous year

```
what was $500 worth in 1997 | $269.56
value of $500 in 1997       | $269.56
$500 is worth what in 1997  | $269.56
```

### Converting between two specific years

```
what is $285.44 in 1997 worth in 2022 | $519.80
$1 from 1997 is worth what in 2021    | $1.69
```

### Using "dollars" phrasing

```
$10 million in 1985 dollars | $27.668M
$90k in 1996 dollars        | ~$170k
```

### Predicting future value with an assumed inflation rate

```
value of $500 in 2028 assuming 5% inflation           | $411.35
what will $1M be worth in 2040 assuming 10% inflation | $217,629.00
purchasing power of $500 in 2028 at 5% inflation      | $411.35
```

{% hint style="info" %}
Future inflation predictions require you to specify an assumed inflation rate (e.g. "assuming 5% inflation").
{% endhint %}


# Bases & Bitwise

### Decimal, Hex, Binary & Octal

Soulver supports base 2 (binary), octal (base 8) and hexadecimal (base 16), with various formats supported to convert between them

```
# Converters
256 as hex         | 0x100
99 in binary       | 0b1100011
0x9F31 to decimal  | 40,753
0b1000101 to octal | 0o105

# Phrases
0b101101 as base 8 | 0o55
0x2D as base 2     | 0b101101

# Python-style functions
int(0o55)          | 45
hex(99)            | 0x63
bin(0x73)          | 0b1110011
```

### Bitwise Operators

| Operator   | Name                |
| ---------- | ------------------- |
| & or AND   | Bitwise AND         |
| \| or OR   | Bitwise OR          |
| xor or XOR | Bitwise XOR         |
| <<         | Bitwise left shift  |
| >>         | Bitwise right shift |


# Headings & Comments

## Headings

Use the # character to indicate a heading line. Heading lines are emboldened and do not display an answer (even if there are numbers in the heading).

```
# This is a heading
```

{% hint style="info" %}
You can customise the size of headings, as well as their color (and the color of the # symbol itself) from Soulver's styling preferences.

There is also an option to strip heading symbols when exporting into PDF or printing.
{% endhint %}

## Comments

If you want Soulver to ignore certain numbers on a line, use a comment, like a label or a double slash comment.

### labels:

Use a label at the beginning of a line, using a colon:

```
Cost of 128 GB iPhone 16: $999 | $999.00
```

{% hint style="info" %}
Labels are automatically formatted in **bold.**
{% endhint %}

### // double slash comments

All numbers after two slashes are ignored:

```
// 1 + 2 | 
1 + 2    | 3
```

You can also add slash comments to the end of lines:

```
I spent $128 + $45 on clothes // on 10-02-2019 | $173.00
```

### (parenthesis comments)

Numbers with additional commenting words inside parentheses are ignored:

```
$999 (for iPhone 16) | $999.00
```

### "inline comments"

You can "quote out" numbers in the middle of an expression to have them ignored:

```
Boing "747" is $386.8M | $386.8M
```

#### Comment Styles Summary

| Type         | Syntax        | Notes                                                                                                     |
| ------------ | ------------- | --------------------------------------------------------------------------------------------------------- |
| Label        | **123:**      | Sometimes a space character is needed after the : to distinguish from a clock time (like 14:45)           |
| Double slash | // 123        | Commonly used in software languages. Press ⌘-/ to automatically comment out an entire line in this style. |
| Parenthesis  | (123 comment) | Ensure you have an accompanying comment word inside the parentheses, to prevent implicit multiplication.  |
| Inline       | "123"         |                                                                                                           |


# Large Number Symbols

By default, Soulver uses [SI-inspired](https://en.wikipedia.org/wiki/Metric_prefix) large number symbols when displaying large answers:

```
100,000 + 200,000 | 300k
3 million + 10%   | 3.3M
```

If you don't like this feature you can disable it for all lines (see [Answer Formatting](/documentation/formatting/answer-formatting-options)), or on a line-by-line bases in the contextual menu on a line.

{% hint style="success" %}
We think this feature makes working with large numbers easier because you don't need to count zeros to immediately know the magnitude of the number you're working with.
{% endhint %}

### Notation symbols for large numbers

You can also use large number symbols in your math expressions to make working with large numbers easier.

Numbers with currency symbols ($, €, £, etc) also support additional large number notation symbols.

{% tabs %}
{% tab title="General" %}

| Symbol       | Value    | Example |
| ------------ | -------- | ------- |
| k            | thousand | 2.5k    |
| M            | million  | 5M      |
| G            | billion  | 10G     |
| T            | trillion | 20T     |
| {% endtab %} |          |         |

{% tab title="Currencies" %}

| Symbol        | Value    | Example           |
| ------------- | -------- | ----------------- |
| k or K        | thousand | $3k, $4K          |
| m or M        | million  | $5m, €6M          |
| B, b or bn    | billion  | $7B, ¥8b, $9bn    |
| T, t or tn    | trillion | $10T, €11t, £12tn |
| {% endtab %}  |          |                   |
| {% endtabs %} |          |                   |

### Scientific Notation

If you'd like to see a number in scientific notation instead of large number notation, use "as sci"

<div align="left"><figure><img src="/files/RxTQ1OgY3EkuqaXTSvKu" alt="" width="375"><figcaption><p>Converting a large number into scientific notation</p></figcaption></figure></div>


# Soulver X Series

The quest for a more perfect Soulver

## What is the Soulver X Series?

In 2024, we embarked on a multi-year R\&D project whose mission is to:

* Explore cool new ideas for Soulver
* Seek out new forms & new workflows
* Boldly go where no notepad calculator has gone before 🖖

We intend to release a major new X series version every year.

### Soulver X Series Sponsorship

If you're a long time user (or Soulver mega-fan), and are excited by this work, you might consider [sponsoring our mission on GitHub](https://soulver.app/sponsor).

Also, as a sponsor, you'll get access to the latest X series prototype (X3, X4, etc) with more never-before-seen features in the notepad calculator domain.

Our (very) small team would appreciate the support, and we'll be able to dedicate more resources to this kind of advanced notepad calculator R\&D.

## Soulver X2 (2025)

### Subsheets

* A subsheet is a separate sheet that lives inside a single token.
  * Create a subsheet from the + button in the tab bar.
  * Double-click the purple token to open the subsheet editor.
* Subsheets can reference variables from the mother sheet (provided the variables are declared above the subsheet's line).

### Slider Tokens with Ranges

* A slider token allows you to specify the range for a scrubbable slider
  * Create a slider from the + button in the tab bar.
  * Double-click the green token to open the slider popup.

### Divider Lines

* Type dash (-) three times to insert a divider line.
* Use divider lines to create more visual separation between different parts of your sheet.

## Soulver X1 (2024)

X1 includes implementations of Soulver's top feature requests, including:

* [Custom function support](https://soulver.app/feedback) (*including* *natural language functions)*
* [Sharing variables across sheets](https://soulver.app/feedback) (*via the new "header" sheet)*
* [Connecting to Web APIs](https://soulver.app/feedback) (*with just a paste and a couple of clicks)*

### Tabs

<figure><img src="/files/hBPj4TFdBtattfiJsfLk" alt=""><figcaption><p>Multiple tabs in Soulver X1</p></figcaption></figure>

Documents in Soulver X1 start with a single tab, and you can add more by clicking the + button in the right of the tab bar.

**Renaming tabs**

Double click on the title of a tab to give it an alternative name. Alternatively, control-click on the tab and choose "Rename".

**Deleting tabs**

When you hover over a tab, click the x button to delete. Alternatively, control-click on the tab and choose "Delete"

{% hint style="warning" %}
Tabs are a work in progress feature.

You cannot rearrange tabs (yet), and adding too many tabs in a single document does not work correctly.
{% endhint %}

### The header sheet

The header is a dedicated sheet for defining variables, units, functions, and web values that can be used across all tabs in your document.

<figure><img src="/files/KeA28CzVsHEPymY43FRK" alt="" width="375"><figcaption></figcaption></figure>

### **Cross-tab variables**

Declare variables for your document in the header the same way you would declare local variables.

For example:

```
my variable = 123
```

`my variable` will be available across all your sheets

{% hint style="info" %}
Your tabs can only reference variables, but cannot modify their definition such that it will apply to other sheets in the document.
{% endhint %}

### **Equivalence units**

An equivalence unit is defined in terms of an existing unit.

Define a new equivalence unit in the header using (for example):

```
1 watermelon = 10 lb
```

<figure><img src="/files/K9yVUEL4Cg3DzztoAHnE" alt=""><figcaption><p>Declaring a new unit of mass in Soulver X1</p></figcaption></figure>

The `watermelon` can now be used as a unit of mass across your tabs.

<figure><img src="/files/nKChIfDFZCFfT4qO2oU9" alt=""><figcaption><p>Using a custom equivalence unit in Soulver X1</p></figcaption></figure>

{% hint style="info" %}
Soulver X1 automatically pluralises your new unit for you (in English).

So in this example, both "watermelons" will be recognized as a valid unit name, even though the definition was "watermelon".
{% endhint %}

### **Generic units**

An equivalence unit is an entirely new unit type, not defined in terms of an existing unit.

Define a new generic unit in the header using (for example):

```
operation = new unit
```

<figure><img src="/files/pTleVIu5fCYC8fgFzMVT" alt=""><figcaption><p>Declaring a generic unit type in Soulver X1</p></figcaption></figure>

The `operation` unit can now be used across your tabs (including in rates):

<figure><img src="/files/3N9vSaeHU6D8O3CQYHM8" alt=""><figcaption><p>Using a generic unit in Soulver X1</p></figcaption></figure>

### **Custom functions**

**Introduction**

A function is a handy phrase that takes an input and returns an output. In Soulver X1, you can use (almost) any syntax for a function, including:

C-style: `doSomething(123)`

Swift-style: `doSomething(with: 123)`

Natural language: `do something with 123`

**To create a new custom function (in the header)**

* Click `Define New` > `Function`

**Choosing a function name:**

<figure><img src="/files/XxihAdoXz0v8jcW3TUry" alt=""><figcaption><p>Declaring a new function in Soulver X1</p></figcaption></figure>

* Define your function using an example of how you might use the function in practice.
* Choose any parameters (so long as they match the "type" of parameter that you expect for your implementation, like money, time, plain decimal numbers, etc).

**Implementing your function:**

<figure><img src="/files/djTUQdsYYKSxhzYwwuBp" alt=""><figcaption><p>Writing a function to calculate how much sales tax there is in a certain amount</p></figcaption></figure>

* Implement the function in a dedicated Soulver sheet. Any parameters will be injected as yellow tokens.
* Hover over a parameter token to see what parameter it refers to in the declaration.
* The last line of the implementation sheet will be returned as the function's final value.

**Using your function**

<figure><img src="/files/4zRklDb8XnzZRhHsJgfV" alt=""><figcaption></figcaption></figure>

Use your function with other input values across all of your sheets

### **Web values (connecting to JSON APIs)**

#### **To create a new web value (in the header)**

* Click `Define New` > `Web Value`

#### **To connect to a particular data point in a JSON data feed**

<figure><img src="/files/hFS4vwf3UbFrHJklzLxz" alt=""><figcaption><p>Connecting to a remote data feed in Soulver X1</p></figcaption></figure>

* Paste in a URL to a JSON data feed, and then simply click on the data point you wish to connect to

#### **Using a web value**

* Your web value will be assigned a variable name (by default, matching its description in the JSON feed)
* You're welcome to change the variable name to something else

#### **Updating a web value**

* Your web value will be automatically updated in the background with the frequency that you specified during setup

#### **Editing a web value**

* Double-click the yellow web value token in the header to specify a different data point, or change the update frequency

## Soulver X Series File Type

{% hint style="warning" %}
Soulver X series apps use a different document type (.slvrx) from Soulver.

This is to support the new features we're building and experimenting with.

Soulver X (.slvrx) files cannot be edited by Soulver 3 for Mac, iOS & iPad.
{% endhint %}


