Hi David,
I am assuming the question refers to detectionHistory()?
By default, effort is the number of active camera trap days per station and occasion, and can only be a positive number, 0 or NA (with scaleEffort = FALSE - as mentioned in the function help file).
If you set scaleEffort = TRUE however, the values will be scaled to mean = 0 and SD = 1, which can lead to negative values. If you run the function with scaleEffort = TRUE, it will also return the scaling parameters to convert the scaled effort matrix back to the original scale (days) - in the list item "effort_scaling_parameters". The purpose of scaling effort is to improve the ability of models to estimate parameters of the detection submodel, but in my experience it is usually not necessary to scale effort (in contrast to covariates on occupancy).
If you get negative values with scaleEffort = FALSE, that would most likely be a bug. In that case, would you please share the specifics and a sample data set?
Thank you,
Jürgen
P.S. here's some code to convert scaled effort back to days (assumes the output of detectionHistory() is called DetHist):
DetHist$effort * DetHist$effort_scaling_parameters$effort.scaled.scale + DetHist2$effort_scaling_parameters$effort.scaled.center