Dear Statalisters,

I am running a difference in difference and I was wondering what should I code in order to do a DID on a matched sample
I have 1000 observation recorded for 3 years, 2 pre-treatment and 1 post-treatment.
I am focusing on just the first 2 years for now.
I coded:
Code:
probit export L1.age L1.graduates L1.industry L1.prod if year==2015
predict pscore, pr
then I generate a dummy that is equal to 1 if the pscore is between 0.2 and 0.8 called screened_sample
now I run the DID using fixed effects
Code:
xtreg prod treatgroup##i.year capital_per_worker graduates lprod if screened_sample==1 &  year==2014 | year==2015, fe
in this way, I am only throwing away an observation if it has either too high or too low probabilities of being in the treatment group but no matching is done.

Coming to the actual matching issue: I am using change_prod that stands for the change in production between 2014 and 2015 with lagged covariates from 2014. Should I use a similar change variable for time variant covariates as well? is the following code doing DID matching?
Code:
teffects nnmatch (change_prod lagged_age lagged_capital lagged_graduates industry) (treatgroup) if year==2015, ematch(industry lagged_age) biasadj(lagged_capital lagged_graduates) atet nneighbor(1) vce(iid)
I am quite perplexed since the results is very different from the non-matched DID and the Screened DID (more than double in magnitude).
meanwhile if I code
Code:
teffects nnmatch (change_prod lagged_age lagged_capital lagged_graduates industry) ( treatgroup ), ematch (industry lagged_age) biasadj (lagged_capital lagged_graduates) atet nneighbor (1) vce (iid)
without year==2015 I get more reasonable results, but in this way, I am using 2013 data also!
I am quite lost, thank you for your attention.