If X X is a compact subset of a Banach space with X − X X-X homogeneous (equivalently ‘doubling’ or with finite Assouad dimension), then X X can be embedded into some R n \mathbb {R}^n (with n n sufficiently large) using a linear map L L whose inverse is Lipschitz to within logarithmic corrections. More precisely, there exist c , α > 0 c,\alpha >0 such that \[ c ‖ x − y ‖ | log ‖ x − y ‖ | α ≤ | L x − L y | ≤ c ‖ x − y ‖ for all x , y ∈ X , ‖ x − y ‖ > δ , c\ \frac {\|x-y\|}{|\,\log \|x-y\|\,|^\alpha }\le |Lx-Ly|\le c\|x-y\|\quad \mbox {for all}\quad x,y\in X,\ \|x-y\|>\delta , \] for some δ \delta sufficiently small. It is known that one must have α > 1 \alpha >1 in the case of a general Banach space and α > 1 / 2 \alpha >1/2 in the case of a Hilbert space. It is shown in this paper that these exponents can be achieved. While the argument in a general Banach space is relatively straightforward, the Hilbert space case relies on the fact that the maximum volume of a hyperplane slice of a k k -fold product of unit volume N N -balls is bounded independent of k k (this provides a ‘qualitative’ generalisation of a result on slices of the unit cube due to Hensley (Proc. AMS 73 (1979), 95–100) and Ball (Proc. AMS 97 (1986), 465–473)).