tar -c data_dir | wc -c
tar -cz data_dir | wc -c
with gzip compression
tar -cj data_dir | wc -c
with bzip2 compression
will print the size of the archive that would be created in bytes, without writing to disk. You can then compare that to the amount of free space on your target device.
You can check the size of the data directory itself, in case an incorrect assumption was made about its size, with the following command:
du -h --max-depth=1 data_dir
As already answered, tar adds a header to each record in the archive and also rounds up the size of each record to a multiple of 512 bytes (by default). The end of an archive is marked by at least two consecutive zero-filled records. So it is always the case that you will have an uncompressed tar file larger than the files themselves, the number of files and how they align to 512 byte boundaries determines the extra space used.
Of course, filesystems themselves use block sizes that maybe bigger than an individual file's contents so be careful where you untar it, the filesystem may not be able to hold lots of small files even though it has free space greater than the tar size!