Overview

Aether includes the built in ability to track several awards. It is also possible to create custom award definitions to allow tracking additional awards. This page describes how to create these custom awards definition files. Note that this feature is intended for advanced users of Aether. This feature was introduced in version 1.6.3 of Aether and is not supported in earlier versions.

File Format

Aether awards definition files are plain text files whose contents are JSON data. The top level item in the JSON file must be a dictionary whose contents describe the award being defined. The order of fields in the dictionary is not important. An awards definition file may only contain the definition of a single award. For example, for a DXCC award definition, the contents of the file would be:

{
  "awardName" : "DX Century Club",
  "awardShortName" : "DXCC",
  "awardSponsor" : "ARRL",
  "awardWebsite" : "http:\/\/www.arrl.org\/dxcc",
  "numberOfQSOsRequired" : 100,
  "mainQualifierKeyPathInQSO" : "callbookInfo.dxcc",
  "additionalRelevantKeys" : [
    "callbookInfo.country"
  ]
}

A detailed description of the available fields, their purpose, and example values are given in the Award Definition Fields section of this page.

A JSON linter like jsonlint.com can be used to verify that your file is correctly formatted according to the JSON standard. Note that this does not verify that e.g. the field names Aether expects are correct, merely that the file is structurally correct.

Files must be saved with the extension .awardsdef to be recognized by Aether. See the Loading Into Aether section below for details on installing a custom award definition file in Aether.

I've posted the awards definition files that Aether ships with on GitHub: https://github.com/armadsen/AetherAwards . They can be used as reference examples when creating your own custom award definition files. You can also modify these files and load them to customize tracking for the built in awards.

Award Definition Fields

Awards definitions in Aether include several fields. The table below lists these fields, including a description of the field's purpose, and whether or not it is optional. The descriptions use the example of the ARRL's Worked All States award to illustrate how they work.

Field Name Description Optional
awardName Full name of the award (e.g. "Worked All States") NO
awardShortName Abbreviated name of the award (e.g. "WAS") NO
awardSponsor Name of the award's sponsor (e.g. "ARRL") YES
awardWebsite URL for the award's website (e.g. "http://www.arrl.org/was") YES
mainQualifierKeyPathInQSO QSO key path for main qualifier value (e.g. "callbookInfo.state") NO
numberOfQSOsRequired Number of QSOs required to receive the award (e.g. 50) YES
achievementLevels List of number of QSO thresholds for additional achievements YES
possibleMainKeyValues Possible values for the main qualifier value (e.g. List of the 50 states) YES
additionalRelevantKeys Key paths for values to show as additional columns in the awards window YES
uniquingKeys Key paths for values that cause QSOs to be treated as unique YES
requiredFixedKeysAndValues Key paths and corresponding values that must be set for a QSO to count YES
startDate First date for QSOs to be considered to count for the award. YYYY-MM-DD YES
endDate Last date for QSOs to be considered to count for the award. YYYY-MM-DD YES

Some of these fields, like awardName are fairly self explanatory. For those that are not, see the detailed descriptions below.

mainQualifierKeyPathInQSO

This field is a key paths for the main qualifier value for the award. The main qualifier value for an award is the value that must be unique for each QSO in the award. For example, for Worked All States, it's the contacted station's U.S. state. For DXCC, it's the DXCC entity number. For Worked All Zones, it's the CQ zone.

This field is the most important one in an awards definition file and is required.

achievementLevels

This field is an array (a list) of additional achievement levels for the award. For example, the RSGB IOTA program offers awards for confirmed QSOs with 100 islands, 200 islands, 300 islands, and so on. Using the achievementLevels field, a single award definition can be used to continually track progress toward the next achievement level you're working on.

This field is optional. When the achievementLevels field is present, the awards tracking window will show your progress to the next level beyond that you've already achieved (based on confirmed QSOs in your log).

possibleMainKeyValues

In some cases, it is desirable to make the awards tracking system only accept QSOs whose main qualifier value is one of a predefined list of valid values. For example, for Worked All States, this is a list of all 50 states. For IOTA, it could be a list of all registered IOTA designators, etc. This field is optional, and if it is not included, any (non-empty) value for the main qualifier key path will be considered valid.

additionalRelevantKeys

The additionalRelevantKeys field is a list of key paths for values that are interesting or relevant but which are not used for the actual awards tracking calculations. Aether will display columns for these key paths in the QSO table in the awards tracking window. Aether uses this field for the USA Counties award to also show each QSO's state.

uniquingKeys

For some awards, multiple QSOs with the same main qualifier value should be counted towards an award. For example, for the 5 Band DXCC award, up to five QSOs with the same DXCC entity may be counted as long as they're on separate bands.

The uniquingKeys field is an optional list of key paths. If any of the values for these key paths differ between two QSOs being considered for awards tracking, both QSOs will be considered unique and valid contributions to the award.

To illustrate, consider an award where this list includes "band", and the mainQualifierKeyPathInQSO is callbookInfo.dxcc. In this case, two QSOs with a DXCC number of 291, where the first has a band of "20m", and the other is "40m" will both be counted toward the award.

requiredFixedKeysAndValues

For some awards, it can be useful to require one or more key paths to have one of a predefined list of valid values, even though these key paths are not used directly in the awards tracking calculations.

The requiredFixedKeysAndValues field is a dictionary whose keys are key paths, and whose values are arrays/lists of allowable values for the corresponding key path.

For example, for Worked All States, this field is used to specify that QSO's must have a country value of "United States", "USA", "US", etc. to be considered valid. That way, QSOs with other countries will not be considered valid for the award, even if they happen to have an otherwise valid two letter state abbreviation filled in for their state.

startDate and endDate

If you'd only like to consider QSOs made in a specific date range, you can specify the startDate and/or endDate. Both take a string of the format YYYY-MM-DD. For start date, any QSO made after 00:00 UTC (ie midnight) on that date are considered valid. For end date, any QSO made before 23:59 UTC on that date are considered valid. You can omit either date to specify an open ended range, and you can omit both to avoid restricting QSOs to a certain date range. Note: This feature is only available in Aether 1.6.11 or later.

Key Paths

Several of the fields in an award definition have a value that is a key path for a QSO. The table below lists the key path for several common values. If one you'd like to use isn't listed here, please contact Aether support for assistance.

Value Key path Type Example Value
Callsign callsign String "AC7CF"
Operating Mode mode String "CW"
Frequency (in MHz) frequency Number 14.060
Band band String "20m"
State callbookInfo.state String "UT"
County callbookInfo.county String "Salt Lake"
Country callbookInfo.country String "United States of America"
Grid Square callbookInfo.gridSquare String DN40br
DXCC Number callbookInfo.dxcc Number 291
CQ Zone callbookInfo.ituZone Number 6
CQ Zone callbookInfo.cqZone Number 5
IOTA island callbookInfo.iota String "NA-065"

Loading Into Aether

To load an awards definition file into Aether, drag it onto Aether's icon in the Dock. You'll be asked if you'd like to install it. Click Install, and Aether will install it for you. You can also manually install awards definition files by copying them into ~/Library/Containers/com.openreelsoftware.aether/Data/Library/Application Support/Aether.

Note that currently, if an awards tracking window is already open, it will not show a newly installed award. To workaround this, you should quit and restart Aether after installing a new awards definition file. This is a limitation that will be fixed in a future release of Aether.