The outcome is either valid or invalid. If valid, the answer is either a string or a number. A list of tags, which are stored on the oracle when data requests are created, are sent while setting the outcome to map the outcome to the right data request. I.e. if the tag is set to a number that auto-increments each time a data request is created, the oracle will call set_outcome() with that same number to finalize.