Last query

38 views
Skip to first unread message

Chris Harpel

unread,
Jul 23, 2025, 7:57:00 PMJul 23
to OxCal
Hi,

I am working on an age model to get the date of an event, but have run into a minor issue that maybe somebody has some insight into.

For my model, I am combing results from three dating methods, one of which is 14C, and a well dated tephrostratigraphic marker bed (TBJ).  For 14C and one of the other dating methods, we have discrete dates for the event.

The third dating method provides a wide range of ages.  Generally, the interpretation is that the youngest ages represent the event age.  To get this, I placed all the ages into a Phase and applied the "Last" query.  The problem arises when I try to use Combine to merge the results from this query with the other two discrete dates to get to the event age.  I am getting a "Warning! Inappropriate nesting - Last in Combine" error.  I can understand that this is maybe not typical, but am I missing something here?  Or is there a workaround to apply the results from the Last query, which should represent the event age, into a Combine with the other event ages?

The code is:
Plot()
 {
  Curve("IntCal20","intcal20.14c");
  Phase("Old Ages")
  {
   Age("17",N(6000,2300))
   {
    Year=CE(2025);
   };
   Age("18",N(6000,2400))
   {
    Year=CE(2025);
   };
   Age("12",N(5000,2100))
   {
    Year=CE(2025);
   };
   Age("13",N(4600,2500))
   {
    Year=CE(2025);
   };
   Age("21",N(3800,3000))
   {
    Year=CE(2025);
   };
   Age("15",N(3300,2400))
   {
    Year=CE(2025);
   };
   Age("2",N(2400,2000))
   {
    Year=CE(2025);
   };
   Age("1",N(2100,2000))
   {
    Year=CE(2025);
   };
   Last("Last Old Ages");
  };
  Sequence("Event Sequence")
  {
   Boundary("Start");
   Combine("Event")
   {
    R_Date("Age 1",1990,25);
    Age("Age 2",N(2100,300))
    {
     Year=CE(2025);
    };
    Date("=Last Old Ages");
   };
   Boundary("=TBJ");
  };
  Date("TBJ",U(CE(429),CE(433)));
 };

MILLARD, ANDREW R.

unread,
Jul 24, 2025, 4:01:34 AMJul 24
to ox...@googlegroups.com

Hello Chris,

 

If all the Old Ages lie before Event you could simply include the phase in the sequence without using Last.

 

However, it looks like you will learn nothing from your model. The C14 date calibrates to 43 BCE to 110 CE at 95.4% (mean 46 CE, sd 40).  If it is combined with Age 2 (76 ±300 BCE), the result is essentially the same at 43 BCE to 113 CE with a slight change in the shape of the distribution.  The Old Ages have a minimum uncertainty of ±2000, and the Last Old Ages has 95% range 1952 BCE to 6 CE (standard deviation 541), and with such a large uncertainty will have less effect than Age 2 in the Combine. Even if I put them in a Phase before Event as I suggested above, the date of Event is unchanged. The precision of the radiocarbon date is so much better than any of the other dates that it dominates the calculations and the others make no difference. Finally, the TRJ is 429-433 CE, and so far from the other dates that it does not offer any further constraint on the date of Event.  

 

 

Best wishes 

Andrew 

-- 

Prof. Andrew Millard 

Department of Archaeology,

Durham University, UK 

Email: A.R.M...@durham.ac.uk  

Personal page: https://www.durham.ac.uk/staff/a-r-millard/ 

Dunbar 1650 MOOC: https://www.futurelearn.com/courses/battle-of-dunbar-1650 

 

Image

 

From: ox...@googlegroups.com <ox...@googlegroups.com> On Behalf Of Chris Harpel
Sent: 24 July 2025 00:57
To: OxCal <ox...@googlegroups.com>
Subject: Last query

 

[EXTERNAL EMAIL]

--
You received this message because you are subscribed to the Google Groups "OxCal" group.
To unsubscribe from this group and stop receiving emails from it, send an email to oxcal+un...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/oxcal/3c045414-ff9d-4a1e-a187-ef7302fcd2ffn%40googlegroups.com.

Chris Harpel

unread,
Aug 4, 2025, 2:09:13 PMAug 4
to ox...@googlegroups.com
Hi Andrew,

My apologies for taking so long I reply. I got buried prepping for field work.

Many thanks for your input, I appreciate it. This was just a snippet of a larger model that illustrated the problem. I agree that applying ages from other methods with larger analytical uncertainties can be complicated. At this point, I am leaning towards just including them as a phase, but will give it some thought.

I am curious about the mathmatical, statistical, and or conceptual reason(s) that the age range from Last cannot be used as input for the Combine function. Is it simply that Combine's use should be limited to ages measured from a specific single sample or event, whereas Last is a derived age range and just too far removed from the measured data?

Cheers,
Chris

You received this message because you are subscribed to a topic in the Google Groups "OxCal" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/oxcal/ZOq8MV5MmXQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to oxcal+un...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/oxcal/LO4P265MB4226A498AA55D2E25786E831815EA%40LO4P265MB4226.GBRP265.PROD.OUTLOOK.COM.

Erik Marsh

unread,
Aug 5, 2025, 9:32:09 AMAug 5
to OxCal
Hi Chris – the Last command works as a query, not a prior. Instead, I would try making a sequence out of your Old Ages – the phase currently does not have boundaries.
I would use an ending boundary instead of a Last query. But I think Andrew is right – you can simplify it all into a single sequence. And it's the 14C date that will constrain everything.
Erik
Reply all
Reply to author
Forward
0 new messages