Given the age of your modem and the cap on the speeds, I suspect part of the reason why you're not getting your full paid for throughput is possibly due to using an old DOCSIS 2.0 modem. The old Surfboard,
5xxx series, right?
This said, it doesn't wholly account for your speeds (unless you swapped up/down numbers, than this would 100% explain those numbers), as DOCSIS 2.0 can still support ~40Mbps down and ~30Mbps up. It's probably problems elsewhere as well, such as WiFi interference. Never do Speedtest speeds from a WiFi connected device to determine what you're getting from the ISP. Hardwire ethernet. Always.
A newer Motorola/Arris Surfboard should be fine if the modem's an old DOCSIS 2.0 model. Something like the SB6121 should be fine, and should be plenty cheap used, and less than $40 new if bought online in brown box (non-retail). The modem is rated for 172Mbps down and 131Mbps up, and supports 1000BASE-T ethernet output (1000Mbps), so no bottlenecks there. To swap modems, you'll have to buy the new one and then call Cox technical support to update the account with the new modem's MAC address to get the thing working. They'll walk you through it.
The other part is partly your router. The E1200 is only 100BASE-TX (100Mbps) on the ethernet end despite the WiFi 802.11n spec on the thing supporting throughput up to 300Mbps. Now, 100Mbps is still technically pushing way more than you theoretically need from the internet to your wired systems, so you probably don't need to replace this piece of equipment. Just know that you're not technically able to max out the speeds that Cox is gouging you for with this in place. If you feel moved to replace it, Ubiquiti makes a good router, as they do good WiFi equipment... after all UBNT equipment is the poor man's Cisco in SMB/SME deployments, but I don't recommend it for most people. Why? Because it's not really worth the price premium for most home users. The trusty, rusty Asus RT-N16 is still a dynamite router if you swap out the crappy stock firmware with a build of DD-WRT (I'd personally recommend dd-wrt.v24-30880_NEWD-2_K3.x_big), Tomato or OpenWRT, any of which is
easily done (
if you closely follow directions and) if you feel moved to replace the router, and can still be found new for around $80, or used for well under $50. (Fiddle with it for an hour, and it should be rock solid 'til it 'aint no more.) This would remove the other major network bottleneck to utilize Cox's full provided bandwidth (not that you'll ever actually see or use it 99% of the time anyway). If you feel moved to keep the hardware you have, however, you may still find some stability improvements migrating the E1200 over to DD-WRT/Tomato/OpenWRT as well... but if it isn't broke, don't fix it.
If you're over-reliant on WiFi, know that the slice of wireless spectrum the stuff uses is crowded and crowded spectrum introduces noise. Where there's noise, there's slower throughput. The max WiFi speeds are theoretical max under lab conditions. You can improve things by doing site surveys and seeing which band clusters are least crowded to use and that sort of thing to improve reliability, but the best reliability improvement is hard wire ethernet for work systems.
Of course, this is only part of it all. You could theoretically have wired ethernet ports that only support 100Mbps on your computers (unlikely but possible), or 802.11b/g WiFi only chipsets which are capped to 11/54Mbps respectively (again unlikely but possible), but those are device specific bottlenecks.
A lot could be going on, and without a modem model, I can't be certain that it's not contributing, but as you can see from the rest, you should be able to better tell where those bottlenecks are and how to alleviate them with the right equipment for the right price.
Hope this helps!