Realistic durations by project type
Small scoped work (a custom section, a bug hunt, a speed fix) is measured in days. Mid-size work (a custom PDP, an AJAX cart drawer, a one-directional integration, a Figma page implemented) typically runs one to three weeks. Large work (product configurators, private apps, full custom themes, two-way ERP integrations) runs from several weeks to a few months depending on scope.
These assume focused work. I deliberately don't stack many parallel projects, which is exactly why timelines hold.
What actually causes delays
In my experience, delays rarely come from code. They come from waiting: on content, on API credentials, on a decision about edge cases, on a third party's approval. The fix is boring but effective: list every dependency in week zero, chase them early, and keep building what isn't blocked.
Scope creep is the other culprit. My quotes define what's in and what's out; new ideas mid-project are welcome, they just get their own scope instead of silently inflating the timeline.