We present an approach for forming sensitivity maps (or sensitivites) using ensembles. The method is an alternative to using an adjoint, which can be very challenging to formulate and also computationally expensive to solve. The main novelties of the presented approach are: 1) the use of goals, weighting the perturbation to help resolve the most important sensitivities, 2) the use of time windows, which enable the perturbations to be optimised independently for each window and 3) re-orthogonalisation of the solution through time, which helps optimise each perturbation when calculating sensitivity maps. These novel methods greatly reduce the number of ensembles required to form the sensitivity maps as demonstrated in this paper. As the presented method relies solely on ensembles obtained from the forward model, it can therefore be applied directly to forward models of arbitrary complexity arising from, for example, multi-physics coupling, legacy codes or model chains. It can also be applied to compute sensitivities for optimisation of sensor placement, optimisation for design or control, goal-based mesh adaptivity, assessment of goals (e.g. hazard assessment and mitigation in the natural environment), determining the worth of current data and data assimilation. We analyse and demonstrate the efficiency of the approach by applying the method to advection problems and also a non-linear heterogeneous multi-phase porous media problem, showing, in all cases, that the number of ensembles required to obtain accurate sensitivity maps is relatively low, in the order of 10s.