New package trays appear to go for $40 to $100, possibly cheaper on eBay. It's not a lot, but you can easily build one yourself for less. This is how I built mine.
Remove the old package tray, if you have one. If you don't, then it'll take more work to fit your new piece in unless you can find a template to use. Start by taking out the back of the rear seat then the plastic trim above it on either side. If you leave the trim in place, it makes it harder to pull the old tray out and you risk damaging it.
Use a pencil to trace the old tray onto your new material. I used a sheet of 1/8" hardboard from Lowes for around $7. My jigsaw was set with a blade for thick wood but it left a nice clean edge on the hardboard. If you choose this material, I recommend cutting it outside (with possibly a dust mask) as it makes a lot of dust.
Do a quick test fit and slide it into the car. Now this is where mine differs from the original. If you want, you can trace out all the little holes for the speaker grills and cut them out. A router would probably be best if you have one. I, however, am mounting speaker grills to the top and therefore cut out oval holes for my speakers. With my new package tray lined up, I placed some 10lb weights on top to hold it in place. Then from inside the trunk, I drilled up through the 4 mounting holes for each speaker into the hardboard.
I lined my speaker grills over the holes to see how it would look.
Take the tray out and trace out the speaker holes, using the mounting holes you just drilled to line up your template.
Because the mounting area in the sheet metal has an inner bevel of about half an inch or so, I placed the plastic brackets shown above underneath the hardboard during installation. The board is pretty sturdy, but I was afraid once I started to screw the grills on, it would pull the edges downward and cause a slight bowing over the tray by the speakers. Rather than take that chance, this helps support the new board over those gaps.
With the holes cut out, it's time to wrap it the board with some vinyl. You can chose to spray paint yours if you like, I went with some vinyl from JoAnne Fabrics for $9/yd. I got lucky and found a texture that matched perfectly with my seats. Using spray adhesive, I laid out the material and stretched it over the board, careful to smooth out any wrinkles.
Cut the vinyl over the speaker holes like you would a pizza and fold the flaps under the board and glue into place. The thinner the slices you cut, the easier it will be to maintain the shape of the hole. Find the mounting holes for the 4 screws on each side and re-tap them through the vinyl.
The screws go through the speaker covers and into the trunk where you mount the speakers and secure them from there. Now all that's left is to replace the plastic trim and seat back into place and you're all done. Now you have a brand new package tray for around $20-$30, less if you just paint it.
The hardboard I used had a very strong odor to it. It might be a good idea to either leave it outside for a few days or paint it to seal in the smell before placing it into your car. And for those curious, the speakers are Alpine Type S 6x9s (model: SPE-6090).