Currently the statusCode can be both. We should make sure it is always the same type and find the culprit which produces it with different types and fix it. One example where this is a problem:
Another example is the apiary reporter, which sends this over to the Apiary Test Reporting API and we need to coerce these values before saving them to the database.
Is there any benefit of storing it in a string? Some database-specific handling of numbers, etc.
Let's store it as a number then, which it is :) See no practical reason to use strings for storing numbers. More like code smells to me.
It is a best practice to store currency as a string in JSON to avoid floating point numbers "rounding" issues, but this is not the case.