It depends on the probability that you will need to use incoming data for multiple analysis runs in a given duration of time. Here's why:
The bit packing is good for reduced storage and reduced transmission cost.
If manual steps/handwritten code needed, there's a chance of errors and complexity.
The expanded data format is good for easy analysis but higher storage cost.
So, if your incoming format is the tight format, there's a cost to convert to the expanded format and to store the expanded format for a duration of time.
So, if you don't have an immediate need to analyze the data, you can just store the bit format and wait until you need to expand it. And when you expand it, how long you need to keep the expanded format depends on whether you may need to run more analysis on it soon.
You may consider the following:
If you use something like protobuf with packed fields, you don't get bit fields, but the resulting output may compress better. And the integers occupy the least number of bytes at least, if not the least number of bits.
With protobuf, etc, you maybe able to convert to JSON/XML without handwritten code(not bitfields).
For proof of concept, you maybe able to get by with JSON/XML with compression.
There is something called bitproto that attempts to create a version of protobuf with bitfields. I have not tried this. You may want to.