The quick look method (i.e. The Ko Ko Rules) doesn't work in shale oil reservoir.
Because every tight oil reservoir is different, there's no one-size fits all solution.
Complex lithology (like mixture of quartz, clay, dolomite, calcite) and complex geology (thin low porosity sequence that's beyond the log resolution) make the log evaluation not that straighforward.
Sometimes, the low resistivity, high radioactivity, large density neutron separation caused by dolomite and pyrite, and the high PE value (near 3) make the producible zone look like shale on logs.
The next best thing to do is to gather local log trends about you shale oil reservoir, and start from there. Get more logs, and you'll notice some trends.
1. Shale Volume
Over the known shale oil zones, GR values normally reads higher due to Uranium and not clay content.
It's worth to run spectral GR, since the Uranium content will be significant high over a shale oil reservoir.
Instead of calculating the Vshale from total GR, calculate Vshale from Thorium curve of the spectral GR log.
In case of Thorium maximum shaly baseline is not available, then estimate by adding 25 to the Thorium minimum baseline.
Some shale oil formations contain kerogen. We can ignore calculating the absorbed gas from the kerogen as only little gas will flow.
But, we need to quantify the volume of kerogen as it affects the overall porosity values.
We first calculate the volume of kerogen from the derived TOC weight fraction from density vs resistivity method or sonic vs resistivity method.
The results must then be calibrated to geochemical TOC lab data.
We can't rely much on the density-neutron crossover.
You can't really tell the fluid types in shale oil reservoirs from the separation of the density-neutron logs since the separation of density-neutron curves is affected more by the complex lithology than the fluid.
Sometimes, the density-neutron logs are on top of each other. Some other times, you'll see 'shale-like' density-neutron separation because of dolomite and pyrite contents.
Sometimes, the shale oil plays like the Bakken and Montney plays, show a laminated porosity sequence. Although the average porosity is correct, the individual laminated layers have higher porosity, but the logs could not resolve this beds.
In any case, if we have both the density-neutron logs, the best thing to do is to take the average porosity between density and neutron after shale and kerogen correction.
4. Water saturation
Resistivity values could be high or low.
Low resistivity (means higher water saturation) could be due to high bound water saturation with larger grain surface area, conductive minerals like pyrite, thin clay laminations, clay filled burrows, laminated porosity, or high formation water salinity.
On the other hand, overly high water saturation could be due to pyro-bitumen contents, fresher formation water or tighter rocks.
In any case, if the clay content is small, then use Archie's equation. Waxman-Smith can also be used.
It's worth to get real electrical properties from core lab to further refine the values.
Core poro-perm might not work.
Many shale oil reservoirs are made of siltstone with little clay contents. However, the lithology varies so much from near pure quartz to dolomite to calcite, and anything in between.
Running a geochemical log like ECS or FLEX will actually tell us the rock mineral components that make up 'shale' oil/gas. Thin section and XRD could help too.
To resolve the lithology, use multi mineral solver.
7. Pyrite correction
Some shale oil reservoirs contains significant pyrite. Pyrite lowers the resistivity value and has to be corrected.
To calculate the corrected resistivity, you subtract the product of volume of pyrite and effective pyrite resistivity from your resistivity log.
To do this you need to know the volume of pyrite (derived from your mineral model and calibrated to XRD/thin section) and effective pyrite resistity (which is often assumed between 0.1 to 1.0 ohm-m).
This are super generalized steps to evaluate your well logs for shale oil zones.