Here's my input on what I would like to see in the ordering of face values. I don't know if this is realistic or even implementable on Colnect.
The face value fields in Colnect have the following formats:
base value
base value+supplementary value
multiple count*base value
multiple count*(base value+supplementary value)
See https://colnect.com/en/forum/viewtopic!f=144&t=63435 for my comments regarding the syntax of face values with a multiple count.
The base value can be a currency value (numeric) or non-currency value (text).
A supplementary value is always a currency value (numeric).
A currency value can be a decimal value or non-decimal value.
A decimal value can have a decimal point and/or a fraction.
A non-decimal value has two numbers separated by '.
My preferred sort order would be:
1. Sort all currency base values before non-currency base values; sort non-currency base values in alphabetic order.
2. Sort currency values by numeric value, including sorting fractions by their numeric value; sort non-decimal second parts after values with decimal points and fractions, as in the range “1” to “2” below. (Since non-decimal values are sorted without reference to a currency, it is impossible to calculate a decimal equivalent of the whole non-decimal value.)
3. Keep all equal basic values together with supplementary values added in numeric order, as in the ranges “2” to “3” and “A” to “air” below.
4. Sort the added supplementary values in the same way as sorting the basic values, as in the range “3” to “4” below.
5. Put values with a multiple count immediately after the same values without a multiple count, as in the range “4” to “5” below.
A sample set of face values in my preferred sort order
“1” “1.40” “1.50” “1½” “1.60” “1.99” “1'1” “1'2” “1'9” “1'10” “2” “2+1” “2.50” “2.50+1” “2.50+1.50” “2.90” “2.90+1.50” “3” “3+1” “3+1.1” “3+1.5” “3+1½” “3+1.6” “3+1.9” “3+1'1” “3+1'9” “3+1'10” “4” “2*4” “4.5” “2*4.5” “4.5+2” “2*(4.5+2) ” “4.6” “5” “1st” “2nd” “2nd class” “2nd large” “3rd” “A” “A+50” “A+50000” “air” “air mail” “first-class” “Z” “Zone 1” “Б” “Ц”
Details of the sort keys to achieve this ordering
Sort Key 1
Type: text
The text of a non-currency base value; empty for a currency base value.
Sort Key 2
Type: number
The numeric value of the base value up to '; empty for non-currency base values.
Convert fractions to numbers. E.g. 10½ sorts as 10.5; 0.00½ sorts as 0.005.
Optionally add a small amount to the sort value of values with fractions so that they consistently sort after values expressed with a decimal point. E.g. Sort 10½ as 10.500001.
Sort Key 3
Type: number
The numeric value of the part of the base value after '; empty for non-currency base values, and for base values not containing '.
This must be a number to correctly sort 1'10 after 1'9 instead of between 1'1 and 1'2.
When the base value contains the non-decimal separator ', add .99999 to Sort Key 2 so that non-decimal base values sort together after all decimal base values with the same first part.
E.g. 1 1.01 … 1.99 1'1 … 1'9 1'10
This will not work correctly if the part of the base value before ' also contains a decimal, but this should not occur.
Sort Keys 4 and 5
As for keys 2 and 3 but using the supplementary value in place of the base value.
Sort Key 6
Type: number
The value of the multiple count.