You are comparing letters with packages. Not a meaningful comparison. In theory USPS could compete strongly in package delivery but they haven't been effective at it to date.
They're fucking morons, that's why. They are shit at everything. My post office has had a notice up for the last decade about routing loops caused by mismatching zip codes and cities. The USPS scans literally every package to find out where it is supposed to go and then throws that data away — after, of course, handing it to the FBI. So they can't check whether a routing loop is occurring because they have no records of whether a packet — er, make that a package — has traversed a particular sorting facility!
They also have a problem with following procedure. My local post office decided for me that they would hold all my small packages and I could just come in and get them. That's not what I want. What I want is for them to follow the fucking delivery instructions. If it says do not deliver without signature, then hold it. If it doesn't say anything, put it in my fucking mailbox. I made many dozens of trips to the post office to pick up $5 packages from China, wasting my time and fuel because they decided to "help". The one time I did file a hold as I was going away for a week, they failed to follow the instructions completely. I said it was OK to deliver letters, but hold packages, and I would come and pick up all held mail at the end of the hold. They delivered nothing while I was gone (that's OK) but then went ahead and delivered everything including packages to my mailbox at the end of the hold, which I had explicitly asked them not to do.
The USPS would have gone out of business by now if they weren't delivering small packages for UPS and FedEx, which people would rather use than the USPS because they are dramatically more competent. And, of course, planet-raping dead tree spam. Thanks, USPS! You're fucking shitlords.